Added gitignore and Py2 implementation for testing.
This commit is contained in:
parent
83ff05c4ca
commit
e014969ff1
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/__pycache__/
|
||||
*.pyc
|
60
tty2newsml_py2.py
Executable file
60
tty2newsml_py2.py
Executable file
@ -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()
|
Reference in New Issue
Block a user