From e014969ff1b193ed0d99194b03852dfd326595c7 Mon Sep 17 00:00:00 2001 From: sv-ncp-3 root Date: Fri, 12 Sep 2014 10:05:47 +0200 Subject: [PATCH] Added gitignore and Py2 implementation for testing. --- .gitignore | 2 ++ tty2newsml_py2.py | 60 +++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+) create mode 100644 .gitignore create mode 100755 tty2newsml_py2.py diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..cbeb740 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/__pycache__/ +*.pyc diff --git a/tty2newsml_py2.py b/tty2newsml_py2.py new file mode 100755 index 0000000..efdfdb5 --- /dev/null +++ b/tty2newsml_py2.py @@ -0,0 +1,60 @@ +#!/bin/env python +# -*- coding: utf-8 -*- + +from __future__ import absolute_import, division, print_function + +import serial +import sys +import IPTCMessage + +class _main(object): + def __init__(self, port='/dev/tty706'): + self.openPort(port) + while True: + msg = self.waitForStart() + msg += self.readUntilEOM() + print("This is the message: %s" % repr(msg)) + + def openPort(self, port): + self.port = serial.Serial(port=port, baudrate=4800, bytesize=serial.EIGHTBITS, parity=serial.PARITY_NONE, stopbits=serial.STOPBITS_ONE, timeout=None) + print("%s opened with %i baud. Timeout is %s seconds." % (self.port.name, self.port.baudrate, self.port.timeout)) + + def waitForStart(self): + print("Waiting for start indicator (%i): " % self.port.inWaiting(), end='') + sys.stdout.flush() + while True: + byte = self.port.read() + print(".", end='') + sys.stdout.flush() + if byte == b'\x01': + print("Found.") + return byte + + def readUntilEOM(self): + print("Reading data until EOM.", end='') + sys.stdout.flush() + msg = b'' + ctr = 0 + while True: + print("%i>" % self.port.inWaiting(), end='') + sys.stdout.flush() + byte = self.port.read() + ctr+=1 +# if ctr % 10 is 0: + print(".", end='') + sys.stdout.flush() + if byte == b'\x01': + print("PROBLEM: Got start indicator, but message not yet finished.") + break + msg += byte + if byte == b'\x04': + break + print("Got %i bytes." % len(msg)) + return msg + + def readLine(self): + rcv = self.port.readline() + print("Got: %s" % repr(rcv)) + +if __name__=='__main__': + _main()