Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1022 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  interface swig

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

interface swig

n°1809882
masterdPm
Trust me, I'm an engineer !
Posté le 08-11-2008 à 17:36:24  profilanswer
 

Salutation,
 
Je travaille en ce moment à la réalisation d'une suite avionique pour mon simulateur de vol. Ayant travaillé en Python et ayant apprécié ce langage, je me suis décidé à réutiliser celui-ci. (j'avoue que la perspective de réutiliser certains passage de mon code n'y sont pas non plus pour rien).
 
Or, pour interfacer Flight Sim avec mon code, il faut passer par un module. Les SDK de ce module n'incluent pas de Python comme sources, mais incluent du C.
 
SWIG permet d'interface du C avec du Python, mais voilà un long moment (environ 3 mois que j'essaie de trouver) que je cherche à le faire marcher. Je dois avouer en être bien incapable.
 
J'ai regardé le tutoriel sur le site de SWIG, et la documentation, mais ça ne m'aide pas, sans doute parce que je ne comprends pas tout ce qu'il s'y raconte.
 
Ma question est: y aurait-il quelqu'un qui serait prêt à m'aider, c'est à dire à me fabriquer cette interface, sachant que j'ai déjà le .i, un .c et un .h et que ce que je n'arrive pas à faire, c'est mixer le tout pour avoir un module python à inclure dans mon projet. Ou au moins, m'expliquer clairement comment faire..  :??:  
 
 
Merci pour vos réponses

mood
Publicité
Posté le 08-11-2008 à 17:36:24  profilanswer
 

n°1813120
mr simon
Posté le 17-11-2008 à 18:28:40  profilanswer
 

Voici un bon tutoriel pour commencer avec swig:
http://www.geocities.com/foetsch/p [...] python.htm
http://www.geocities.com/foetsch/python/swig_linux.htm
 
Tu arrives à faire un module simple ?

n°1813122
masterdPm
Trust me, I'm an engineer !
Posté le 17-11-2008 à 18:42:53  profilanswer
 

Merci, je vais tester ça, je te dirais après :)

n°1826227
masterdPm
Trust me, I'm an engineer !
Posté le 12-12-2008 à 16:45:15  profilanswer
 

hello
 
me revoilà.
 
alors, j'ai testé le tutoriel du premier lien. Ca tombait vachement bien parce que j'ai VC++ 6.0 aussi donc j'étais pas (trop) perdu.
 
j'ai réussi une première fois à faire tourner la compilation, il m'a sorti un fichier .pyd comme il faut.
 
sauf qu'il n'a pas créé de fichier *_warp.cpp comme il aurait du. (ni de fichier *.py)
 
 
 
j'avais donc laissé un peu ça de côté, ayant d'autres choses à faire aussi, et je viens de me repencher sur le problème.
 
Maintenant, il ne compile plus et me dit:
 

Citation :

Performing Custom Build Step on .\fs.i
.\fs.i(14): Error: Syntax error in input(1).
Error executing c:\windows\system32\cmd.exe.
 
_fsinterface.pyd - 1 error(s), 0 warning(s)


 
 
 
La ligne 14 en question correspond à la ligne 3 dans l'extrait suivant:

Code :
  1. %module fsinterface
  2. {%


(ce qu'il y a avant n'est que du commentaire)
 
 
une idée de ce qui pourrait se passer?
 
 
peut-être que je ne fais pas le fichier *.i correctement.. Voici son code, à tout hasard:
 

Code :
  1. %module fsinterface
  2. {%
  3. //includes
  4. #include <windows.h>
  5. #include <stdlib.h>
  6. #include <stdio.h>
  7. #include <string.h>
  8. #include <FSUIPC/FSUIPC_User.h>
  9. /********************GET***********************/
  10. double GetDouble(int);
  11. Sint32 GetSint32(int);
  12. Sint16 GetSint16(int);
  13. Sint8 GetSint8(int);
  14. Uint32 GetUint32(int);
  15. Uint16 GetUint16(int);
  16. Uint8 GetUint8(int);
  17. char GetChar(int);
  18. /*string256 GetString256(int);
  19. string64 GetString64(int);
  20. string8 GetString8(int);
  21. string6 GetString6(int);
  22. string25 GetString25(int);
  23. */
  24. /********************SET***********************/
  25. int SetDouble(int , double)
  26. int SetSint32(int, Sint32)
  27. int SetSint16(int, Sint16)
  28. int SetSint8(int, Sint8)
  29. int SetUint32(int, Uint32)
  30. int SetUint16(int, Uint16)
  31. int SetUint8(int, Uint8)
  32. %}
  33. #include <windows.h>
  34. #include <stdlib.h>
  35. #include <stdio.h>
  36. #include <string.h>
  37. #include <FSUIPC/FSUIPC_User.h>
  38. /********************GET***********************/
  39. double GetDouble(int);
  40. Sint32 GetSint32(int);
  41. Sint16 GetSint16(int);
  42. Sint8 GetSint8(int);
  43. Uint32 GetUint32(int);
  44. Uint16 GetUint16(int);
  45. Uint8 GetUint8(int);
  46. char GetChar(int);
  47. /*string256 GetString256(int);
  48. string64 GetString64(int);
  49. string8 GetString8(int);
  50. string6 GetString6(int);
  51. string25 GetString25(int);
  52. */
  53. /********************SET***********************/
  54. int SetDouble(int , double)
  55. int SetSint32(int, Sint32)
  56. int SetSint16(int, Sint16)
  57. int SetSint8(int, Sint8)
  58. int SetUint32(int, Uint32)
  59. int SetUint16(int, Uint16)
  60. int SetUint8(int, Uint8)

n°1826295
mr simon
Posté le 12-12-2008 à 19:55:48  profilanswer
 

masterdPm a écrit :

hello
 
j'ai réussi une première fois à faire tourner la compilation, il m'a sorti un fichier .pyd comme il faut.
 
sauf qu'il n'a pas créé de fichier *_warp.cpp comme il aurait du. (ni de fichier *.py)


 
Le _warp.cpp, c'est à toi de le créer, via la commande  

Citation :

swig -c++ -python -o your_extension_wrap.cpp your_extension.i


 
Concernant l'autre problème, je ne vois pas, mais essaie peut être de faire un truc tout simple (un peu comme le tutoriel) pour faire marcher le truc. Puis tu t'attaques à ton vrai problème.
 
++

n°1826297
mr simon
Posté le 12-12-2008 à 19:57:45  profilanswer
 

J'avais lu trop vite. La syntaxe du .i est

Code :
  1. %{
  2.     #include "some_class.h"
  3.     %}


 
et non pas

Code :
  1. {%
  2. ...
  3. %}

n°1826335
masterdPm
Trust me, I'm an engineer !
Posté le 12-12-2008 à 23:46:30  profilanswer
 

ah ouais! J'avais pas vu tiens...
 
et il manquait aussi pas mal de ";"... ça m'apprendra à refaire du C sans faire gaffe (après 3 mois de python, c'est dur de penser à ces points-virgules)
 
Je retente et je te dis :)
 
Merci pour ton aide en tous cas


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  interface swig

 

Sujets relatifs
Nouvelle interface serveur FTP ?générateur d'interface graphique
Problème d'insertion dans une table via une interface Visual C++[CMS] Interface d'administration en public ?
Interface graphique sous excel ou borland ?page html sous interface mail yahoo.fr
Cherche aide pour interface graphique contre...une partie de l'interface s'imprime temporairement dans une autre
interface graphique avec Eclipse, SWT ou SWING?Interface web de remonté de log
Plus de sujets relatifs à : interface swig


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR