struct xbee_pkt {
unsigned char frameID; /* AT Status */
unsigned char atCmd[2]; /* AT */
unsigned char status; /* AT Data Status */ /* status / options */
unsigned char Addr64[8]; /* AT Data */
unsigned char Addr16[2]; /* AT Data */
unsigned char data[128]; /* AT Data */
unsigned char RSSI; /* Data */
unsigned int datalen;
/* X A5 A4 A3 A2 A1 A0 D8 D7 D6 D5 D4 D3 D2 D1 D0 */
unsigned short IOmask; /* IO */
/* X X X X X X X D8 D7 D6 D5 D4 D3 D2 D1 D0 */
unsigned short IOdata; /* IO */
/* X X X X X D D D D D D D D D D D */
unsigned short IOanalog[6]; /* IO */
};
typedef struct xbee_pkt xbee_pkt;
Most of these fields are fairly self explanatory, however some need attention brought to them and others need explaining. I will touch on the most important here: