| #KV3000とシリアル通信
PYTHON |
| # -*- coding: utf-8 -*- |
| |
| |
| from serial import Serial |
|
| class MyCom: |
|
| def
__init__(self, com=None): |
|
print('init') |
|
self.com = Serial( |
|
port='/dev/ttyUSB0', |
|
baudrate=9600, |
|
bytesize=8, |
|
parity='E', |
|
stopbits=1, |
|
timeout=0.1, |
|
xonxoff=0, |
|
rtscts=0, |
|
writeTimeout=None, |
|
dsrdtr=None) |
|
|
| def
mysend(self, msg): |
|
print('mysend') |
| #
print(msg) |
|
self.com.write(msg.encode('utf-8')) |
|
| def
myreceive(self): |
|
print('myreceive') |
|
data=self.com.readline() |
| if
data==b'': |
|
data=b'E1' |
| #
print(data) |
|
return data |
|
|
| def main(): |
| myapp
= MyCom() |
|
cmd="CR\r" |
|
myapp.mysend(cmd) |
|
ret=myapp.myreceive().decode('utf-8') |
|
print(ret) |
|
| |
| #1ワードの読み出し 16ビット符号無し |
| #
myapp.connect(host,port) |
|
cmd='RD ' |
|
device='DM0000' |
|
myapp.mysend(cmd+device+'\r') |
|
ret=myapp.myreceive().decode('utf-8') |
|
#print(ret) |
|
datanum=[] |
|
anser=ret[0:2] |
|
| if
anser!='E1': |
|
data=(int(ret,10)) |
|
print(data) |
|
|
| #ワードの読み出し 32ビット符号無し |
|
cmd='RD ' |
|
device='DM0000' |
|
myapp.mysend(cmd+device+'\r') |
|
ret=myapp.myreceive().decode('utf-8') |
| #
print(ret) |
|
datanum=[] |
|
anser=ret[0:2] |
|
| if
anser!='E1': |
|
datal=(int(ret,10)) |
|
print(data) |
|
|
cmd='RD ' |
|
device='DM0001' |
|
myapp.mysend(cmd+device+'\r') |
|
ret=myapp.myreceive().decode('utf-8') |
| #
print(ret) |
|
datanum=[] |
|
anser=ret[0:2] |
|
| if
anser!='E1': |
|
datah=(int(ret,10)) |
|
print(datah) |
|
data=datah*65536+datal |
|
print(data) |
|
| #ビットの読み出し |
|
|
cmd='RD ' |
| |
|
myapp.mysend(cmd+'0000'+'\r') |
|
ret=myapp.myreceive().decode('utf-8') |
| #
print(ret) |
|
datanum=[] |
|
anser=ret[0:2] |
|
| if
anser!='E1': |
|
data=(int(ret,10)) |
|
print(data) |
| |
| if __name__ == '__main__': |
| main() |
|