# python3 pb avec librairie serial

**URL:** <https://www.debian-fr.org/t/python3-pb-avec-librairie-serial/59340>\
**Category:** Programmation\
**Created:** [Février 21, 2016, 6:23 UTC](https://www.debian-fr.org/t/python3-pb-avec-librairie-serial/59340 "2016-02-21T18:23:56Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 21, 2016, 6:23 UTC](https://www.debian-fr.org/t/python3-pb-avec-librairie-serial/59340/1 "2016-02-21T18:23:56Z")

</div>

Salut les gens 🙂

Voilà mon problème :

J’ai resorti un petit programme que j’avais commencé et qui fonctionnait… Il s’agit de récupérer la température sur un arduino avec un module bluetooth.

Bon… coté hardware, aucun soucis… pour preuve :

`$ cat /dev/rfcomm0 
[20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37][20.37]`

seulement mon code python qui fonctionnait me dit maintenant que mon port serie est occupé… heu… ben non, puisque je peux faire la commande du dessus… je comprends pas.

Voici le code :

```auto
#!/usr/bin/python3
# -*- coding: utf-8 -*-

from serial import *
import time
import threading
import csv

import sys

class serTemp :

     ... (threads et compagnie...)

    def __init__ (self, port, baud):
        self.ser = Serial(port, baud)
        self.ThreadRuned = False
        self.texte = ""
        self.ser.open()
        if (self.ser.isOpen()):
            print(" __init__ : Port ", self.ser.isOpen())
            self.ser.flushInput()
            self.ser.flushOutput()

        self.ThreadLCD = threading.Thread(None, self.threadTemp)

if __name__ == ' __main__':
    test = serTemp("/dev/rfcomm0", 115200)
    ...
```

réponse :

`./bttemperature.py 
Traceback (most recent call last):
  File "./bttemperature.py", line 114, in <module>
    test = serTemp("/dev/rfcomm0", 115200)
  File "./bttemperature.py", line 103, in __init__
    self.ser.open()
  File "/usr/lib/python3/dist-packages/serial/serialposix.py", line 271, in open
    raise SerialException("Port is already open.")
serial.serialutil.SerialException: Port is already open.
`

Quelqu’un à une idée du pb ?

Merci d’avance 😊

---

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 21, 2016, 6:23 UTC](https://www.debian-fr.org/t/python3-pb-avec-librairie-serial/59340/2 "2016-02-21T18:23:57Z")

</div>

Bon… j’ai résolu le problème en faisant :

` def __init__ (self, port, baud):
        self.ser = Serial(port, baud)
        self.ThreadRuned = False
        self.texte = ""
        self.ser.close()
        self.ser.open()
        if (self.ser.isOpen()):
            print(" __init__ : Port ", self.ser.isOpen())
            self.ser.flushInput()
            self.ser.flushOutput()`

Mais j’aimerai bien comprendre pourquoi il est ouvert avant même que je l’ouvre ☹

---

<div class="post-metadata">

**Author:** ![limax](https://www.debian-fr.org/user_avatar/www.debian-fr.org/limax/32/3886_2.png) [@limax](https://www.debian-fr.org/u/limax)\
**Post date:** [Février 21, 2016, 6:24 UTC](https://www.debian-fr.org/t/python3-pb-avec-librairie-serial/59340/3 "2016-02-21T18:24:03Z")

</div>

[quote=“vohu”]Quelqu’un à une idée du pb ?  
Merci d’avance :$[/quote]  
bonjour peut être lors d’un passage de python3.2 vers python3.3  
C’a m’est arrivé l’autre jour.

---

<div class="post-metadata">

**Author:** ![vohu](https://www.debian-fr.org/user_avatar/www.debian-fr.org/vohu/32/4108_2.png) [@vohu](https://www.debian-fr.org/u/vohu)\
**Post date:** [Février 21, 2016, 6:24 UTC](https://www.debian-fr.org/t/python3-pb-avec-librairie-serial/59340/4 "2016-02-21T18:24:18Z")

</div>

Oui, m’enfin, je verrais si ça change à nouveau…
