From aa7556e950141856fc9585f7d145938607228755 Mon Sep 17 00:00:00 2001 From: Wolfgang Hottgenroth Date: Sat, 29 Aug 2020 13:39:29 +0200 Subject: [PATCH] dumb test --- snippets/snippet1.py | 75 +------------------------------------------- 1 file changed, 1 insertion(+), 74 deletions(-) diff --git a/snippets/snippet1.py b/snippets/snippet1.py index a37bf3a..c383c49 100644 --- a/snippets/snippet1.py +++ b/snippets/snippet1.py @@ -135,80 +135,7 @@ class MeterbusSerial(object): print("Waiting for input ... ") c = self.port.read() - print("State {}, Octet {}".format(state, c)) - - if state == MeterbusResponseStates.START1: - if c == 0x68: - frameData.append(c) - state = MeterbusResponseStates.LENGTH1 - else: - print('Invalid start1 symbol') - state = MeterbusResponseStates.ERROR - elif state == MeterbusResponseStates.LENGTH1: - frameData.append(c) - frame['l'] = c - expectedUserDataOctets = frame['l'] - 3 - state = MeterbusResponseStates.LENGTH2 - elif state == MeterbusResponseStates.LENGTH2: - frameData.append(c) - if frame['l'] == c: - state = MeterbusResponseStates.START2 - else: - print('Invalid length 2 octet') - state = MeterbusResponseStates.ERROR - elif state == MeterbusResponseStates.START2: - frameData.append(c) - if c == 0x68: - frameData.append(c) - state = MeterbusResponseStates.C_FIELD - else: - print('Invalid start2 symbol') - state = MeterbusResponseStates.ERROR - elif state == MeterbusResponseStates.C_FIELD: - frameData.append(c) - frame['c'] = c - state = MeterbusResponseStates.A_FIELD - elif state == MeterbusResponseStates.A_FIELD: - frameData.append(c) - frame['a'] = c - state = MeterbusResponseStates.CI_FIELD - elif state == MeterbusResponseStates.C_FIELD: - frameData.append(c) - frame['ci'] = c - state = MeterbusResponseStates.USERDATA - elif state == MeterbusResponseStates.USERDATA: - frameData.append(c) - frame['userdata'].append(c) - expectedUserDataOctets -= 1 - if expectedUserDataOctets == 0: - state = MeterbusResponseStates.CHKSUM - elif state == MeterbusResponseStates.CHKSUM: - frameData.append(c) - responseChksum = c - calculatedChksum = (frame['c'] + frame['a'] + frame['ci'] + sum(frame['userdata'])) & 0x00ff - if responseChksum != calculatedChksum: - print('Invalid checksum {} {}'.format(responseChksum, calculatedChksum)) - state = MeterbusResponseStates.ERROR - else: - state = MeterbusResponseStates.STOP - elif state == MeterbusResponseStates.STOP: - frameData.append(c) - if c == 0x16: - state = MeterbusResponseStates.DONE - else: - print('Invalid stop symbol') - state = MeterbusResponseStates.ERROR - else: - print('Invalid state') - state = MeterbusResponseStates.ERROR - - print(a2h(frameData)) - print(hex(frame['c'])) - print(hex(frame['a'])) - print(hex(frame['ci'])) - print(a2h(frame['userdata'])) - - return frame + print("State {}, Octet {:02X}".format(state, c))