ich muss mit einem Industricodiersystem kommunizieren.
Dies geschieht über eine RS232 Schnittstelle / USB.
Gegeben ist folgendes Programm. Python 2.7
Code: Alles auswählen
import time
import sys
import os
sys.path.extend(['./site-packages'])
import serial
toHex = lambda x:" ".join([hex(ord(c))[2:].zfill(2).upper() for c in x])
if os.name == 'posix':
rs232 = serial.Serial('/dev/ttyUSB0',57600,timeout=3)
elif os.name == 'nt':
rs232 = serial.Serial('COM19',57600,timeout=3)
else:
raise Exception('ungueltiges os: {0}'.format(os.name))
msg = '\x02\x00\x09\x00\x3D\x01\x05\x41\x41\x41\x41\x41\x91\x03'
print toHex(msg)
result = rs232.write(msg)
while rs232.inWaiting() == 0:pass
x = rs232.read(rs232.inWaiting())
print toHex(x)
rs232.close()
Dieses Funktioniert Problemlos unter Windows 7.02 00 02 00 4F 51 03
Sobald ich es auf einem Raspberry oder Ubuntu (13.04) ausführe, blockiert das System.
Unter den Linux Systemen funktioniert die Schnittstelle /dev/ttyUSB0 wenn ich es mit einem anderen Computer verbinde einwandfei.
Verschiedene Versuche mit flush und unterschiedlichen timeout haben nichts ergeben.
Has jemand eine Idee?
Besten Dank im vorraus.
\^/ili