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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 --