From 2554c4245b0225018207af8068811d510cc838ae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Hru=C5=A1ka?= Date: Sat, 17 Feb 2018 22:30:42 +0100 Subject: [PATCH] ndir example and added pp.skip() --- gex/PayloadParser.py | 4 ++++ gexync.py | 7 +++++-- ndir_test.py | 26 ++++++++++++++++++++++++++ 3 files changed, 35 insertions(+), 2 deletions(-) mode change 100644 => 100755 gexync.py create mode 100644 ndir_test.py diff --git a/gex/PayloadParser.py b/gex/PayloadParser.py index 432c0c8..7126996 100644 --- a/gex/PayloadParser.py +++ b/gex/PayloadParser.py @@ -113,3 +113,7 @@ class PayloadParser: def blob(self, length) -> bytearray: """ Read a blob of given length """ return self._slice(length) + + def skip(self, nbytes:int): + """ Skip some bytes """ + self.blob(nbytes) diff --git a/gexync.py b/gexync.py old mode 100644 new mode 100755 index 3a82712..58addcb --- a/gexync.py +++ b/gexync.py @@ -1,4 +1,5 @@ #!/bin/env python3 + import gex import sys @@ -39,7 +40,7 @@ class GexIniEditor(QtGui.QMainWindow): syncAction.triggered.connect(self.gexSync) icon = self.style().standardIcon(QtGui.QStyle.SP_DialogOkButton) - persAction = QtGui.QAction(icon, 'Persist, Close', self) + persAction = QtGui.QAction(icon, 'Persist', self) persAction.setShortcut('Ctrl+P') persAction.triggered.connect(self.gexPersist) @@ -86,6 +87,7 @@ class GexIniEditor(QtGui.QMainWindow): self.editor.setPlainText(read_ini) self.highlight.rehighlight() + self.setWindowTitle('GEX config file editor') def gexSync(self): new_txt = self.editor.toPlainText() @@ -99,12 +101,13 @@ class GexIniEditor(QtGui.QMainWindow): self.editor.setPlainText(read_ini) self.highlight.rehighlight() + self.setWindowTitle('*GEX config file editor') def gexPersist(self): client = gex.Client(gex.TrxRawUSB(), load_units=False) client.ini_persist() client.close() - self.close() + self.setWindowTitle('GEX config file editor') if __name__ == '__main__': app = QtGui.QApplication(sys.argv) diff --git a/ndir_test.py b/ndir_test.py new file mode 100644 index 0000000..223d00c --- /dev/null +++ b/ndir_test.py @@ -0,0 +1,26 @@ +import time + +import gex + +with gex.Client(gex.TrxRawUSB()) as client: + ser = gex.USART(client, 'ser') + + buf = bytearray() + def decode(data, ts): + global buf + buf.extend(data) + if len(buf) == 9: + pp = gex.PayloadParser(buf, endian="big") + pp.skip(2) + print("%d ppm CO₂" % pp.u16()) + buf = bytearray() + if len(buf) > 9: + # something went wrong, clear + buf = bytearray() + + + ser.listen(decode, decode=None) + + while True: + ser.write([0xFF, 0x01, 0x86, 0, 0, 0, 0, 0, 0x79]) + time.sleep(1)