diff options
Diffstat (limited to 'src/isotp/isotp.c')
-rw-r--r-- | src/isotp/isotp.c | 72 |
1 files changed, 0 insertions, 72 deletions
diff --git a/src/isotp/isotp.c b/src/isotp/isotp.c index 6de40c31..c8b0a561 100644 --- a/src/isotp/isotp.c +++ b/src/isotp/isotp.c @@ -1,5 +1,4 @@ #include <isotp/isotp.h> -#include <isotp/receive.h> #include <bitfield/bitfield.h> const uint8_t ISO_TP_DEFAULT_RESPONSE_TIMEOUT = 100; @@ -32,74 +31,3 @@ void isotp_message_to_string(const IsoTpMessage* message, char* destination, message->payload[6], message->payload[7]); } - -IsoTpMessage isotp_continue_receive(IsoTpShims* shims, - IsoTpReceiveHandle* handle, const uint16_t arbitration_id, - const uint8_t data[], const uint8_t size) { - IsoTpMessage message = { - arbitration_id: arbitration_id, - completed: false, - payload: {0}, - size: 0 - }; - - if(size < 1) { - return message; - } - - if(handle->arbitration_id != arbitration_id) { - if(shims->log != NULL) { - shims->log("The arb ID 0x%x doesn't match the expected rx ID 0x%x", - arbitration_id, handle->arbitration_id); - } - return message; - } - - IsoTpProtocolControlInformation pci = (IsoTpProtocolControlInformation) - get_nibble(data, size, 0); - - uint8_t payload_length = get_nibble(data, size, 1); - uint8_t payload[payload_length]; - if(payload_length > 0 && size > 0) { - memcpy(payload, &data[1], payload_length); - } - - // TODO this is set up to handle rx a response with a payload, but not to - // handle flow control responses for multi frame messages that we're in the - // process of sending - - switch(pci) { - case PCI_SINGLE: { - if(payload_length > 0) { - memcpy(message.payload, payload, payload_length); - } - message.size = payload_length; - message.completed = true; - handle->success = true; - handle->completed = true; - isotp_handle_single_frame(handle, &message); - break; - } - default: - shims->log("Only single frame messages are supported"); - break; - } - return message; -} - -bool isotp_continue_send(IsoTpShims* shims, IsoTpSendHandle* handle, - const uint16_t arbitration_id, const uint8_t data[], - const uint8_t size) { - // TODO this will need to be tested when we add multi-frame support, - // which is when it'll be necessary to pass in CAN messages to SENDING - // handles. - if(handle->receiving_arbitration_id != arbitration_id) { - if(shims->log != NULL) { - shims->log("The arb ID 0x%x doesn't match the expected tx continuation ID 0x%x", - arbitration_id, handle->receiving_arbitration_id); - } - return false; - } - return false; -} - |