IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

datalogger en pyhton


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 219
    Par défaut datalogger en pyhton
    Bonjour.

    Je souhaiterai collecter (logger) des données venant de différents capteurs pour les enregistrer au format CSV:
    • Certains envoient une données périodiquement par un port RS232/USB que je peux lire grâce à la bibliothèque pyserial
    • Pour d'autre, je dois initier une lecture puis le capteur renvoie la valeur (pesée de balance toujours par port RS232/USB)


    Tout cela doit être horodaté (1 à 2 série de mesure par minute est amplement suffisant pour ce que je souhaite monitorer, à terme peut être une série de mesure toutes le 5 à 10 secondes)

    J'ai fouiné sur le web mais j'ai du mal à trouver ce que je veux.
    Mes recherches me renvoient souvent vers la bibliothèque "logging" !
    Ou bien des tuto qui me semblent "simplistes". Or il me faut mettre en place des fonctions non bloquantes qui s'exécutent périodiquement avec peut être des périodes non identiques pour toutes les fonctions. Et ... je ne sais comment m'y prendre !
    Je pensais que la fonction sleep() pouvait me servir, mais en fait, elle bloque tout le programme !

    J'ai vu l'utilisation de "threading", mais tout cela n'est pas clair pour moi et surtout, je ne sais pas si c'est la bonne direction pour mon besoin.

    Quelqu'un aurait il une direction pour m'orienter ou quelques conseils ?

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Salut,

    Citation Envoyé par hary66 Voir le message
    Or il me faut mettre en place des fonctions non bloquantes qui s'exécutent périodiquement avec peut être des périodes non identiques pour toutes les fonctions. Et ... je ne sais comment m'y prendre !
    Je pensais que la fonction sleep() pouvait me servir, mais en fait, elle bloque tout le programme !
    Il faut déjà écrire des fonctions qui vont récupérer les données de chaque équipement avec la périodicité désirée (des time.sleep).
    Cela fait, lancer les fonctions via des threads pour qu'elles fonctionnent indépendamment les unes des autres.
    Une difficulté sera d'écrire les lignes dans le fichier CSV sans se marcher dessus avec un verrou quelconque.

    Dans un mouture asynchrone, vous pouvez essayer avec asyncio. Ce sera plus performant qu'avec des threads mais il y a plus d'abstractions à ingurgiter pour y arriver.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre confirmé
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Juin 2014
    Messages
    219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable de compte

    Informations forums :
    Inscription : Juin 2014
    Messages : 219
    Par défaut
    Il faudrait donc que j'utilise des time.sleep(), mais dans des threading, ce qui ne bloquerait pas le reste de mon programme ?

    Sinon, pourriez vous détaillez ou expliquer la difficulté que vous voyez concernant l'écriture des lignes dans le fichier ? Quel risque de se "marcher dessus" y a t-il ? Quel verrous peut il y avoir ?

    J'ai entrevu des solution aussi qui parlaient de asyncio en effet.

    Je vais déja fouiner un peu plus dans ces 2 directions

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par hary66 Voir le message
    Quel risque de se "marcher dessus" y a t-il ? Quel verrous peut il y avoir ?
    Dans la documentation Python, vous avez un chapitre sur le module threading qui contient un sous-chapitre sur les verrous.

    Typiquement, si l'écriture d'une ligne dans le CSV est suspendue pour exécuter un autre thread... elle pourra écrire sa ligne "au milieu".... ce que vous ne voudrez peut être pas.


    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. communiquer avec datalogger via rs232
    Par hzizou dans le forum VB.NET
    Réponses: 8
    Dernier message: 16/04/2010, 03h13
  2. connecter gtk a pyhton sous windows
    Par sakura.sou dans le forum GTK+ avec Python
    Réponses: 3
    Dernier message: 20/08/2009, 13h07
  3. héritage de classe, pyhton Numeric
    Par Seomaz dans le forum Calcul scientifique
    Réponses: 7
    Dernier message: 02/05/2008, 22h19
  4. [OpenOffice] utilisation de pyhton
    Par jazziestan dans le forum OpenOffice & LibreOffice
    Réponses: 1
    Dernier message: 14/04/2008, 17h23
  5. Eclox avec Pyhton
    Par Devil Shark dans le forum Eclipse Platform
    Réponses: 2
    Dernier message: 30/08/2007, 22h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo