test_message_def C Documentation

Helper Functions

SS_HEADER_PACKED_SIZE

Packed size of SsHeader is 6 bytes.

SsMsgType SsInspectHeader(const uint8_t *buffer)

Determine message type from header in buffer.

static const char kSsLogDelimiter[]

Delimiter used to separate YAML definition from binary packed data in log.

int SsWriteFile(void *fd, const void *data, unsigned int len)

Forward declared function used by SsWriteLogHeader() as well as SsLogXXX() functions. This function must be defined by the user and linked into the library via the c_deps argument of the gen_message_def Bazel macro.

Parameters:
  • fd – User defined pointer referencing the file to be written. Transparently passed from calling functions e.g. SsWriteLogHeader()

  • data – Pointer to binary data to be written to file.

  • len – Size of data to be written in bytes.

Returns:

Number of bytes written. Negative values indicate an error.

int SsReadFile(void *fd, void *data, unsigned int len)

Forward declared function used by SsFindLogDelimiter(). This function must be defined by the user and linked into the library via the c_deps argument of the gen_message_def Bazel macro.

Parameters:
  • fd – User defined pointer referencing the file to be read. Transparently passed from calling functions e.g. SsFindLogDelimiter()

  • data – Pointer to buffer to be written with data read from file.

  • len – Size of data to be read in bytes.

Returns:

Number of bytes read. Negative values indicate an error.

int SsWriteLogHeader(void *fd)

Write YAML message definition header and delimiter to file.

Parameters:
  • fd – User defined pointer referencing the file to be written. Transparently passed to SsWriteFile()

Returns:

Number of bytes written. Negative values indicate an error.

int SsFindLogDelimiter(void *fd)

Find file offset of binary data immediately following delimiter separating the YAML message definition from the binary log data.

Parameters:
  • fd – User defined pointer referencing the file to be read. Transparently passed to SsReadFile()

Returns:

File offset in bytes. Negative values indicate an error such as no delimiter found.

Enums

SsMsgType

enum SsMsgType

Message types.

enumerator kForceSigned = -1
enumerator kSsMsgTypeBitfield2BytesTest = 0
enumerator kSsMsgTypeBitfield4BytesTest = 1
enumerator kSsMsgTypeEnum1BytesTest = 2
enumerator kSsMsgTypeEnum2BytesTest = 3
enumerator kSsMsgTypePrimitiveTest = 4
enumerator kSsMsgTypeArrayTest = 5

This is a message description.

enumerator kSsMsgTypeUnknown = 6

Unknown message type.

enumerator kNumSsMsgType = 7

SsStatus

enum SsStatus

Stuff Sack status code.

enumerator kForceSigned = -1
enumerator kSsStatusSuccess = 0

Success.

enumerator kSsStatusInvalidUid = 1

Invalid message UID.

enumerator kSsStatusInvalidLen = 2

Invalid message length.

enumerator kNumSsStatus = 3

Enum1Bytes

