Skip to content

Commit a554747

Browse files
canard/tests: move to Transfer object based calls
1 parent e424ac9 commit a554747

File tree

1 file changed

+49
-25
lines changed

1 file changed

+49
-25
lines changed

canard/tests/canard_interface.cpp

Lines changed: 49 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -9,39 +9,63 @@ void CanardInterface::init(void* mem_arena, size_t mem_arena_size) {
99

1010
bool CanardInterface::broadcast(const Transfer &bcast_transfer) {
1111
// do canard broadcast
12-
return canardBroadcast(&canard,
13-
bcast_transfer.data_type_signature,
14-
bcast_transfer.data_type_id,
15-
bcast_transfer.inout_transfer_id,
16-
bcast_transfer.priority,
17-
bcast_transfer.payload,
18-
bcast_transfer.payload_len) > 0;
12+
CanardTxTransfer tx_transfer = {
13+
.transfer_type = bcast_transfer.transfer_type,
14+
.data_type_signature = bcast_transfer.data_type_signature,
15+
.data_type_id = bcast_transfer.data_type_id,
16+
.inout_transfer_id = bcast_transfer.inout_transfer_id,
17+
.priority = bcast_transfer.priority,
18+
.payload = (const uint8_t*)bcast_transfer.payload,
19+
.payload_len = bcast_transfer.payload_len,
20+
#if CANARD_ENABLE_CANFD
21+
.canfd = bcast_transfer.canfd,
22+
#endif
23+
#if CANARD_MULTI_IFACE
24+
.iface_mask = uint8_t((1<<num_ifaces) - 1),
25+
#endif
26+
};
27+
28+
return canardBroadcastObj(&canard, &tx_transfer) > 0;
1929
}
2030

2131
bool CanardInterface::request(uint8_t destination_node_id, const Transfer &req_transfer) {
2232
// do canard request
23-
return canardRequestOrRespond(&canard,
24-
destination_node_id,
25-
req_transfer.data_type_signature,
26-
req_transfer.data_type_id,
27-
req_transfer.inout_transfer_id,
28-
req_transfer.priority,
29-
CanardRequest,
30-
req_transfer.payload,
31-
req_transfer.payload_len) > 0;
33+
CanardTxTransfer tx_transfer = {
34+
.transfer_type = req_transfer.transfer_type,
35+
.data_type_signature = req_transfer.data_type_signature,
36+
.data_type_id = req_transfer.data_type_id,
37+
.inout_transfer_id = req_transfer.inout_transfer_id,
38+
.priority = req_transfer.priority,
39+
.payload = (const uint8_t*)req_transfer.payload,
40+
.payload_len = req_transfer.payload_len,
41+
#if CANARD_ENABLE_CANFD
42+
.canfd = req_transfer.canfd,
43+
#endif
44+
#if CANARD_MULTI_IFACE
45+
.iface_mask = uint8_t((1<<num_ifaces) - 1),
46+
#endif
47+
};
48+
return canardRequestOrRespondObj(&canard, destination_node_id, &tx_transfer) > 0;
3249
}
3350

3451
bool CanardInterface::respond(uint8_t destination_node_id, const Transfer &res_transfer) {
3552
// do canard respond
36-
return canardRequestOrRespond(&canard,
37-
destination_node_id,
38-
res_transfer.data_type_signature,
39-
res_transfer.data_type_id,
40-
res_transfer.inout_transfer_id,
41-
res_transfer.priority,
42-
CanardResponse,
43-
res_transfer.payload,
44-
res_transfer.payload_len) > 0;
53+
CanardTxTransfer tx_transfer = {
54+
.transfer_type = res_transfer.transfer_type,
55+
.data_type_signature = res_transfer.data_type_signature,
56+
.data_type_id = res_transfer.data_type_id,
57+
.inout_transfer_id = res_transfer.inout_transfer_id,
58+
.priority = res_transfer.priority,
59+
.payload = (const uint8_t*)res_transfer.payload,
60+
.payload_len = res_transfer.payload_len,
61+
#if CANARD_ENABLE_CANFD
62+
.canfd = res_transfer.canfd,
63+
#endif
64+
#if CANARD_MULTI_IFACE
65+
.iface_mask = uint8_t((1<<num_ifaces) - 1),
66+
#endif
67+
};
68+
return canardRequestOrRespondObj(&canard, destination_node_id, &tx_transfer) > 0;
4569
}
4670

4771
void CanardInterface::handle_frame(const CanardCANFrame &frame, uint64_t timestamp_usec) {

0 commit comments

Comments
 (0)