- Addressing
- Configuration
- Data reception
- Data structures
- Data transmission
- Error handling
- Routing
- IO setup
PJON_Endpoint contains the device id, bus id and MAC address of a device:
struct PJON_Endpoint {
uint8_t id = PJON_NOT_ASSIGNED;
uint8_t bus_id[4] = {0, 0, 0, 0};
uint8_t mac[6] = {0, 0, 0, 0, 0, 0};
};PJON_Endpoint contains mac if PJON_INCLUDE_MAC is defined. The conditional inclusion is present to reduce the footprint of programs where the MAC address is not used.
PJON_Packet_Info contains all meta-data supported by the PJON packet format. The tx and rx data structures of type PJON_Endpoint contain the transmitter and receiver information.
struct PJON_Packet_Info {
PJON_Endpoint tx;
PJON_Endpoint rx;
void *custom_pointer;
uint8_t header = PJON_NO_HEADER;
uint8_t hops = 0;
uint16_t id = 0;
uint16_t port = PJON_BROADCAST;
};PJON_Packet_Info contains port if PJON_INCLUDE_PORT is defined and id if PJON_INCLUDE_PACKET_ID is defined. The conditional inclusion is present to reduce the footprint of programs where the port and the packet id are not used.
The custom_pointer can be used to link other classes or instances passing any sort of data structure. To understand how to use it see the ClassMemberCallback example.