Hi all,
I'm wondering if somebody can help me with a communication problem I have with a hardwareDevice connected to my serial port. We would like to connect a bike to Vizard and use the cycleData to control the camera. (we already have the protocol information and we are able to print correct data in Delphi)
I found the pyserial recommendation in the Worldviz-Knowledgebase. But I can't get it to work properly. When I try to print x nothing happens.
Does anybody have experience with pySerial in Vizard.
Thank you so much!
Code:
import serial
import viztask
viz.go()
#hex(255)[2:] = ff
#int('ff',16) = 255
start_flag = int('F1',16)
stop_flag = int('F2',16)
cmdGetSpeed = int('A5',16)
cmdSetGear = int('2D',16)
ser = serial.Serial(
port=0,
parity=serial.PARITY_NONE,
bytesize=serial.EIGHTBITS,
stopbits=serial.STOPBITS_ONE,
timeout=0,
xonxoff=0,
rtscts=0,
baudrate=9600
)
def mykeyboard(key):
if key == "s" :
viztask.schedule(serialComTask())
def serialComTask() :
ser.write(start_flag)
ser.write(cmdGetSpeed)
ser.write(cmdGetSpeed)
ser.write(stop_flag)
print "sended"
yield viztask.waitTime(2)
print "waited 1 sec"
x = ser.read(4)
print x
def onExit():
print "quiting"
ser.close() # close port
pass
viz.callback(viz.KEYBOARD_EVENT,mykeyboard)
viz.callback(viz.EXIT_EVENT,onExit)