lock access to serial port

kkadrese at gmail.com kkadrese at gmail.com
Wed Mar 19 09:50:18 EDT 2008


hmm, now it seems I get to the locking
    try:
        ser = serial.Serial(dev, 19200, rtscts=1, timeout=1)
        if ser.isOpen():
            try:
                fcntl.lockf(ser,fcntl.LOCK_EX)
but get into some weirdness - trying to lock does not time out! The
script stops at this line and waits ?for ever? (it waits for 15
minutes at least, that I have tried).

Andra


> not the goal setup but the way I tried it out - a webpage to send an
> sms to mobile phone. This is an php what calls a python script. A
> python script opens serial device, checks for gsm network, sends a
> message - on all the way I try to make sure that appropriate answers
> are received from the gsm device so that I know that all is going well
> (and if not - cancel it with error message).
>
> Testing it with sending an sms from two open webpages, I normally got
> that one message was sent and for the other I received "try once more,
> happened that and that". But I got also an inadmissible situation -
> the received sms contained also unwanted text. As far as I can realize
> how to deal with it is not allowing writing to the device for two
> processes simultaneously.
>
> Andra
>
> On 19 Marts, 11:00, taco <trala... at joepie.nl> wrote:
>
> > kkadr... at gmail.com wrote:
> > > hello group,
>
> > > how to get ttyS0 serial port for exclusive access? I have a python
> > > script that uses this device with AT commands. I need that two
> > > instances can call simultaneosuly this python script but only one of
> > > them gets the device. I tried fcntl.flock, it was just ignored, put
> > > writtable file LCK..ttyS0 in /var/lock, tried ioctl (but I may not
> > > know what are appropriate arguments), googled half a day for various
> > > phrases, error messages etc....without success.
>
> > > please help,
>
> > > Andra
>
> > not sure if I understand you well, but how about a server application which
> > accepts 2 clients which can send messages which are output on the serial
> > device? The serial device access protected with a mutex while receiving
> > messages done in 2 threads or something.
> > taco



More information about the Python-list mailing list