читаем данные с порта rs232 к которому подключен весовой терминал КСК8.
код:
#!/usr/bin/env python
import sys, os
import serial
ser = serial.Serial(
port=0,
baudrate=9600,
bytesize=8,
parity='N',
stopbits=1,
timeout=1,
xonxoff=0,
rtscts=0,
interCharTimeout=1,
writeTimeout = 1
)
def mycomputer(myadres,mycommand):
byte1 = "\x02"
byte2 = myadres
byte3 = mycommand
byte6 = "\x03"
myxor = ord(byte2)^ord(byte3)
if myxor <10:
myxor += 48
else:
myxor += 55
myxor = "\x00" + chr(myxor)
zapros = byte1 + byte2 + byte3 + myxor + byte6
return zapros
myz = mycomputer('A','A')
def send():
global ser, myz
ser.write(myz) #send data
def receive():
global ser
result = ser.read(8) #receive data
return result
ser.open() # open port
send()
def myres():
b=receive()
c=tuple(b)
d0=ord(c[0])
d1=ord(c[1])
d2=ord(c[2])
d3=ord(c[3])
d4=ord(c[4])
d5=ord(c[5])
d6=ord(c[6])
d7=ord(c[7])
ser.close()
данные получаются вида 0 0 0 128 128 0 0 0, не совсем понятно как их перевезти в код ASCII или к виду b'00111111'.
Пользователь решил продолжить мысль 11 Сентября 2013, 21:02:22:
Я оказывается по 8 байт считывал