1. Ce site utilise des cookies. En continuant à utiliser ce site, vous acceptez l'utilisation des cookies. En savoir plus.
  2. Bonjour tout le monde ! Veillez consulter la Politique de forum pour comprendre nos règles, Merci a vous !
    Rejeter la notice

AIDE [Résolu] SDK / traduction à windev 19

Discussion dans 'Résolution problème & conseils' créé par SavageBeast, Juil 2, 2018.

  1. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    52
    J'aime reçus:
    28
    Salut à tous ! J'ai déjà adapté des SDKs de divers hardwares pour WD / WD Mobile, mais là, je suis coincé, impossible de progresser et j'aurai besoin d'aide. Il vient avec plusieurs exemples en C, C++, etc, mais les informations sont contradictoires et le résultat "cacastrophique".

    Pour l'instant, j'ai juste besoin de communiquer avec la DLL et récupérer les détails sur le hardware connecté. Je suppose que si j'arrive à faire fonctionner cela, je pourrais me débrouiller avec le reste.

    En C :

    struct tagWacomGSS_UsbDeviceBase_v1
    {
    uint16_t idVendor;
    uint16_t idProduct;
    uint16_t bcdDevice;
    };

    #if defined(WacomGSS_WIN32)
    struct tagWacomGSS_UsbDevice_v1
    {
    struct tagWacomGSS_UsbDeviceBase_v1 usbDevice;
    // pad[2]
    char * fileName;
    char * bulkFileName;
    };
    struct tagWacomGSS_UsbDevice_v1_wc
    {
    struct tagWacomGSS_UsbDeviceBase_v1 usbDevice;
    // pad[2]
    wchar_t * fileName;
    wchar_t * bulkFileName;
    };
    typedef struct tagWacomGSS_UsbDevice_v1 WacomGSS_UsbDevice;
    typedef struct tagWacomGSS_UsbDevice_v1_wc WacomGSS_UsbDevice_wc;

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    En WD :
    ST_UsbDeviceBase_v1 est une Structure
    nIdVendor est un entier sans signe sur 2 octets
    nIdProduct est un entier sans signe sur 2 octets
    nBcdDevice est un entier sans signe sur 2 octets
    FIN

    ST_UsbDevice_v1 est une Structure
    stUsbDevice est une ST_UsbDeviceBase_v1
    nPad est un entier sur 2 octets
    sUSBDeviceFileName est une chaîne
    sUSBDeviceBulkFileName est une chaîne
    FIN

    ST_UsbDevice_v1_wc est une Structure
    stUsbDevice est une ST_UsbDeviceBase_v1
    nPad est un entier sur 2 octets
    sFileName est une chaîne UNICODE
    nBulkFileName est une chaîne UNICODE
    FIN

    tabUsbDevice est un tableau dynamique de 0 ST_UsbDevice_v1
    tabUsbDevice_wc est un tableau dynamique de 0 ST_UsbDevice_v1_wc


    Si quelqu'un peut valider ma transcription en WD ce serait parfait. Et l'autre problème est lié à l'appel de la DLL :

    En C:

    Function(WacomGSS_All, int, getUsbDevices, (size_t sizeofUsbDevice, size_t * count, WacomGSS_UsbDevice * * ret) )
    Function(WacomGSS_W32, int, getUsbDevices_wc, (size_t sizeofUsbDevice, size_t * count, WacomGSS_UsbDevice_wc * * ret) )

    En WD :

    nResult est un entier
    nSizeOfUsbDevice est un entier système
    nCount est un entier système

    nResult = AppelDLL32(gsDllNameToCall,"WacomGSS_getUsbDevices",nSizeOfUsbDevice,&nCount,&tabUsbDevice)

    Je reçois le retour nResult, mais j'ai toujours une erreur soit "Invalid Parameter Null Pointer", soit "Invalid Parameter".

    A priori, la DLL se charge normalement :

    hInst est un entier
    gsDllNameToCall est une chaîne = "wgssSTU.dll"

    hInst = ChargeDLL(gsDllNameToCall)
    SI hInst = 0 ALORS
    Erreur(ErreurInfo())
    SINON
    Info("DLL chargée")
    FIN

    Merci pour votre aide, car je suis totalement coincé.
    A+, SB
     
    Tags:
  2. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    essai de contacté Karine sur

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    elle a réussit a le faire
     
  3. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    52
    J'aime reçus:
    28
    Salut Popoy, j'ai déjà tenté de ce côté, et pour l'instant c'est le désert total. Le SDK est bien pourri, sans compter que je n'ai jamais travailler avec des assemblages .NET. Je préfère accéder via les API low-level, comme je l'ai fait avec les autres SDKs, mais avec celui-ci, c'est la galère.

    Je n'arrive même pas à récupérer la liste des tablettes connectées !

    A+, SB
     
  4. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    A priori ça existe en low level

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    la ou les tablettes ont quoi comme référence.
    je suppose que tu as vu cette page

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!


    sinon le Delphi est selon certains assez proche du wlangage

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!



    As tu essayer la version HTML/Javascript

    Bonjour visiteur, Merci de vous Inscrire ou de vous connectez pour voir les liens!

     
  5. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    52
    J'aime reçus:
    28
    Popoy, j'ai le SDK Low Level, MAIS, je cite WACOM :
    "The C interface has not yet been documented. However the API calls are very consistent across all languages and we recommend using the C++ interface as your guide. The interface is a wrapper around the C++ classes. As such, you must create a handle, pass it to each function and remember to free it after use.

    There is no difference or advantage between calling functions directly or by using the function table - the decision is down to the developer. Note that there is no handling of images in the C interface"

    Il se trouve que les API Low Level sont AUSSI osbcures que leurs tablettes. Je veux éviter de passer par du .NET et l'exemple DELPHI fait apparemment appel à des COM pour les appels.

    Mais personne n'a répondu à ma demande... Mon code est-il correct, ou bien je manque quelquechose ?

    Merci
     
  6. popoy

    popoy Well-Known Member
    MEMBRE WX

    Inscrit:
    Fev 23, 2018
    Messages:
    2,879
    J'aime reçus:
    1,531
    pour répondre a ta question a part
    ST_UsbDevice_v1 que tu as mis 2 fois je n'ai rien vu de spécial mais je ne suis pas un spécialiste du c.
    pour moi peut importe la façon de faire, le plus important est de trouver une solution.
    essai appeldll32 regarde l'exemple WD PC Infos
    qui peut te donner des fonctions pour trouver le port USB utilisé pour la tablette.
     
  7. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    52
    J'aime reçus:
    28
    Il s'agit de l'utilisation d'une structure à l'intérieur d'une structure, donc oui, c'est normalement possible d'utiliser le même nom dans une description différente.
     
  8. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    52
    J'aime reçus:
    28
    Salut à tous ! J'ai pu obtenir un autre SDK qui je l'espère sera moins buggé. Je vous tiendrai au courant.
     
  9. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    52
    J'aime reçus:
    28
    Salut à tous ! Problème résôlu... A priori il y aurait des bugs dans WD, et j'ai remonté le tout au ST. Les développeurs vont regarder de plus près. En attendant, avec 2 workaround, cela fonctionne. Je pense qu'un exemple et son composant seront disponibles d'ici 2 semaines environ.
     
    suenodesign, WX1331 et joker aiment ça.
  10. LAPIPE2018

    LAPIPE2018 Active Member
    MEMBRE WX

    Inscrit:
    Fev 17, 2018
    Messages:
    647
    J'aime reçus:
    227
    Personnellement, quand j'ai un Code en C ou C# qui marche, je refais mon propre .net ou ma dll que je maitrise. Sinon, J'utilise WDAPI pour voir
     

Partager cette page

Chargement...