enum Enum1Bytes
enumerator kForceSigned = -1
enumerator kEnum1BytesValue0 = 0
enumerator kEnum1BytesValue1 = 1
enumerator kEnum1BytesValue2 = 2
enumerator kEnum1BytesValue3 = 3
enumerator kEnum1BytesValue4 = 4
enumerator kEnum1BytesValue5 = 5
enumerator kEnum1BytesValue6 = 6
enumerator kEnum1BytesValue7 = 7
enumerator kEnum1BytesValue8 = 8
enumerator kEnum1BytesValue9 = 9
enumerator kEnum1BytesValue10 = 10
enumerator kEnum1BytesValue11 = 11
enumerator kEnum1BytesValue12 = 12
enumerator kEnum1BytesValue13 = 13
enumerator kEnum1BytesValue14 = 14
enumerator kEnum1BytesValue15 = 15
enumerator kEnum1BytesValue16 = 16
enumerator kEnum1BytesValue17 = 17
enumerator kEnum1BytesValue18 = 18
enumerator kEnum1BytesValue19 = 19
enumerator kEnum1BytesValue20 = 20
enumerator kEnum1BytesValue21 = 21
enumerator kEnum1BytesValue22 = 22
enumerator kEnum1BytesValue23 = 23
enumerator kEnum1BytesValue24 = 24
enumerator kEnum1BytesValue25 = 25
enumerator kEnum1BytesValue26 = 26
enumerator kEnum1BytesValue27 = 27
enumerator kEnum1BytesValue28 = 28
enumerator kEnum1BytesValue29 = 29
enumerator kEnum1BytesValue30 = 30
enumerator kEnum1BytesValue31 = 31
enumerator kEnum1BytesValue32 = 32
enumerator kEnum1BytesValue33 = 33
enumerator kEnum1BytesValue34 = 34
enumerator kEnum1BytesValue35 = 35
enumerator kEnum1BytesValue36 = 36
enumerator kEnum1BytesValue37 = 37
enumerator kEnum1BytesValue38 = 38
enumerator kEnum1BytesValue39 = 39
enumerator kEnum1BytesValue40 = 40
enumerator kEnum1BytesValue41 = 41
enumerator kEnum1BytesValue42 = 42
enumerator kEnum1BytesValue43 = 43
enumerator kEnum1BytesValue44 = 44
enumerator kEnum1BytesValue45 = 45
enumerator kEnum1BytesValue46 = 46
enumerator kEnum1BytesValue47 = 47
enumerator kEnum1BytesValue48 = 48
enumerator kEnum1BytesValue49 = 49
enumerator kEnum1BytesValue50 = 50
enumerator kEnum1BytesValue51 = 51
enumerator kEnum1BytesValue52 = 52
enumerator kEnum1BytesValue53 = 53
enumerator kEnum1BytesValue54 = 54
enumerator kEnum1BytesValue55 = 55
enumerator kEnum1BytesValue56 = 56
enumerator kEnum1BytesValue57 = 57
enumerator kEnum1BytesValue58 = 58
enumerator kEnum1BytesValue59 = 59
enumerator kEnum1BytesValue60 = 60
enumerator kEnum1BytesValue61 = 61
enumerator kEnum1BytesValue62 = 62
enumerator kEnum1BytesValue63 = 63
enumerator kEnum1BytesValue64 = 64
enumerator kEnum1BytesValue65 = 65
enumerator kEnum1BytesValue66 = 66
enumerator kEnum1BytesValue67 = 67
enumerator kEnum1BytesValue68 = 68
enumerator kEnum1BytesValue69 = 69
enumerator kEnum1BytesValue70 = 70
enumerator kEnum1BytesValue71 = 71
enumerator kEnum1BytesValue72 = 72
enumerator kEnum1BytesValue73 = 73
enumerator kEnum1BytesValue74 = 74
enumerator kEnum1BytesValue75 = 75
enumerator kEnum1BytesValue76 = 76
enumerator kEnum1BytesValue77 = 77
enumerator kEnum1BytesValue78 = 78
enumerator kEnum1BytesValue79 = 79
enumerator kEnum1BytesValue80 = 80
enumerator kEnum1BytesValue81 = 81
enumerator kEnum1BytesValue82 = 82
enumerator kEnum1BytesValue83 = 83
enumerator kEnum1BytesValue84 = 84
enumerator kEnum1BytesValue85 = 85
enumerator kEnum1BytesValue86 = 86
enumerator kEnum1BytesValue87 = 87
enumerator kEnum1BytesValue88 = 88
enumerator kEnum1BytesValue89 = 89
enumerator kEnum1BytesValue90 = 90
enumerator kEnum1BytesValue91 = 91
enumerator kEnum1BytesValue92 = 92
enumerator kEnum1BytesValue93 = 93
enumerator kEnum1BytesValue94 = 94
enumerator kEnum1BytesValue95 = 95
enumerator kEnum1BytesValue96 = 96
enumerator kEnum1BytesValue97 = 97
enumerator kEnum1BytesValue98 = 98
enumerator kEnum1BytesValue99 = 99
enumerator kEnum1BytesValue100 = 100
enumerator kEnum1BytesValue101 = 101
enumerator kEnum1BytesValue102 = 102
enumerator kEnum1BytesValue103 = 103
enumerator kEnum1BytesValue104 = 104
enumerator kEnum1BytesValue105 = 105
enumerator kEnum1BytesValue106 = 106
enumerator kEnum1BytesValue107 = 107
enumerator kEnum1BytesValue108 = 108
enumerator kEnum1BytesValue109 = 109
enumerator kEnum1BytesValue110 = 110
enumerator kEnum1BytesValue111 = 111
enumerator kEnum1BytesValue112 = 112
enumerator kEnum1BytesValue113 = 113
enumerator kEnum1BytesValue114 = 114
enumerator kEnum1BytesValue115 = 115
enumerator kEnum1BytesValue116 = 116
enumerator kEnum1BytesValue117 = 117
enumerator kEnum1BytesValue118 = 118
enumerator kEnum1BytesValue119 = 119
enumerator kEnum1BytesValue120 = 120
enumerator kEnum1BytesValue121 = 121
enumerator kEnum1BytesValue122 = 122
enumerator kEnum1BytesValue123 = 123
enumerator kEnum1BytesValue124 = 124
enumerator kEnum1BytesValue125 = 125
enumerator kEnum1BytesValue126 = 126
enumerator kNumEnum1Bytes = 127

