[Tutor] question about serial coms

nephish nephish at xit.net
Tue Nov 15 02:09:32 CET 2005


oh yeah, i will need this too!
sk


On Mon, 2005-11-14 at 17:04 -0800, Bennett, Joe wrote:
> I have been working with pyserial. One question I have
> is this. I have a loop that writes to the serial port
> and then waits about 500ms and then reads from the
> serial port. The first thing read from the serial port
> is ALWAYS the data written to the serial port... I
> must be missing something obvious, but I thuoght the
> two buffers were separate...
> 
> Here is the code I'm using if that helps:
> 
> while i == 0:
>   line = parmfile.readline()
>   line = string.rstrip(line)
>   #print line
>   if line == "":
>     i = 1
>     break
>   
>   else:
>     
>     ser.write(line + "\r")
>     #ser.write("\r\n")
>     print "Sending: " + line
> 
>     
>    
>     time.sleep(1)
>     data_in = ser.read(100)
>     print "Response: " + data_in
>     time.sleep(.2)
>     
>     
> print "Closing Serial Port\n"    
> ser.close()
> 
> 
> 
> -Joe
> 
> 
> --- nephish <nephish at xit.net> wrote:
> 
> > ok, i think i got it. Thanks so much. 
> > let you know how it turns out.
> > shawn
> > 
> > 
> > On Tue, 2005-11-15 at 11:27 +1300, Hans
> > Dushanthakumar wrote:
> > > Lock() is provided by the threading module.
> > > see
> > > http://docs.python.org/lib/module-threading.html 
> > > &
> > > http://docs.python.org/lib/lock-objects.html
> > > 
> > > Cheers
> > > Hans
> > > 
> > > 
> > > -----Original Message-----
> > > From: nephish [mailto:nephish at xit.net] 
> > > Sent: Tuesday, 15 November 2005 11:23 a.m.
> > > To: Hans Dushanthakumar
> > > Cc: Hugo González Monteverde; tutor
> > > Subject: RE: [Tutor] question about serial coms
> > > 
> > > ok, lock is something you wrote yourself ?
> > > i can't find it in the docs. However, i think i
> > can essentially build the same thing. 
> > > the serial module i use is pyserial.
> > pyserial.sourceforge.net.
> > > the docs are a wee bit on the sparce side. But i
> > think i can pull it off. Thanks for your help. 
> > > 
> > > shawn
> > > 
> > > 
> > > On Tue, 2005-11-15 at 10:58 +1300, Hans
> > Dushanthakumar wrote:
> > > > I believe that the drivers take care of that,
> > however, I did use locks to make sure that there
> > were no conflicts.
> > > > 
> > > > In the listener thread I had something along the
> > lines of:
> > > > 
> > > >  Acquire lock
> > > >  readline() from the ser port
> > > >  Release lock
> > > > 
> > > > And in the sender thread,
> > > > 
> > > >  Acquire lock
> > > >  send msg over ser port
> > > >  Release lock
> > > > 
> > > > Cheers
> > > > Hans
> > > > 
> > > > -----Original Message-----
> > > > From: nephish [mailto:nephish at xit.net]
> > > > Sent: Tuesday, 15 November 2005 10:47 a.m.
> > > > To: Hans Dushanthakumar
> > > > Cc: Hugo González Monteverde; tutor
> > > > Subject: RE: [Tutor] question about serial coms
> > > > 
> > > > well thats encouraging, did you have to do
> > anything special to prevent an error when trying to
> > read or write at the same time ?
> > > > 
> > > > thanks
> > > > sk
> > > > 
> > > > 
> > > > On Tue, 2005-11-15 at 09:29 +1300, Hans
> > Dushanthakumar wrote:
> > > > > Ive worked on a similar application. I used
> > one thread to read from the serial port and another
> > one to handle the writes. 
> > > > > 
> > > > > -----Original Message-----
> > > > > From: tutor-bounces at python.org
> > [mailto:tutor-bounces at python.org] On 
> > > > > Behalf Of Hugo González Monteverde
> > > > > Sent: Tuesday, 15 November 2005 7:36 a.m.
> > > > > To: nephish
> > > > > Cc: tutor
> > > > > Subject: Re: [Tutor] question about serial
> > coms
> > > > > 
> > > > > Hi Nephish,
> > > > > 
> > > > > Are you using pyserial or rolling your own?
> > Normally you can write and read to the /dev/ttySXX
> > file at the same time; since they're special files,
> > not ordinary files, the driver handles that.
> > > > > 
> > > > > Handling both writing and reading in your
> > program's flow control is a wholly different matter,
> > though. You might  need to use select()  to avoid
> > blocking.
> > > > > 
> > > > > Are you using two completely different scripts
> > for reding and writing?
> > > > > 
> > > > > There is some valuable info, if not about
> > python, in the Serial Programming howto, at:
> > > > > 
> > > > >
> > http://www.tldp.org/HOWTO/Serial-Programming-HOWTO/
> > > > > 
> > > > > 
> > > > > Hugo
> > > > > 
> > > > > nephish wrote:
> > > > > > Hey there,
> > > > > > 	i am developing on a linux computer with
> > the serial module. Now, 
> > > > > > i already am able to recieve info from a
> > serial RS232 device and 
> > > > > > process everything ok. What i need to do now
> > is write to the 
> > > > > > serial device, but i also need to be able to
> > not interrupt the 
> > > > > > script that is reading from it.
> > > > > > 	I guess my question is, do i have to
> > interrupt the reading script 
> > > > > > to write to the same RS232 device ?
> > > > > > 	and if so, how do i do that?
> > > > > > 
> > > > > > 	thanks,
> > > > > > 	shawn
> > > > > > 
> > > > > >
> > _______________________________________________
> > > > > > Tutor maillist  -  Tutor at python.org 
> > > > > >
> > http://mail.python.org/mailman/listinfo/tutor
> > > > > > 
> > > > >
> > _______________________________________________
> > > > > Tutor maillist  -  Tutor at python.org
> > > > > http://mail.python.org/mailman/listinfo/tutor
> > > > 
> > > 
> > 
> > _______________________________________________
> > Tutor maillist  -  Tutor at python.org
> > http://mail.python.org/mailman/listinfo/tutor
> > 
> 



More information about the Tutor mailing list