aPacket.h

group aPacket

BrainStem Packet.

aPacket.h Provides and interface for creating and destroying BrainStem Protocol packets.

const uint16_t VALIDPACKET

Const value used to check packet validity.

struct aPacket

Struct for BrainStem packets.

the check member is for checking the validity of the packet structure in memory. Current size is used during link stream processing. Address, dataSize and data fulfill the requirements of the BrainStem protocol.

bool aVALIDPACKET(const aPacket *packet)

Check packet pointer for validity.

Checks to make sure a packet was allocated using aPacket_Create.

Return
bool - True for valid false otherwise.
Parameters
  • packet: - valid packet pointer.

aPacket Functions

aPacket *aPacket_Create(void)

Create a BrainStem packet.

Create a BrainStem packet.

Return
aPacket - Pointer or NULL on error.

aPacket *aPacket_CreateWithData(const uint8_t address, const uint8_t dataLength, const uint8_t *data)

Create a BrainStem packet, containing the given data.

Create a BrainStem packet with data.

Return
aPacket - Pointer or NULL on error.
Parameters
  • address: - Module address of the BrainStem module.
  • dataLength: - The length of the data array.
  • data: - Pointer to the beginning of the packet data.

aErr aPacket_Reset(aPacket *packet)

Reset an existing packet.

Zero out any data the packet contains.

Return
Function returns aErr values.
Return Value
  • aErrNone: - If the reset was successful.
  • aErrParam: - If the packet is not valid.

aErr aPacket_AddByte(aPacket *packet, const uint8_t byte)

Accumulate a Byte into a packet.

A packet can be constructed byte by byte. the first byte added will be the BrainStem module address, the second byte the data length, and subsequent bytes will be data payload. This call will fail if more than datalength bytes are added, or if address is an invalid module address (i.e. an odd number).

Return
Function returns aErr values.
Return Value
  • aErrNone: - Adding the byte was successful.
  • aErrParam: - The packet was invalid.
  • aErrPacket: - The byte added violates the BrainStem protocol.

bool aPacket_IsComplete(const aPacket *packet)

Determine whether a packet is complete.

A packet can be constructed byte by byte. This call determines whether such a packet has been completed. It checks that dataSize is equal to the currentSize minus the Address and dataSize bytes.

Return
bool - True if complete false if not complete.

aErr aPacket_Destroy(aPacket **packet)

Destroy a BrainStem packet.

Safely destroy a brainstem packet and deallocate the associated resources.

Return
Function returns aErr values.
Parameters
  • packet: - A pointer to a pointer of a valid packet. The packet pointer will be set to NULL on successful destruction of the packet.
Return Value
  • aErrNone: - The packet was successfully destoryed.
  • aErrParam: - The packetRef is invalid.