User's Manual
CHAPTER 3
Advanced Functions
48
Frame Parsing Example
To better understand how the retrieved frames must be processed,
this section provides an example of such processing. Let’s suppose
that we used the GETBLOCK command and retrieved a block of
frames of type 37. After parsing the block, we separate it into indi-
vidual frames as described in “GETBLOCK” on page 29. Because
all the frames are treated identically, we will show you how to inter-
pret only one of them from the block. The frame looks something
like this:
02066411312A1F25FF7B7F0000000000000000590016AC6B0000
000000A6D5E81C40000000000206
Separating the date/time, frame type and size, and the data seg-
ment, we get this:
020664: Date (2/6/00)
11312A: Time (17:49:42)
1F: Size (31 bytes)
25: Frame type (37)
FF7B7F0000000000000000590016AC6B0000000000A6D5E81C40
00000000: Data
Using the description of frame 37, we can parse the data segment.
To show this more easily, we will rewrite the frame with spaces
inserted between different elements:
FF 7B 7F 0000 0000 0000 0000 59 001 6AC 6B0 000 000
000 A6D 5E8 1C4 000 000 000
Now we can easily map the elements onto the frame 37 structure:
FF: RF in
7B: RF out
7F: Digibyte
0000: PulseCounter0
0000: PulseCounter1
0000: PulseCounter2
0000: PulseCounter3
59: BatteryLevel
001: Analog1
6AC: Analog2
6B0: Analog3
000: Analog4
000: Analog5
000: Analog6
A6D: Analog7
5E8: Analog8
1C4: Analog9
000: Analog10
000: Analog11
000: Analog12
The last step is to convert the analog values to actual engineering
units. This is easily accomplished if we know what sensor is con-
nected to each input of the RTU, and its conversion equation. Let’s