35#ifndef __DRIVERS_CANBUS_CAN_UTILITIES__
36#define __DRIVERS_CANBUS_CAN_UTILITIES__
Type definitions and constants for the CAN transport layer.
uint8_t CanUtilities_copy_node_id_to_payload(can_msg_t *can_msg, uint64_t node_id, uint8_t start_offset)
Copies a 48-bit node_id_t into 6 payload bytes starting at start_offset.
Definition can_utilities.c:119
uint8_t CanUtilities_append_can_payload_to_openlcb_payload(openlcb_msg_t *openlcb_msg, can_msg_t *can_msg, uint8_t can_start_index)
Appends CAN payload bytes to the end of an openlcb_msg_t payload.
Definition can_utilities.c:215
uint8_t CanUtilities_copy_openlcb_payload_to_can_payload(openlcb_msg_t *openlcb_msg, can_msg_t *can_msg, uint16_t openlcb_start_index, uint8_t can_start_index)
Copies payload bytes from an openlcb_msg_t into a can_msg_t.
Definition can_utilities.c:161
void CanUtilities_load_can_message(can_msg_t *can_msg, uint32_t identifier, uint8_t payload_size, uint8_t byte1, uint8_t byte2, uint8_t byte3, uint8_t byte4, uint8_t byte5, uint8_t byte6, uint8_t byte7, uint8_t byte8)
Loads identifier, payload size, and all 8 data bytes into a can_msg_t.
Definition can_utilities.c:74
node_id_t CanUtilities_extract_can_payload_as_node_id(can_msg_t *can_msg)
Reads payload bytes 0-5 and returns them as a 48-bit node_id_t (big-endian).
Definition can_utilities.c:304
uint16_t CanUtilities_extract_dest_alias_from_can_message(can_msg_t *can_msg)
Returns the 12-bit destination alias from the appropriate location in a can_msg_t.
Definition can_utilities.c:349
uint8_t CanUtilities_copy_can_message(can_msg_t *can_msg_source, can_msg_t *can_msg_target)
Copies identifier and valid payload bytes from source to target can_msg_t.
Definition can_utilities.c:277
uint8_t CanUtilities_count_nulls_in_payloads(openlcb_msg_t *openlcb_msg, can_msg_t *can_msg)
Counts NULL (0x00) bytes across both an openlcb_msg_t and a can_msg_t payload.
Definition can_utilities.c:466
void CanUtilities_clear_can_message(can_msg_t *can_msg)
Clears identifier, payload_count, and all payload bytes in a can_msg_t.
Definition can_utilities.c:51
bool CanUtilities_is_openlcb_message(can_msg_t *can_msg)
Returns true if the CAN frame carries an OpenLCB message (bit 27 set).
Definition can_utilities.c:473
uint8_t CanUtilities_copy_64_bit_to_can_message(can_msg_t *can_msg, uint64_t data)
Copies a 64-bit value into all 8 payload bytes of a can_msg_t (big-endian).
Definition can_utilities.c:250
uint16_t CanUtilities_convert_can_mti_to_openlcb_mti(can_msg_t *can_msg)
Converts the CAN frame MTI bits to the corresponding 16-bit OpenLCB MTI.
Definition can_utilities.c:396
uint16_t CanUtilities_extract_source_alias_from_can_identifier(can_msg_t *can_msg)
Returns the 12-bit source alias from bits 0-11 of the CAN identifier.
Definition can_utilities.c:327
uint64_t node_id_t
48-bit Node ID stored in a 64-bit type (upper 16 bits unused).
Definition openlcb_types.h:359
Definition can_types.h:118
Core OpenLCB message structure.
Definition openlcb_types.h:480