Pyserial - send and receive characters through linux serial port
terry
itskrithika at gmail.com
Fri May 2 14:44:09 EDT 2008
On May 2, 10:26 am, terry <itskrith... at gmail.com> wrote:
> On Apr 26, 8:21 am, Grant Edwards <gra... at visi.com> wrote:
>
>
>
>
>
> > On 2008-04-25, terry <itskrith... at gmail.com> wrote:
>
> > > I am trying to send a character to '/dev/ttyS0' and expect the
> > > same character and upon receipt I want to send another
> > > character. I tired withPyserialbut in vain.
>
> > Pyserialworks. I've been using it almost daily for many
> > years. Either your program is broken, your serial port is
> > broken, or the device connected to the serial port is broken.
>
> > > Test Set up:
>
> > > 1. Send '%' to serial port and make sure it reached the serial port.
> > > 2. Once confirmed, send another character.
>
> > > I tried with write and read methods inPyserialbut no luck.
>
> > > Can you help?
>
> > Ah yes, the problem is in line 89 of your program.
>
> > We've no way to help if you don't provide details. If you
> > really want help, write as small a program as possible that
> > exhibits the problem. I'd like to emphasize _small_. The
> > larger the program the less likely people are to look at it,
> > and the less likely they are to find the problem if they do
> > look at it.
>
> > Much of the time the exercise of writing a small demo program
> > will lead you to the answer. If not, then post it, along with
> > the output from the program that shows the problem.
>
> > Then we can tell you what you did wrong.
>
> > --
> > Grant Edwards grante Yow! I'm also against
> > at BODY-SURFING!!
> > visi.com
>
> Here is the code.
>
> """Open serial connection"""
> def openSerialConnection(self,serpt):
> try:
> s1 = serial.Serial(serpt,timeout=10)
>
> except:
> self.print_u("Failed to open serial port %s. " %serpt)
>
> def enterThroughSerialPort(self,serpt):
> s1 = serial.Serial(serpt,timeout=10)
> self.print_u('Sending !!!!..')
> while True:
> s1.write('*')
> c = s1.read(1)
> if c:
> self.print_u('Found "*" ')
> break
> print c
> s1.write('enter\r')
> s1.read('login')
>
> if __name__ == '__main__':
> serpt = '/dev/ttyS0'
> x.openSerialConnection(serpt)
> # funtion to reboot the device goes here ---#
> x.enterThroughSerialPort(serpt)
>
> After opening the serial connection, the device is rebooted followed
> by sending '*' to serial port and reading back the same. I seem to
> have problem while trying to read '*' back from serial port. First of
> all I am not sure if serial port received the '*'.
>
> Thanks!- Hide quoted text -
>
> - Show quoted text -
This is the err message I received:
c = s1.read(1)
File "/usr/local/lib/python2.5/site-packages/serial/serialposix.py",
line 275, in read
ready,_,_ = select.select([self.fd],[],[], self._timeout)
More information about the Python-list
mailing list