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 :

exploiter des fichier .c et .h


Sujet :

Python

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 55
    Par défaut exploiter des fichier .c et .h
    Bonjour à tous,

    J'aimerai avoir un peu d'aide sur l'utilisation du C dans du code python.
    Je sais que je peux utiliser "ctypes" et je voudrai exploiter ce protocole :

    https://github.com/libin89/open-hart

    D'après ce que j'en sais il faut que je compile tous ces .c et .h mais comment ? Ou peut-être un tout autre moyen ?
    Je suis sous windows 10

    Merci d'avance
    Prenez soin de vous

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Salut,

    Citation Envoyé par Patrick PETIT Voir le message
    D'après ce que j'en sais il faut que je compile tous ces .c et .h mais comment ? Ou peut-être un tout autre moyen ?
    Si vous ne savez pas par où commencer, c'est que vous n'avez aucune idée des connaissances à maîtriser avant se lancer dans un tel projet.

    Si le protocole hart est "populaire", un peu de recherche sur Internet devrait vous trouver des bibliothèques permettant de l'utiliser depuis Python (comme par exemple ici).

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

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 55
    Par défaut
    Merci wiztricks mais cette bibliothèque n'exploite pas ce que je veux.
    Je connais le protocole HART mais plutôt que de tout re-développer je voulais utiliser la bibliothèque au format DLL.
    En même titre que modbus, je connais le protocole mais j'utilise minimalmodbus (une boite noire en quelques sorte)

    Merci quand même.

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 715
    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 715
    Par défaut
    Citation Envoyé par Patrick PETIT Voir le message
    Je connais le protocole HART mais plutôt que de tout re-développer je voulais utiliser la bibliothèque au format DLL.
    Compiler un programme C pour en faire une DLL voilà une question à poser dans le forum C.

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

  5. #5
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Pour utiliser le C ou C++ avec Python, je préfère pour ma part l'intégrer dans un module que Python sait importer.

    On dispose alors de 2 possibilités:

    - utiliser cython pour intégrer le code C / C++

    - créer directement un module Python avec le code C / C++

    Un gros chapitre de la doc Python est réservé à ça:
    => https://docs.python.org/3/extending/index.html

    J'ai essayé tout ça sur des cas très simples avec Python 2.7 il y a plusieurs années, et ça marchait très bien:
    => Appel du code C / C++ grâce à cython: http://python.jpvweb.com/mesrecettes...ple_cython_cpp
    => Création directe d'un module écrit en C / C++: http://python.jpvweb.com/mesrecettes...ple_python_cpp

    Si on cherche la rapidité, il faut tout de même faire attention à un point: si le code est un pur C / C++, c'est ok. Mais si ce code doit faire des appels fréquents à l'API Python pour gérer des objets spécifiques Python (dictionnaires par exemple), l'avantage chute beaucoup.

    Enfin, il faut que le code respecte le fonctionnement de Python: libération de la mémoire réservée, comptage de référence des variables Python, etc...

    Sous Windows, on peut utiliser le compilateur Microsoft (Visual Studio), ou MinGW. Pour le compilateur Microsoft, je suppose qu'il vaut mieux utiliser le même que celui utilisé pour compiler la version de Python utilisée:
    https://wiki.python.org/moin/WindowsCompilers


    Cependant, il faut bien reconnaître que l'utilisation de cython pour compiler en C ou C++ un code en pur Python donne de bons résultats, sans qu'on ait besoin d'éditer du C / C++! Il suffit alors d'ajouter au code Python les infos nécessaires pour le compilateur C / C++, c'est à dire les déclarations des variables:
    => https://cython.org/

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur en systèmes embarqués
    Inscrit en
    Octobre 2002
    Messages
    55
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur en systèmes embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Octobre 2002
    Messages : 55
    Par défaut
    Bonjour,

    Merci beaucoup pour ces explications, j'ai de quoi lire ...
    Je vais investiguer dans ce sens.

    Bonne soirée

Discussions similaires

  1. Réponses: 0
    Dernier message: 08/05/2017, 19h21
  2. [Batch] Comment exploiter un fichier texte pour extraire des infos ?
    Par hackoofr dans le forum Scripts/Batch
    Réponses: 1
    Dernier message: 09/07/2015, 08h36
  3. API pour exploiter les informations des fichiers MANIFEST.MF ?
    Par darkmath dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 15/08/2008, 13h53
  4. Réponses: 3
    Dernier message: 31/03/2007, 10h18
  5. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37

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