Enum2Bytes

enum Enum2Bytes

This is an enum description.

enumerator kForceSigned = -1
enumerator kEnum2BytesValue0 = 0

This is a enum value description

enumerator kEnum2BytesValue1 = 1
enumerator kEnum2BytesValue2 = 2
enumerator kEnum2BytesValue3 = 3
enumerator kEnum2BytesValue4 = 4
enumerator kEnum2BytesValue5 = 5
enumerator kEnum2BytesValue6 = 6
enumerator kEnum2BytesValue7 = 7
enumerator kEnum2BytesValue8 = 8
enumerator kEnum2BytesValue9 = 9
enumerator kEnum2BytesValue10 = 10
enumerator kEnum2BytesValue11 = 11
enumerator kEnum2BytesValue12 = 12
enumerator kEnum2BytesValue13 = 13
enumerator kEnum2BytesValue14 = 14
enumerator kEnum2BytesValue15 = 15
enumerator kEnum2BytesValue16 = 16
enumerator kEnum2BytesValue17 = 17
enumerator kEnum2BytesValue18 = 18
enumerator kEnum2BytesValue19 = 19
enumerator kEnum2BytesValue20 = 20
enumerator kEnum2BytesValue21 = 21
enumerator kEnum2BytesValue22 = 22
enumerator kEnum2BytesValue23 = 23
enumerator kEnum2BytesValue24 = 24
enumerator kEnum2BytesValue25 = 25
enumerator kEnum2BytesValue26 = 26
enumerator kEnum2BytesValue27 = 27
enumerator kEnum2BytesValue28 = 28
enumerator kEnum2BytesValue29 = 29
enumerator kEnum2BytesValue30 = 30
enumerator kEnum2BytesValue31 = 31
enumerator kEnum2BytesValue32 = 32
enumerator kEnum2BytesValue33 = 33
enumerator kEnum2BytesValue34 = 34
enumerator kEnum2BytesValue35 = 35
enumerator kEnum2BytesValue36 = 36
enumerator kEnum2BytesValue37 = 37
enumerator kEnum2BytesValue38 = 38
enumerator kEnum2BytesValue39 = 39
enumerator kEnum2BytesValue40 = 40
enumerator kEnum2BytesValue41 = 41
enumerator kEnum2BytesValue42 = 42
enumerator kEnum2BytesValue43 = 43
enumerator kEnum2BytesValue44 = 44
enumerator kEnum2BytesValue45 = 45
enumerator kEnum2BytesValue46 = 46
enumerator kEnum2BytesValue47 = 47
enumerator kEnum2BytesValue48 = 48
enumerator kEnum2BytesValue49 = 49
enumerator kEnum2BytesValue50 = 50
enumerator kEnum2BytesValue51 = 51
enumerator kEnum2BytesValue52 = 52
enumerator kEnum2BytesValue53 = 53
enumerator kEnum2BytesValue54 = 54
enumerator kEnum2BytesValue55 = 55
enumerator kEnum2BytesValue56 = 56
enumerator kEnum2BytesValue57 = 57
enumerator kEnum2BytesValue58 = 58
enumerator kEnum2BytesValue59 = 59
enumerator kEnum2BytesValue60 = 60
enumerator kEnum2BytesValue61 = 61
enumerator kEnum2BytesValue62 = 62
enumerator kEnum2BytesValue63 = 63
enumerator kEnum2BytesValue64 = 64
enumerator kEnum2BytesValue65 = 65
enumerator kEnum2BytesValue66 = 66
enumerator kEnum2BytesValue67 = 67
enumerator kEnum2BytesValue68 = 68
enumerator kEnum2BytesValue69 = 69
enumerator kEnum2BytesValue70 = 70
enumerator kEnum2BytesValue71 = 71
enumerator kEnum2BytesValue72 = 72
enumerator kEnum2BytesValue73 = 73
enumerator kEnum2BytesValue74 = 74
enumerator kEnum2BytesValue75 = 75
enumerator kEnum2BytesValue76 = 76
enumerator kEnum2BytesValue77 = 77
enumerator kEnum2BytesValue78 = 78
enumerator kEnum2BytesValue79 = 79
enumerator kEnum2BytesValue80 = 80
enumerator kEnum2BytesValue81 = 81
enumerator kEnum2BytesValue82 = 82
enumerator kEnum2BytesValue83 = 83
enumerator kEnum2BytesValue84 = 84
enumerator kEnum2BytesValue85 = 85
enumerator kEnum2BytesValue86 = 86
enumerator kEnum2BytesValue87 = 87
enumerator kEnum2BytesValue88 = 88
enumerator kEnum2BytesValue89 = 89
enumerator kEnum2BytesValue90 = 90
enumerator kEnum2BytesValue91 = 91
enumerator kEnum2BytesValue92 = 92
enumerator kEnum2BytesValue93 = 93
enumerator kEnum2BytesValue94 = 94
enumerator kEnum2BytesValue95 = 95
enumerator kEnum2BytesValue96 = 96
enumerator kEnum2BytesValue97 = 97
enumerator kEnum2BytesValue98 = 98
enumerator kEnum2BytesValue99 = 99
enumerator kEnum2BytesValue100 = 100
enumerator kEnum2BytesValue101 = 101
enumerator kEnum2BytesValue102 = 102
enumerator kEnum2BytesValue103 = 103
enumerator kEnum2BytesValue104 = 104
enumerator kEnum2BytesValue105 = 105
enumerator kEnum2BytesValue106 = 106
enumerator kEnum2BytesValue107 = 107
enumerator kEnum2BytesValue108 = 108
enumerator kEnum2BytesValue109 = 109
enumerator kEnum2BytesValue110 = 110
enumerator kEnum2BytesValue111 = 111
enumerator kEnum2BytesValue112 = 112
enumerator kEnum2BytesValue113 = 113
enumerator kEnum2BytesValue114 = 114
enumerator kEnum2BytesValue115 = 115
enumerator kEnum2BytesValue116 = 116
enumerator kEnum2BytesValue117 = 117
enumerator kEnum2BytesValue118 = 118
enumerator kEnum2BytesValue119 = 119
enumerator kEnum2BytesValue120 = 120
enumerator kEnum2BytesValue121 = 121
enumerator kEnum2BytesValue122 = 122
enumerator kEnum2BytesValue123 = 123
enumerator kEnum2BytesValue124 = 124
enumerator kEnum2BytesValue125 = 125
enumerator kEnum2BytesValue126 = 126
enumerator kEnum2BytesValue127 = 127
enumerator kNumEnum2Bytes = 128

