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

Interfaçage autre langage Python Discussion :

[SWIG] Python - Failure in array_class


Sujet :

Interfaçage autre langage Python

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut [SWIG] Python - Failure in array_class
    Bonjour,

    J'utilise array_class (dispo avec SWIG carray.i) avec succès pour déclarer un buffer ds Python et le remplir ds la dll C. Ensuite je suis capable de lire les valeurs de ce buffer ds mon code Python.
    Faisant évoluer mon code, je rencontre un pb depuis qq jours. Quand je déclare un nouveau objet array_class ds Python (pReadingBufferLong = CommIP.longArray(iReadingBufferSize) ) Python plante et affiche la fenetre windows de plantage "Python exe encounter a pb and need to close..." .

    J'ai 2 arrays globaux (2000 bytes et 20 bytes)
    Ensuite j'utilise 2 arrays locaux pr récupérer les valeurs écrites par un autre PC via ma dll Cl. Python plante qd je déclare mon 2ème arrays local

    Ci-dessous mon code et ma configuration.

    Votre retour m'intéresse si qq'un rencontre le même pb ou utilise avec succès array_class et remarque une erreur ds mon code

    Merci
    Manu_13

    in CommIP.i:
    %include "carrays.i" // array_function not used
    %array_class(S8, byteArray);
    %array_class(S16, shortArray);
    %array_class(S32, longArray);
    %array_class(S64, longlongArray);

    in ***.py :

    def GetBufferPositionMsg(iIndex, PositionMsg, bUDP = False):

    global COMIPbck_SizeBufferUDP
    global COMIPbck_SizeBufferTCP
    global COMIPbck_PosMessage
    iBufferSize = COMIPbck_SizeBufferTCP

    #1- Get element size
    iElemSizeLong = ctypes.sizeof(ctypes.c_long)

    #2- convert pReadingBuffer in a raw data buffer (char*)
    pReadingBufferLong0 = CommIP.byteArray(iBufferSize)
    pRawDataBufferLong = CommIP.cdata(pReadingBufferLong0, iBufferSize)

    #3- Get raw data (from COMMIP dll)
    iDataSizeInByte = CommIP.commIP_getBufferDataTCP(pRawDataBufferLong, iIndex, 0)

    #4- copy data in appropriate buffer
    iReadingBufferSize = iDataSizeInByte/iElemSizeLong
    pReadingBufferLong = CommIP.longArray(iReadingBufferSize)
    CommIP.memmove(pReadingBufferLong, pRawDataBufferLong)

    #5- read value
    PositionMsg.iLenght = pReadingBufferLong[0]
    PositionMsg.lIndex = pReadingBufferLong[1]


    return 1
    #end GetBufferPositionMsg

    Configuration :

    Python 2.6
    Boaconstructor 0.6.1
    SWIG 1.3.40
    OS Windows XP SP3

  2. #2
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    #4- copy data in appropriate buffer
    iReadingBufferSize = iDataSizeInByte/iElemSizeLong
    pReadingBufferLong = CommIP.longArray(iReadingBufferSize)
    CommIP.memmove(pReadingBufferLong, pRawDataBufferLong)
    PB RESOLU,
    les buffers src et destination n'était pas de même taille ds la fonction memmove et causait des effets de bords lors de la création de tableaux

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SWIG] Python package et modules
    Par Mast3rMind dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 11/11/2011, 22h10
  2. SWIG - python : les accesseurs
    Par simastion dans le forum Interfaçage autre langage
    Réponses: 0
    Dernier message: 25/03/2010, 10h59
  3. Swig - Python/C++ problème avec STL
    Par mencaglia dans le forum Interfaçage autre langage
    Réponses: 2
    Dernier message: 26/11/2007, 19h21
  4. swig python tableau
    Par paulo2007 dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 23/04/2007, 10h18
  5. [swig] python->C->python, pointeur de fichier
    Par PyBio dans le forum Interfaçage autre langage
    Réponses: 1
    Dernier message: 10/11/2005, 16h50

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