SCOM Serial Communication Protocol
0.5.2
|
SCOM version record. More...
#include <scom.h>
Data Fields | |
uint8_t | verHi |
version high number More... | |
uint8_t | verLo |
version low number More... | |
uint16_t | revision |
protocol revision More... | |
SCOMVersion | version |
SCOM version record. More... | |
uint32_t | deviceClass |
Device class. More... | |
uint8_t | deviceUID [16] |
Device unique identifier. More... | |
uint8_t | sync |
synchronization field: always 0xFF More... | |
uint8_t | soack |
start of ACK frame field More... | |
uint8_t | ctrl |
frame control field More... | |
uint8_t | type |
frame type field More... | |
uint16_t | frame_crc |
frame crc field More... | |
uint16_t | crc |
crc field More... | |
uint8_t | sof |
synchronization field: always 0xFF More... | |
uint8_t | size |
frame type field More... | |
uint8_t | null |
TODO: XOR from sof, ctrl, type, size. More... | |
union { | |
struct { | |
uint8_t data [UINT8_C(255)] | |
} singleframe | |
payload definition for a single frame More... | |
struct { | |
uint32_t multi_id | |
uint32_t offset | |
multiframe packet id More... | |
uint32_t total_size | |
multiframe current frame offset (denotes progress) More... | |
uint8_t data [UINT8_C(255)-12] | |
total size of a multiframe More... | |
} multiframe | |
payload definition for a multi frame More... | |
struct { | |
uint8_t primitive_id | |
uint8_t data [UINT8_C(255)-1] | |
primitive ID More... | |
} serviceframe | |
payload definition for service frame More... | |
struct { | |
uint32_t multi_id | |
uint32_t offset | |
multiframe packet id More... | |
uint32_t total_size | |
multiframe current frame offset (denotes progress) More... | |
uint8_t primitive_id | |
total size of a multiframe More... | |
uint8_t data [UINT8_C(255)-13] | |
primitive ID More... | |
} servicemultiframe | |
payload definition for a service multi frame More... | |
} | payload |
payload field More... | |
uint32_t | received_timestamp |
time stamp of received frame - value should be set as soon as possible More... | |
SCOM version record.
Definition of an SCOM frame.
Definition of an SCOM acknowledgment frame.
Definition of a structure that identifies an SCOM device.
uint16_t HAL_PACKED::crc |
crc field
Definition at line 26 of file scom_ack_frame.h.
Referenced by SCOM_Proc(), SCOMAckFrame_CalculateCRC(), SCOMAckFrame_Initialize(), and SCOMAckFrame_IsValidAck().
uint8_t HAL_PACKED::ctrl |
frame control field
start of frame field
Definition at line 23 of file scom_ack_frame.h.
Referenced by SCOM_SendAllocatedMultiFrame(), SCOM_SendFrame(), SCOM_SendFrameWithoutAck(), SCOM_SendMultiFrame(), SCOM_SendServiceMultiFrame(), SCOMAckFrame_Initialize(), SCOMAckFrame_IsValidAck(), SCOMFrame_CalculateCRC(), SCOMFrame_GetFrameNumber(), SCOMFrame_GetMultiId(), SCOMFrame_GetMultiOffset(), SCOMFrame_GetPayloadPtr(), SCOMFrame_GetPriority(), SCOMFrame_GetTotalPayloadSize(), SCOMFrame_IsAcknowledged(), SCOMFrame_IsMultiframe(), SCOMFrame_SetAcknowledgement(), SCOMFrame_SetFrameNumber(), SCOMFrame_SetPriority(), and SCOMFrameQueue_Lock().
uint8_t HAL_PACKED::data[UINT8_C(255)-13] |
uint32_t HAL_PACKED::deviceClass |
Device class.
Definition at line 90 of file scom.h.
Referenced by SCOM_Init(), and SCOM_WaitForDevice().
uint8_t HAL_PACKED::deviceUID[16] |
uint16_t HAL_PACKED::frame_crc |
frame crc field
Definition at line 25 of file scom_ack_frame.h.
Referenced by SCOMAckFrame_IsValidAck().
uint32_t HAL_PACKED::multi_id |
Definition at line 71 of file scom_frame.h.
struct { ... } HAL_PACKED::multiframe |
payload definition for a multi frame
Referenced by SCOM_SendAllocatedMultiFrame(), SCOM_SendMultiFrame(), SCOMFrame_GetMultiId(), SCOMFrame_GetMultiOffset(), SCOMFrame_GetPayloadPtr(), SCOMFrame_GetTotalFrameSize(), and SCOMFrame_GetTotalPayloadSize().
uint8_t HAL_PACKED::null |
TODO: XOR from sof, ctrl, type, size.
frame size field
Definition at line 61 of file scom_frame.h.
Referenced by SCOM_SendAllocatedFrame(), SCOM_SendAllocatedFrameWithoutACK(), SCOM_SendAllocatedMultiFrame(), SCOM_SendFrame(), SCOM_SendFrameWithoutAck(), SCOM_SendMultiFrame(), and SCOM_SendServiceMultiFrame().
uint32_t HAL_PACKED::offset |
multiframe packet id
Definition at line 72 of file scom_frame.h.
union { ... } HAL_PACKED::payload |
payload field
crc field
Referenced by SCOM_SendAllocatedMultiFrame(), SCOM_SendFrame(), SCOM_SendFrameWithoutAck(), SCOM_SendMultiFrame(), SCOM_SendServiceFrame(), SCOM_SendServiceMultiFrame(), SCOMFrame_CalculateCRC(), SCOMFrame_GetMultiId(), SCOMFrame_GetMultiOffset(), SCOMFrame_GetPayloadPtr(), SCOMFrame_GetTotalFrameSize(), and SCOMFrame_GetTotalPayloadSize().
uint8_t HAL_PACKED::primitive_id |
total size of a multiframe
Definition at line 78 of file scom_frame.h.
uint32_t HAL_PACKED::received_timestamp |
time stamp of received frame - value should be set as soon as possible
Definition at line 93 of file scom_frame.h.
uint16_t HAL_PACKED::revision |
struct { ... } HAL_PACKED::serviceframe |
payload definition for service frame
Referenced by SCOM_SendServiceFrame().
struct { ... } HAL_PACKED::servicemultiframe |
payload definition for a service multi frame
Referenced by SCOM_SendServiceMultiFrame().
struct { ... } HAL_PACKED::singleframe |
payload definition for a single frame
Referenced by SCOM_SendFrame(), SCOM_SendFrameWithoutAck(), SCOMFrame_CalculateCRC(), and SCOMFrame_GetPayloadPtr().
uint8_t HAL_PACKED::size |
frame type field
Definition at line 59 of file scom_frame.h.
Referenced by SCOM_SendAllocatedMultiFrame(), SCOM_SendFrame(), SCOM_SendFrameWithoutAck(), SCOM_SendMultiFrame(), SCOM_SendServiceMultiFrame(), SCOMFrame_CalculateCRC(), SCOMFrame_GetPayloadSize(), SCOMFrame_GetTotalFrameSize(), SCOMFrame_GetTotalPayloadSize(), SCOMFrame_SetPayloadSize(), and SCOMFrameQueue_Lock().
uint8_t HAL_PACKED::soack |
start of ACK frame field
Definition at line 22 of file scom_ack_frame.h.
Referenced by SCOM_Init(), and SCOMAckFrame_CalculateCRC().
uint8_t HAL_PACKED::sof |
synchronization field: always 0xFF
Definition at line 56 of file scom_frame.h.
Referenced by SCOM_SendAllocatedFrame(), SCOM_SendAllocatedFrameWithoutACK(), SCOM_SendAllocatedMultiFrame(), SCOM_SendFrame(), SCOM_SendFrameWithoutAck(), SCOM_SendMultiFrame(), SCOM_SendServiceFrame(), SCOM_SendServiceMultiFrame(), SCOMFrame_GetTotalFrameSize(), and SCOMFrameQueue_Lock().
uint8_t HAL_PACKED::sync |
synchronization field: always 0xFF
Definition at line 21 of file scom_ack_frame.h.
Referenced by SCOM_Init(), SCOMAckFrame_CalculateCRC(), SCOMAckFrame_Initialize(), SCOMFrame_GetTotalFrameSize(), and SCOMFrameQueue_Lock().
uint32_t HAL_PACKED::total_size |
multiframe current frame offset (denotes progress)
Definition at line 73 of file scom_frame.h.
uint8_t HAL_PACKED::type |
frame type field
frame control field
Definition at line 24 of file scom_ack_frame.h.
Referenced by SCOM_FilterProc(), SCOM_Proc(), SCOM_SendFrame(), SCOM_SendFrameWithoutAck(), SCOM_SendMultiFrame(), SCOM_SendServiceMultiFrame(), SCOMAckFrame_Initialize(), SCOMAckFrame_IsValidAck(), SCOMFrame_CalculateCRC(), SCOMFrame_GetType(), and SCOMFrame_SetType().
uint8_t HAL_PACKED::verHi |
uint8_t HAL_PACKED::verLo |
SCOMVersion HAL_PACKED::version |