Bitfields

Bitfield2Bytes

struct Bitfield2Bytes
uint16_t field0 : 3
uint16_t field1 : 5
uint16_t field2 : 8

Bitfield4Bytes

struct Bitfield4Bytes

This is a bitfield description.

uint32_t field0 : 3

This is a bitfield field description.

uint32_t field1 : 5
uint32_t field2 : 9

Structures

SsHeader

struct SsHeader

Message header.

uint32_t uid

Message unique id.

uint16_t len

Message length.

ArrayElem

struct ArrayElem

This is a struct description.

bool field0

This is a struct field description.

uint16_t field1

Messages

Bitfield2BytesTest

struct Bitfield2BytesTest
SsHeader ss_header

Message header.

Bitfield2Bytes bitfield
SS_BITFIELD2_BYTES_TEST_PACKED_SIZE

Packed size of Bitfield2BytesTest is 8 bytes.

void SsPackBitfield2BytesTest(Bitfield2BytesTest *data, uint8_t *buffer)

Pack message (data) into buffer.

SsStatus SsUnpackBitfield2BytesTest(const uint8_t *buffer, Bitfield2BytesTest *data)

Unpack buffer into message (data).

int SsLogBitfield2BytesTest(void *fd, Bitfield2BytesTest *data)

Write message (data) to log described by fd (transparently passed to SsWriteFile()). Returns the number of bytes written and negative values on error.

