www.RFM.com
Technical s1.678.684.2000
Page 47 of 82
©2009 by RF Monolithics, Inc.
E-mail:
DNT2400 - 08/18/09
4.2.11 Protocol Mode Sensor Message Example
In this example, the base host requests an ADC1 reading from a remote using the GetRemoteRegister
command, 0x0A. The MAC address of the remote is 0x000102. The current ADC1 measurement is read
from register 0x08 in bank 0x05. The ADC reading spans two bytes. The protocol formatting for this
command is:
0xFB 0x07 0x0A 0x02 0x01 0x00 0x08 0x05 0x02
Note the remote MAC address 0x000102 is entered in Little-Endian byte order, 0x02 0x01 0x00. The
ADC reading is returned in a GetRemoteRegisterReply message:
0xFB 0x0B 0x1A 0x00 0x02 0x01 0x00 0xC4 0x08 0x05 0x02 0xFF 0x02
Substantial information is returned in the message. The last two byes of the message give the ADC
reading in Little-Endian format, 0xFF 0x02. The ADC reading is thus 0x02FF. The RSSI value is the byte
following the address, 0xC4 (-60 dBm). The TxStatus byte to the right of the GetRemoteRegisterReply
Packet Type is 0x00, showing the packet was acknowledged on the RF channel.
4.2.12 Protocol Mode Event Message Example
In this example, the IO_ReportInterval is set to 10 seconds and the periodic report timer bit in the
IO_ReportTrigger parameter is set on the remote, with MAC address 0x123456. This causes event mes-
sages to be sent from this remote every 10 seconds. The IO_ReportInterval and the IO_ReportTrigger
parameters are loaded using SetRemoteRegister commands. The command to set the IO_ReportInterval
to 10 seconds is:
0xFB 0x0B 0x0B 0x56 0x34 0x12 0x1A 0x06 0x04 0xE8 0x03 0x00 0x00
The IO_ReportInterval parameter starts in location 0x1A of bank 0x06. The report interval is set in 10 ms
units, so a 10 second report interval is 1000 units or 0x000003E8 (Little-Endian format E8 03 00 00). The
IO_ReportInterval parameter is updated and SetRemoteRegisterReply is returned:
0xFB 0x06 0x1B 0x00 0x56 0x34 0x12 0xC4
The command to set the periodic report timer bit in IO_ReportTrigger to is:
0xFB 0x08 0x0B 0x56 0x34 0x12 0x19 0x06 0x01 0x10
The periodic report timer bit in IO_ReportTrigger is located in bit position four (00010000b) or 0x10. The
IO_ReportTrigger parameter is updated and SetRemoteRegisterReply is returned:
0xFB 0x06 0x1B 0x00 0x56 0x34 0x12 0xC4
The remote will start sending event messages on 10 second intervals as shown in the log records below:
FB 16 28 56 34 12 CB 00 05 0E 01 00 00 00 01 01 F9 01 DF 01 C9 01 10 00
FB 16 28 56 34 12 B6 00 05 0E 01 00 00 00 01 01 F8 01 DF 01 CC 01 10 00
FB 16 28 56 34 12 B3 00 05 0E 01 00 00 00 01 01 F8 01 E0 01 CC 01 10 00
FB 16 28 56 34 12 B1 00 05 0E 01 00 00 00 01 01 F9 01 DF 01 C9 01 10 00
FB 16 28 56 34 12 AE 00 05 0E 01 00 00 00 01 01 F9 01 DF 01 C8 01 10 00
FB 16 28 56 34 12 AD 00 05 0E 01 00 00 00 01 01 F9 01 E1 01 CF 01 10 00
IO_ReportTrigger generates RxEvent messages (PktType 0x28). The message payload consists of the
first 14 bytes in Bank 5, including the state of GPIO0 through GPIO5, the input voltages measured by
ADC0 through ADC2, and the state of the event flags. Note the ADC readings and the event flags are
presented in Little-Endian order.