* size - The size of the payload. The size will be 0 if there is no payload.
*/
typedef struct {
- const uint16_t arbitration_id;
+ const uint32_t arbitration_id;
uint8_t payload[OUR_MAX_ISO_TP_MESSAGE_SIZE];
uint16_t size;
bool completed;
*
* Returns true if the CAN message was sent successfully.
*/
-typedef bool (*SendCanMessageShim)(const uint16_t arbitration_id,
+typedef bool (*SendCanMessageShim)(const uint32_t arbitration_id,
const uint8_t* data, const uint8_t size);
/* Public: The type signature for a... TODO, not used yet.
}
IsoTpReceiveHandle isotp_receive(IsoTpShims* shims,
- const uint16_t arbitration_id, IsoTpMessageReceivedHandler callback) {
+ const uint32_t arbitration_id, IsoTpMessageReceivedHandler callback) {
IsoTpReceiveHandle handle = {
success: false,
completed: false,
}
IsoTpMessage isotp_continue_receive(IsoTpShims* shims,
- IsoTpReceiveHandle* handle, const uint16_t arbitration_id,
+ IsoTpReceiveHandle* handle, const uint32_t arbitration_id,
const uint8_t data[], const uint8_t size) {
IsoTpMessage message = {
arbitration_id: arbitration_id,
bool success;
// Private
- uint16_t arbitration_id;
+ uint32_t arbitration_id;
IsoTpMessageReceivedHandler message_received_callback;
uint16_t timeout_ms;
// timeout_ms: ISO_TP_DEFAULT_RESPONSE_TIMEOUT,
* when the message is completely sent.
*/
IsoTpReceiveHandle isotp_receive(IsoTpShims* shims,
- const uint16_t arbitration_id, IsoTpMessageReceivedHandler callback);
+ const uint32_t arbitration_id, IsoTpMessageReceivedHandler callback);
/* Public: Continue to receive a an ISO-TP message, based on a freshly
* received CAN message.
* handle. Keep passing the same handle to this function when CAN frames arrive.
*/
IsoTpMessage isotp_continue_receive(IsoTpShims* shims,
- IsoTpReceiveHandle* handle, const uint16_t arbitration_id,
+ IsoTpReceiveHandle* handle, const uint32_t arbitration_id,
const uint8_t data[], const uint8_t size);
#ifdef __cplusplus
IsoTpShims SHIMS;
IsoTpReceiveHandle RECEIVE_HANDLE;
-uint16_t last_can_frame_sent_arb_id;
+uint32_t last_can_frame_sent_arb_id;
uint8_t last_can_payload_sent[8];
uint8_t last_can_payload_size;
bool can_frame_was_sent;
bool message_was_received;
-uint16_t last_message_received_arb_id;
+uint32_t last_message_received_arb_id;
uint8_t last_message_received_payload[OUR_MAX_ISO_TP_MESSAGE_SIZE];
uint8_t last_message_received_payload_size;
-uint16_t last_message_sent_arb_id;
+uint32_t last_message_sent_arb_id;
bool last_message_sent_status;
uint8_t last_message_sent_payload[OUR_MAX_ISO_TP_MESSAGE_SIZE];
uint8_t last_message_sent_payload_size;
va_end(args);
}
-bool mock_send_can(const uint16_t arbitration_id, const uint8_t* data,
+bool mock_send_can(const uint32_t arbitration_id, const uint8_t* data,
const uint8_t size) {
can_frame_was_sent = true;
last_can_frame_sent_arb_id = arbitration_id;
}
}
-void can_frame_sent(const uint16_t arbitration_id, const uint8_t* payload,
+void can_frame_sent(const uint32_t arbitration_id, const uint8_t* payload,
const uint8_t size) {
debug("Sent CAN Frame with arb ID 0x%x and %d bytes", arbitration_id, size);
}
{
ck_assert(SHIMS.frame_padding);
const uint8_t payload[] = {0x12, 0x34};
- uint16_t arbitration_id = 0x2a;
+ uint32_t arbitration_id = 0x2a;
isotp_send(&SHIMS, arbitration_id, payload, sizeof(payload), message_sent);
ck_assert_int_eq(last_message_sent_arb_id, arbitration_id);
fail_unless(last_message_sent_status);
{
SHIMS.frame_padding = false;
const uint8_t payload[] = {0x12, 0x34};
- uint16_t arbitration_id = 0x2a;
+ uint32_t arbitration_id = 0x2a;
isotp_send(&SHIMS, arbitration_id, payload, sizeof(payload), message_sent);
ck_assert_int_eq(last_message_sent_arb_id, arbitration_id);
fail_unless(last_message_sent_status);