Bitfield4BytesTest

struct Bitfield4BytesTest
SsHeader ss_header

Message header.

Bitfield4Bytes bitfield
SS_BITFIELD4_BYTES_TEST_PACKED_SIZE

Packed size of Bitfield4BytesTest is 10 bytes.

void SsPackBitfield4BytesTest(Bitfield4BytesTest *data, uint8_t *buffer)

Pack message (data) into buffer.

SsStatus SsUnpackBitfield4BytesTest(const uint8_t *buffer, Bitfield4BytesTest *data)

Unpack buffer into message (data).

int SsLogBitfield4BytesTest(void *fd, Bitfield4BytesTest *data)

Write message (data) to log described by fd (transparently passed to SsWriteFile()). Returns the number of bytes written and negative values on error.

Enum1BytesTest

struct Enum1BytesTest
SsHeader ss_header

Message header.

Enum1Bytes enumeration
SS_ENUM1_BYTES_TEST_PACKED_SIZE

Packed size of Enum1BytesTest is 7 bytes.

void SsPackEnum1BytesTest(Enum1BytesTest *data, uint8_t *buffer)

Pack message (data) into buffer.

SsStatus SsUnpackEnum1BytesTest(const uint8_t *buffer, Enum1BytesTest *data)

Unpack buffer into message (data).

int SsLogEnum1BytesTest(void *fd, Enum1BytesTest *data)

Write message (data) to log described by fd (transparently passed to SsWriteFile()). Returns the number of bytes written and negative values on error.

Enum2BytesTest

struct Enum2BytesTest
SsHeader ss_header

Message header.

Enum2Bytes enumeration
SS_ENUM2_BYTES_TEST_PACKED_SIZE

Packed size of Enum2BytesTest is 8 bytes.

void SsPackEnum2BytesTest(Enum2BytesTest *data, uint8_t *buffer)

Pack message (data) into buffer.

SsStatus SsUnpackEnum2BytesTest(const uint8_t *buffer, Enum2BytesTest *data)

Unpack buffer into message (data).

int SsLogEnum2BytesTest(void *fd, Enum2BytesTest *data)

Write message (data) to log described by fd (transparently passed to SsWriteFile()). Returns the number of bytes written and negative values on error.

PrimitiveTest

struct PrimitiveTest
SsHeader ss_header

Message header.

uint8_t uint8
uint16_t uint16
uint32_t uint32
uint64_t uint64
int8_t int8
int16_t int16
int32_t int32
int64_t int64
bool boolean
float float_type
double double_type
SS_PRIMITIVE_TEST_PACKED_SIZE

Packed size of PrimitiveTest is 49 bytes.

void SsPackPrimitiveTest(PrimitiveTest *data, uint8_t *buffer)

Pack message (data) into buffer.

SsStatus SsUnpackPrimitiveTest(const uint8_t *buffer, PrimitiveTest *data)

Unpack buffer into message (data).

int SsLogPrimitiveTest(void *fd, PrimitiveTest *data)

Write message (data) to log described by fd (transparently passed to SsWriteFile()). Returns the number of bytes written and negative values on error.

ArrayTest

struct ArrayTest

This is a message description.

SsHeader ss_header

Message header.

ArrayElem array_1d[3]

This is a message field description.

ArrayElem array_2d[2][3]
ArrayElem array_3d[1][2][3]
SS_ARRAY_TEST_PACKED_SIZE

Packed size of ArrayTest is 51 bytes.

void SsPackArrayTest(ArrayTest *data, uint8_t *buffer)

Pack message (data) into buffer.

SsStatus SsUnpackArrayTest(const uint8_t *buffer, ArrayTest *data)

Unpack buffer into message (data).

int SsLogArrayTest(void *fd, ArrayTest *data)

Write message (data) to log described by fd (transparently passed to SsWriteFile()). Returns the number of bytes written and negative values on error.