Landis+Gyr GridStream Protocol: Difference between revisions
No edit summary |
No edit summary |
||
| Line 7: | Line 7: | ||
==Reverse Engineering and Analysis== | ==Reverse Engineering and Analysis== | ||
=== Packet Structure === | ===Packet Structure=== | ||
==== Sync Word ==== | ====Sync Word==== | ||
0xAA 0xAA 0xAA 0xAA 0xA0 0x05 0xFF | |||
10101010 10101010 10101010 10101010 10100000 00000101 11111111 Sync Word (no start/stop bits) | |||
PDU align syncword: 0xAAAAAAAAAAA005FF but I use one less 0xAA at the start 0xAA.AA.AA.AA.A0.05.FF | |||
0xAA 0xAA 0xAA 0xAA 0xAA 0xA 0x00 0xFF | 0x2A | |||
10101010 10101010 10101010 10101010 10101010 1010 0 00000000 1 0 11111111 1 | 0 00101010 1 Sync Word (no start/stop bits) | |||
==== Checksum ==== | ====Start and Stop Bits==== | ||
====Header==== | |||
====Type, Length and Sub Type==== | |||
====Data==== | |||
====Checksum==== | |||
<br /> | <br /> | ||
===Captured Meter Data=== | ===Captured Meter Data=== | ||
| Line 39: | Line 48: | ||
!2 | !2 | ||
!3 | !3 | ||
| | |||
!4 | !4 | ||
!5 | !5 | ||
| Line 52: | Line 62: | ||
!15 | !15 | ||
!16 | !16 | ||
| | |||
!17 | !17 | ||
!18 | !18 | ||
|- | |||
! | |||
! colspan="3" |Not part of CRC calc | |||
| | |||
! colspan="13" |Data | |||
| | |||
! colspan="2" | | |||
|- | |- | ||
! | ! | ||
| Line 59: | Line 77: | ||
!Type | !Type | ||
!Length | !Length | ||
| | |||
!SubType | !SubType | ||
!Unknown | !Unknown<ref>test</ref> | ||
!Unknown | !Unknown | ||
!Unknown | !Unknown | ||
| Line 72: | Line 91: | ||
!Unknown | !Unknown | ||
!Unknown | !Unknown | ||
| | |||
!CRC | !CRC | ||
!Trailing | !Trailing | ||
| Line 79: | Line 99: | ||
|<code>55</code> | |<code>55</code> | ||
|<code>0023</code> | |<code>0023</code> | ||
! | |||
|<code>30</code> | |<code>30</code> | ||
|<code>FFFFFFFFFFFF</code> | |<code>FFFFFFFFFFFF</code> | ||
| Line 92: | Line 113: | ||
|<code>'''04384F'''</code> | |<code>'''04384F'''</code> | ||
|<code>7E80</code> | |<code>7E80</code> | ||
! rowspan="10" | | |||
|<code>0896</code> | |<code>0896</code> | ||
|<code>04</code> | |<code>04</code> | ||
| Line 99: | Line 121: | ||
|<code>55</code> | |<code>55</code> | ||
|<code>0023</code> | |<code>0023</code> | ||
! | |||
|<code>30</code> | |<code>30</code> | ||
|<code>FFFFFFFFFFFF</code> | |<code>FFFFFFFFFFFF</code> | ||
| Line 119: | Line 142: | ||
|<code>55</code> | |<code>55</code> | ||
|<code>0023</code> | |<code>0023</code> | ||
! | |||
|<code>30</code> | |<code>30</code> | ||
|<code>FFFFFFFFFFFF</code> | |<code>FFFFFFFFFFFF</code> | ||
| Line 139: | Line 163: | ||
|<code>55</code> | |<code>55</code> | ||
|<code>0023</code> | |<code>0023</code> | ||
! | |||
|<code>30</code> | |<code>30</code> | ||
|<code>FFFFFFFFFFFF</code> | |<code>FFFFFFFFFFFF</code> | ||
| Line 159: | Line 184: | ||
|<code>55</code> | |<code>55</code> | ||
|<code>0023</code> | |<code>0023</code> | ||
! | |||
|<code>30</code> | |<code>30</code> | ||
|<code>FFFFFFFFFFFF</code> | |<code>FFFFFFFFFFFF</code> | ||
| Line 179: | Line 205: | ||
|<code>55</code> | |<code>55</code> | ||
|<code>0023</code> | |<code>0023</code> | ||
! | |||
|<code>30</code> | |<code>30</code> | ||
|<code>FFFFFFFFFFFF</code> | |<code>FFFFFFFFFFFF</code> | ||
| Line 199: | Line 226: | ||
|<code>55</code> | |<code>55</code> | ||
|<code>0023</code> | |<code>0023</code> | ||
! | |||
|<code>30</code> | |<code>30</code> | ||
|<code>FFFFFFFFFFFF</code> | |<code>FFFFFFFFFFFF</code> | ||
| Line 219: | Line 247: | ||
|<code>55</code> | |<code>55</code> | ||
|<code>0023</code> | |<code>0023</code> | ||
! | |||
|<code>30</code> | |<code>30</code> | ||
|<code>FFFFFFFFFFFF</code> | |<code>FFFFFFFFFFFF</code> | ||
| Line 239: | Line 268: | ||
|<code>55</code> | |<code>55</code> | ||
|<code>0023</code> | |<code>0023</code> | ||
! | |||
|<code>30</code> | |<code>30</code> | ||
|<code>FFFFFFFFFFFF</code> | |<code>FFFFFFFFFFFF</code> | ||
| Line 259: | Line 289: | ||
|<code>55</code> | |<code>55</code> | ||
|<code>0023</code> | |<code>0023</code> | ||
! | |||
|<code>30</code> | |<code>30</code> | ||
|<code>FFFFFFFFFFFF</code> | |<code>FFFFFFFFFFFF</code> | ||
| Line 275: | Line 306: | ||
|<code>04</code> | |<code>04</code> | ||
|} | |} | ||
1) Header = 0x00FF2A | |||
2) Packet Type = 0x55 | |||
3) Packet Length = 0x0023 | |||
4) SubType = 0x30 | |||
5) Unknown = FFFFFFFFFFFF (Empty Data Slot?) | |||
6) Unknown = 0x50 | |||
7) Unknown = CF8DD9E2 (Appears to either be location identifier or duplicate meter ID in some cases) | |||
8) Unknown = C0 | |||
9) Counter = '''02''' (Increments some amount with each transmission and rolls over at 0xFF) | |||
10) Uptime = 0x'''0001ECA3''' (Value in seconds since meter powered on, easy way to see last time there was an outage!) | |||
11) Unknown Identifier #5 = 0xA483 | |||
12) Meter ID = 0xF0EE36DB | |||
13) Unknown = 0x0100 | |||
14) Unknown = 0x2132 | |||
15) Unknown = 0x'''042D19''' | |||
16) Unknown = 0x7E80 | |||
17) Checksum = 0xF154 | |||
18) Trailing byte = 0x04 | |||
---- | ---- | ||