Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
M
Mock Turtle
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
1
Issues
1
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
Wiki
Wiki
image/svg+xml
Discourse
Discourse
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
Projects
Mock Turtle
Commits
3c4fc6fe
Commit
3c4fc6fe
authored
Jul 20, 2015
by
Federico Vaga
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
wrtd:serializer: fix timestamp serializer, seconds is 64bit
Signed-off-by:
Federico Vaga
<
federico.vaga@cern.ch
>
parent
6dbb25ac
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
23 additions
and
19 deletions
+23
-19
wrtd-serializers.h
applications/wrtd/include/wrtd-serializers.h
+11
-9
libwrtd-input.c
applications/wrtd/lib/libwrtd-input.c
+11
-9
libwrtd-output.c
applications/wrtd/lib/libwrtd-output.c
+1
-1
No files found.
applications/wrtd/include/wrtd-serializers.h
View file @
3c4fc6fe
...
...
@@ -133,20 +133,22 @@ static inline void wrnc_msg_seek ( struct wrnc_msg *buf, int pos )
static
inline
int
wrtd_msg_timestamp
(
struct
wrnc_msg
*
buf
,
struct
wr_timestamp
*
ts
)
{
if
(
_wrnc_msg_check_buffer
(
buf
,
3
)
<
0
)
if
(
_wrnc_msg_check_buffer
(
buf
,
4
)
<
0
)
return
-
1
;
if
(
buf
->
direction
==
WRNC_MSG_DIR_SEND
)
{
buf
->
data
[
buf
->
datalen
+
0
]
=
ts
->
seconds
;
buf
->
data
[
buf
->
datalen
+
1
]
=
ts
->
ticks
;
buf
->
data
[
buf
->
datalen
+
2
]
=
ts
->
frac
;
buf
->
datalen
+=
3
;
buf
->
data
[
buf
->
datalen
+
0
]
=
(
ts
->
seconds
>>
32
)
&
0xFFFFFFFF
;
buf
->
data
[
buf
->
datalen
+
1
]
=
ts
->
seconds
&
0xFFFFFFFF
;
buf
->
data
[
buf
->
datalen
+
2
]
=
ts
->
ticks
;
buf
->
data
[
buf
->
datalen
+
3
]
=
ts
->
frac
;
buf
->
datalen
+=
4
;
}
else
{
ts
->
seconds
=
buf
->
data
[
buf
->
offset
+
0
];
ts
->
ticks
=
buf
->
data
[
buf
->
offset
+
1
];
ts
->
frac
=
buf
->
data
[
buf
->
offset
+
2
];
buf
->
offset
+=
3
;
ts
->
seconds
=
buf
->
data
[
buf
->
offset
+
0
]
<<
32
;
ts
->
seconds
|=
buf
->
data
[
buf
->
offset
+
1
];
ts
->
ticks
=
buf
->
data
[
buf
->
offset
+
2
];
ts
->
frac
=
buf
->
data
[
buf
->
offset
+
3
];
buf
->
offset
+=
4
;
}
return
0
;
...
...
applications/wrtd/lib/libwrtd-input.c
View file @
3c4fc6fe
...
...
@@ -57,7 +57,7 @@ int wrtd_in_state_get(struct wrtd_node *dev, unsigned int input,
struct
wrtd_input_state
*
state
)
{
struct
wrtd_desc
*
wrtd
=
(
struct
wrtd_desc
*
)
dev
;
struct
wrnc_msg
msg
=
wrnc_msg_init
(
1
6
);
struct
wrnc_msg
msg
=
wrnc_msg_init
(
1
9
);
int
err
;
uint32_t
id
,
seq
=
0
;
uint32_t
dead_time_cycles
;
...
...
@@ -392,13 +392,14 @@ int wrtd_in_delay_set(struct wrtd_node *dev, unsigned int input,
wrtd_pico_to_ts
(
&
delay_ps
,
&
t
);
/* Build the message */
msg
.
datalen
=
6
;
msg
.
datalen
=
7
;
msg
.
data
[
0
]
=
WRTD_CMD_TDC_CHAN_SET_DELAY
;
msg
.
data
[
1
]
=
0
;
msg
.
data
[
2
]
=
input
;
msg
.
data
[
3
]
=
t
.
seconds
;
msg
.
data
[
4
]
=
t
.
ticks
;
msg
.
data
[
5
]
=
t
.
frac
;
msg
.
data
[
3
]
=
t
.
seconds
>>
32
;
msg
.
data
[
4
]
=
t
.
seconds
&
0xFFFFFFFF
;
msg
.
data
[
5
]
=
t
.
ticks
;
msg
.
data
[
6
]
=
t
.
frac
;
/* Send the message and get answer */
err
=
wrtd_in_send_and_receive_sync
(
wrtd
,
&
msg
);
...
...
@@ -436,13 +437,14 @@ int wrtd_in_timebase_offset_set(struct wrtd_node *dev, unsigned int input,
wrtd_pico_to_ts
(
&
offset
,
&
t
);
/* Build the message */
msg
.
datalen
=
6
;
msg
.
datalen
=
7
;
msg
.
data
[
0
]
=
WRTD_CMD_TDC_CHAN_SET_TIMEBASE_OFFSET
;
msg
.
data
[
1
]
=
0
;
msg
.
data
[
2
]
=
input
;
msg
.
data
[
3
]
=
t
.
seconds
;
msg
.
data
[
4
]
=
t
.
ticks
;
msg
.
data
[
5
]
=
t
.
frac
;
msg
.
data
[
3
]
=
t
.
seconds
>>
32
;
msg
.
data
[
4
]
=
t
.
seconds
&
0xFFFFFFFF
;
msg
.
data
[
5
]
=
t
.
ticks
;
msg
.
data
[
6
]
=
t
.
frac
;
/* Send the message and get answer */
err
=
wrtd_in_send_and_receive_sync
(
wrtd
,
&
msg
);
...
...
applications/wrtd/lib/libwrtd-output.c
View file @
3c4fc6fe
...
...
@@ -141,7 +141,7 @@ int wrtd_out_state_get(struct wrtd_node *dev, unsigned int output,
struct
wrtd_output_state
*
state
)
{
struct
wrtd_desc
*
wrtd
=
(
struct
wrtd_desc
*
)
dev
;
struct
wrnc_msg
msg
=
wrnc_msg_init
(
16
);
struct
wrnc_msg
msg
=
wrnc_msg_init
(
20
);
int
err
,
dummy
=
0
;
uint32_t
seq
=
0
,
id
;
uint32_t
dead_time_ticks
,
pulse_width_ticks
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment