View Single Post
  #1  
Old 09-22-2009, 03:19 AM
krimble krimble is offline
Member
 
Join Date: Nov 2006
Location: Nijmegen
Posts: 63
pyserial + vizard

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)
Reply With Quote