def __init__(self, transport):
self.transport = transport
for speed in (230400, 9600, 19200, 38400, 57600, 115200):
log.debug("try serial baud rate {0} kbps".format(speed))
self.transport.tty = self.transport.serial.Serial(
self.transport.tty.port, baudrate=speed, timeout=0.1)
log.debug("read arygon firmware version")
self.transport.tty.write("0av")
version = self.transport.tty.readline()
if version.startswith("FF0000"):
log.debug("Arygon Reader {0}".format(version.strip()[-4:]))
self.transport.tty.timeout = 1.0
self.transport.tty.writeTimeout = 1.0
log.debug("set mcu-tama speed to 230.4 kbps")
self.transport.tty.write("0at05")
if self.transport.tty.readline().strip() != "FF000000":
log.debug("failed to set mcu-tama speed")
break
if self.transport.tty.baudrate != 230400:
log.debug("set mcu-host speed to 230.4 kbps")
self.transport.tty.write("0ah05")
if self.transport.tty.readline().strip() != "FF000000":
log.debug("failed to set mcu-host speed")
break
time.sleep(0.5)
self.transport.tty.close()
self.transport.tty = self.transport.serial.Serial(
self.transport.tty.port, baudrate=230400,
timeout=1.0, writeTimeout=1.0)
return super(Chipset, self).__init__(transport)
raise IOError(errno.ENODEV, os.strerror(errno.ENODEV))
评论列表
文章目录