Mercurial > ~darius > hgwebdir.cgi > iec1107
annotate iec1107.py @ 0:fd8520d969c4
Initial commit, only readmeter function works
author | Daniel O'Connor <darius@dons.net.au> |
---|---|
date | Wed, 20 Nov 2013 10:16:37 +1030 |
parents | |
children | 99f25c8ab92f |
rev | line source |
---|---|
0
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
1 #!/usr/bin/env python |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
2 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
3 # |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
4 # http://www.domoticaforum.eu/viewtopic.php?f=71&t=7489 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
5 # |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
6 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
7 import exceptions |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
8 import serial |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
9 import sys |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
10 import time |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
11 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
12 baudtable = {'0' : 300, '1' : 600, '2' : 1200, '3' : 2400, '4' : 4800, '5' : 9600, '6' : 19200} |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
13 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
14 class Error(exceptions.BaseException): |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
15 pass |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
16 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
17 def readmeter(portname): |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
18 s = serial.Serial(portname, baudrate = 300, bytesize = 7, parity = 'E', stopbits = 1) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
19 s.timeout = 1.5 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
20 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
21 # Send ident message |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
22 s.write('/?!\r\n') |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
23 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
24 rtn = s.readline() |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
25 if len(rtn) < 6 or rtn[0] != '/' or rtn[-1] != '\n' or rtn[-2] != '\r': |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
26 raise Error('Invalid line "%s"' % (rtn)) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
27 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
28 # ACK meter and ask for data |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
29 s.write('\x06000\x0d\x0a') |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
30 s.timeout = 2 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
31 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
32 lines = [] |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
33 cksum = 0 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
34 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
35 line = s.readline() |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
36 if len(line) == 0 or line[0] != '\x02': |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
37 raise Error('No reply to query or invalid reply \"%s\"' % (line)) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
38 else: |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
39 cksum ^= reduce(lambda x, y: x ^ y, map(ord, line[1:])) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
40 lines.append(line[1:].strip()) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
41 while True: |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
42 line = s.readline() |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
43 cksum ^= reduce(lambda x, y: x ^ y, map(ord, line)) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
44 line = line.strip() |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
45 if len(line) == 0: |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
46 raise Error('Timeout during message') |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
47 if line == '!': |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
48 break |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
49 lines.append(line) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
50 fin = s.read(2) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
51 if len(fin) != 2: |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
52 raise Error('Timeout reading trailer') |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
53 if fin[0] != '\x03': |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
54 raise Error('Trailer malformed, expected 0x03, got 0x%02x' % (ord(fin[0]))) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
55 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
56 cksum ^= ord(fin[0]) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
57 if cksum != ord(fin[1]): |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
58 raise Error('Checksum mismatch, expected 0x%02x, got 0x%02x' % (cksum, ord(fin[1]))) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
59 return lines |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
60 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
61 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
62 class IEC1107(object): |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
63 def __init__(self, port): |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
64 # Open port |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
65 self.s = serial.Serial(port, baudrate=300, bytesize=7, parity='E', stopbits=1) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
66 self.s.timeout = 0.2 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
67 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
68 # Send ident message |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
69 self.s.write('/?!\r\n') |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
70 self.s.flush() |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
71 rtn = self.s.readline() |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
72 if len(rtn) < 6 or rtn[0] != '/' or rtn[-1] != '\n' or rtn[-2] != '\r': |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
73 raise Error('Invalid line "%s"' % (rtn)) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
74 rtn = rtn.strip() |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
75 self.mfg = rtn[1:4] |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
76 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
77 if self.mfg[2].isupper(): |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
78 self.restime = 0.2 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
79 else: |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
80 self.restime = 0.02 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
81 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
82 #self.baudid = rtn[4] |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
83 self.baudid = '0' |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
84 if self.baudid not in baudtable: |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
85 raise Error('Invalid baud rate %c from "%s"' % (selfbaudid, rtn)) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
86 else: |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
87 self.baud = baudtable[self.baudid] |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
88 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
89 if rtn[5] == '/': |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
90 self.mode = rtn[6] |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
91 self.mfg = rtn[7:] |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
92 else: |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
93 self.mode = None |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
94 self.mfg = rtn[5:] |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
95 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
96 # Send ACK/option message |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
97 # Byte Meaning |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
98 # 0 ACK (0x06) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
99 # 1 Protocol character ('0' = normal, '1' = secondary, '2' = HDLC protocol) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
100 # 2 Baud rate ID ('0', '1', etc) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
101 # 3 Mode control('0' = read data, '1' = device prog) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
102 self.s.write('\x060%c0\x0d\x0a' % (self.baudid)) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
103 self.s.flush() |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
104 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
105 time.sleep(self.restime) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
106 self.s.setBaudrate(self.baud) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
107 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
108 self.s.timeout = 1 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
109 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
110 def getdata(self): |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
111 self.dat = '' |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
112 while len(self.dat) == 0: |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
113 data = self.s.read(1000) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
114 self.dat += data |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
115 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
116 cksum = reduce(lambda x, y: x ^ y, map(ord,self.dat[1:-1])) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
117 if cksum != ord(self.dat[-1]): |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
118 raise Error('checksum mismatch, epected 0x%02x got 0x%02x' % (cksum, ord(self.dat[-1]))) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
119 return self.dat |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
120 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
121 def main(): |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
122 d = IEC1107('/dev/cu.usbserial-AM01Z7UC') |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
123 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
124 if __name__ == '__main__': |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
125 main() |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
126 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
127 s = '\x02C.1(12880041.0(22:25 18-11-13)\r\n1.8.1(0000000597*Wh)\r\n1.8.2(0000000000*Wh)\r\n1.8.3(0000264238*Wh)\r\n1.8.0(0000264835*Wh)\r\n2.8.0(0000511354*Wh)\r\n!\r\n\x03{' |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
128 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
129 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
130 # Meter number is 1288004 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
131 # 1.8.0 is import |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
132 # 1.8.1 is ?? |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
133 # 1.8.2 is ?? |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
134 # 1.8.3 is ?? |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
135 # 2.8.0 is export |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
136 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
137 # C.1(12880041.0(22:25 18-11-13) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
138 # 1.8.1(0000000597*Wh) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
139 # 1.8.2(0000000000*Wh) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
140 # 1.8.3(0000264238*Wh) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
141 # 1.8.0(0000264835*Wh) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
142 # 2.8.0(0000511354*Wh) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
143 |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
144 # ==> /?!<0D><0A> |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
145 # <== /ACE5SMLCD |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
146 # ==> <06>050<0D><0A> |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
147 # <== -- STX -- |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
148 # <== C.1(12880041.0(22:48 18-11-13) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
149 # <== 1.8.1(0000000597*Wh) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
150 # <== 1.8.2(0000000000*Wh) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
151 # <== 1.8.3(0000264460*Wh) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
152 # <== 1.8.0(0000265057*Wh) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
153 # <== 2.8.0(0000511354*Wh) |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
154 # <== ! |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
155 # <== -- ETX -- |
fd8520d969c4
Initial commit, only readmeter function works
Daniel O'Connor <darius@dons.net.au>
parents:
diff
changeset
|
156 # <== -- BCC -- |