pySerial works in miniterm but not in my app

Dario d.corti at gmail.com
Thu Oct 30 15:42:20 EDT 2014


Python 2.7.6 on Mint, pySerial 2.6

I'm trying to write a console app to control a certain device via a usb com port.

In miniterm (-p /dev/ttyUSB0 -e -b 19200), I can communicate correctly with this configuration:

--- Settings: /dev/ttyUSB0  19200,8,N,1
--- RTS: inactive  DTR: inactive  BREAK: inactive
--- CTS: inactive  DSR: inactive  RI: inactive  CD: inactive
--- software flow control: inactive
--- hardware flow control: inactive
--- data escaping: raw  linefeed: CR

sw o01 + <--- I send this
sw o01 + Command OK <--- device does what it should *and* I receive this


Now my code:

----
import serial

s = serial.serial_for_url(
	'/dev/ttyUSB0',
	19200,
	bytesize = 8,
	parity   = 'N',
	stopbits = 1,
	rtscts   = False,
	dsrdtr   = False,
	xonxoff  = False,
	timeout  = 1 # tried without
)
s.close() # tried without
s.open()
s.write('sw o01 +\r')
s.flush() # tried without
s.close() # tried with a sleep before close
----

With this I don't receive anything (tried with readline etc, omitted for readability), and the device doesn't react. Also, if I connect again with miniterm and issue the command, I first receive a "wrong command" message, as if some garbage was actually sent by my app, then it works again.

Isn't my config equivalent to the one in miniterm? Anything missing?

Thanks




More information about the Python-list mailing list