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 :

Communication entre deux script Python


Sujet :

Python

  1. #1
    Membre régulier
    Profil pro
    Étudiant
    Inscrit en
    Janvier 2008
    Messages
    253
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2008
    Messages : 253
    Points : 84
    Points
    84
    Par défaut Communication entre deux script Python
    Bonsoir,

    je souhaiterais avoir l'avis de la communauté sur la mise en place d'une communication entre deux scripts Python.

    Il s'agit de mettre en place une solution de décodage de signaux radio numérique sous GNURadio sur plateforme Linux.
    Le premier script délivre donc une séquence de bits et le second contient le métier pour décoder les trames suivant un protocole établi.
    Les trames doivent donc circuler entre les deux au runtime et idéalement être décodée dès qu'elles sont reçues.
    Je vois plusieurs solutions :

    - Un pipe
    - Un socket
    - Un fichier tampon

    Sachant que les transmissions sont ponctuelles et non régulières dans le temps, un pipe occuperait des ressources sur le système inutilement.
    Un fichier tampon, parcouru par le décodeur de protocole régulièrement introduirait une latence dans le décodage c'est pas génial non plus.
    Et pour le socket pourquoi pas, mais je ne l'ai jamais mis en place. Est-ce que quelqu'un voit comment faire ?

    Le mieux est de transmettre mes trames sous forme de chaine de texte, c'est pratique à manipuler ensuite.

    Si vous avez un avis sur la question, je suis preneur, merci par avance.

  2. #2
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 690
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 690
    Points : 30 985
    Points
    30 985
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par fanfouer Voir le message
    Sachant que les transmissions sont ponctuelles et non régulières dans le temps, un pipe occuperait des ressources sur le système inutilement.
    Un fichier tampon, parcouru par le décodeur de protocole régulièrement introduirait une latence dans le décodage c'est pas génial non plus.
    Et pour le socket pourquoi pas, mais je ne l'ai jamais mis en place. Est-ce que quelqu'un voit comment faire ?
    Salut
    Un socket se met en place comme un pipe. Faut l'initialiser, le connecter puis écrire dedans.

    Maintenant, si t'es sous Unix, t'as un 4° outil: les IPC (Internal Process Communication)
    Les IPC sont un mécanisme de comm inter processus gérés par le noyau. Grosso-modo t'as un processus P1 qui écrit ses données. Puis P1 disparait éventuellement mais les données sont conservées dans une espèce de container. Ensuite P2, qui a la clef du container, peut venir les récupérer s'il le désire.
    Les IPC se subdivisent en 3
    • les files de messages => imagine des messages sur un fil, comme du linge en train de sécher. Chaque fois qu'un processus récupère le message (le premier du fil), il disparait du fil. En plus tu peux affecter aux messages un n° de filtre ce qui permet à un processus Px de ne récupérer que les messages n° X.
    • la mémoire partagée => une grosse map dans laquelle n'importe qui peut écrire où il veut et lire ce qu'il veut
    • les sémaphores => un outil de verrouillage permettant de protéger une ressource unique des accès concurrents (généralement on protège la mémoire partagée par un sémaphore justement pour éviter que 2 processus écrivent au même endroit)


    Donc à mon avis, les files de messages sont les plus indiquées. P1 écrit tant qu'il a envie et P2 récupère quand il a besoin. Et ce que P2 récupère disparait de la file. En fait, c'est comme un pipe sauf qu'il n'est pas nécessaire qu'il y ait synchronisation...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

Discussions similaires

  1. Communication entre deux scripts python?
    Par kevung dans le forum Réseau/Web
    Réponses: 1
    Dernier message: 09/04/2010, 20h32
  2. pipe entre deux scripts python
    Par julien.63 dans le forum Général Python
    Réponses: 3
    Dernier message: 25/11/2009, 09h24
  3. communication entre deux executables
    Par semenzato dans le forum MFC
    Réponses: 8
    Dernier message: 13/04/2005, 22h19
  4. Communication entre deux Threads
    Par rvzip64 dans le forum Langage
    Réponses: 13
    Dernier message: 28/01/2005, 09h14
  5. Réponses: 5
    Dernier message: 25/03/2003, 19h43

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