En Tue, 09 Mar 2010 12:01:22 -0300, kishore <kishorei...@gmail.com>
escribió:

> Iam using python 2.5.4
> pyserial  2.4
> pywin32-214
> on windows 7

> i hav a small test script written to query a serial device (arduino)
> and get back reply appropriately


Thanks for your response
i tried closing idle and the following code prints
port opened
Write failed

code:

import serial
import time
ser=serial.Serial(port='\\.\COM2', baudrate=9600)

If you want a string containing these 8 characters \\.\COM2 you have to
write it either as r'\\.\COM2' or '\\\\.\\COM2'

if ser:
        print 'port opened'

Either the Serial object is constructed and returned, or an exception is
raised. 'if ser:' has no sense; Python is not C...

ser.open()
if ser.write('1'):
        print 'Write success'
else:
        print 'write failed'

The write method, when successful, implicitly returns None. None has a
false boolean value, so your code will always print 'write failed'.

Usually, in Python, error conditions are marked by raising an exception.
Using return values to indicate success/failure is uncommon.

Also, are you sure the device doesn't expect a newline character? '1\n'?

You may need to call ser.flushOutput() to ensure the output buffer is
actually emptied.

time.sleep(1)
a=ser.readline()

print repr(a)

time.sleep(1)
b=ser.readline()

print repr(b)

ser.close()

I believe this might be a serial port access error.
how to solve this?
Any suggestions?

I don't think so. If you could not access the serial port, you'd have seen
an IOError exception or similar.

--
Gabriel Genellina

--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to