API examples
Example: Create an API AT command frame to configure a device to allow joining (set NJ to 0xFF).
The frame should look like:
0x7E 0x00 0x05 0x08 0x01 0x4E 0x4A 0xFF 5F
Where
- 0x0005 = length
- 0x08 = AT Command API frame type
- 0x01 = Frame ID (set to non-zero value)
- 0x4E4A = AT Command (NJ)
- 0xFF = value to set command to
- 0x5F = Checksum
The checksum is calculated as [0xFF - (0x08 + 0x01 + 0x4E + 0x4A + 0xFF)]
Example: Send an ND command to discover the devices in the PAN.
The frame should look like:
0x7E 0x00 0x04 0x08 0x01 0x4E 0x44 0x64
Where:
- 0x0004 = length
- 0x08 = AT Command API frame type
- 0x01 = Frame ID (set to non-zero value)
- 0x4E44 = AT command (ND)
- 0x64 = Checksum
The checksum is calculated as [0xFF - (0x08 + 0x01 + 0x4E + 0x44)]
Example: Send a remote command to the coordinator to set AD1/DIO1 as a digital input (D1=3) and apply changes to force the I/O update.
The API remote command frame should look like:
0x7E 0x00 0x10 0x17 0x01 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0xFF 0xFE 0x02 0x44 0x31 0x03 0x70
Where:
- 0x10 = length (16 bytes excluding checksum)
- 0x17 = Remote Command API frame type
- 0x01 = Frame ID
- 0x0000000000000000 = Coordinator's address (can be replaced with coordinator's actual 64-bit address if known)
- 0xFFFE = 16- bit Destination Address
- 0x02 = Apply Changes (Remote Command Options)
- 0x4431 = AT command (D1)
- 0x03 = Command Parameter (the parameter could also be sent as 0x0003 or 0x00000003) 0x70 = Checksum