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