1. 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:
    93
    J'aime reçus:
    58
    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:
    3,041
    J'aime reçus:
    1,628
    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:
    93
    J'aime reçus:
    58
    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:
    3,041
    J'aime reçus:
    1,628
    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:
    93
    J'aime reçus:
    58
    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:
    3,041
    J'aime reçus:
    1,628
    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:
    93
    J'aime reçus:
    58
    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:
    93
    J'aime reçus:
    58
    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:
    93
    J'aime reçus:
    58
    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:
    670
    J'aime reçus:
    234
    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
     
  11. ctk67

    ctk67 New Member

    Inscrit:
    Mai 9, 2025
    Messages:
    2
    J'aime reçus:
    0
    Bonjour,
    avez-vous trouver une solution pour utiliser l'api wgssSTU64.dll avec WIndev28 ?
    Pour ma part, je dois implémenter la capture d'une signature via une Wacom STU540, mais j'ai beau essayé dans tous les sens avec l'API du SDK et en partant du code de

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

    , je n'arrives à rien de concret. J'ai toujours une erreur code 7.

    Toutes aides sera la bienvenue.

    Merci d'avance

    //--------------------------------------------------------------------------------------------------
    CONSTANTE
    WacomGSS_WIN32 = 1
    FIN

    tagWacomGSS_Return est un tableau de chaînes = ["WacomGSS_Return_Success",
    "WacomGSS_Return_Unspecified",
    "WacomGSS_Return_InvalidHandle",
    "WacomGSS_Return_InvalidParameter",
    "WacomGSS_Return_InvalidParameterNullPointer",
    "WacomGSS_Return_Unsupported",
    "WacomGSS_Return_Error",
    "WacomGSS_Return_ErrorSizeof",
    "WacomGSS_Return_Exception_Unknown",
    "WacomGSS_Return_Exception_std",
    "WacomGSS_Return_Exception_system_error",
    "WacomGSS_Return_Exception_not_connected",
    "WacomGSS_Return_Exception_device_removed",
    "WacomGSS_Return_Exception_write_not_supported",
    "WacomGSS_Return_Exception_io",
    "WacomGSS_Return_Exception_timeout",
    "WacomGSS_Return_Exception_set",
    "WacomGSS_Return_Exception_ReportHandler",
    "WacomGSS_Return_Exception_EncryptionHandler" ]



    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

    hInst_DllWacom est un entier système
    gsDllWacom est une chaîne = "wgssSTU64.dll"

    hInst_DllWacom = ChargeDLL(gsDllWacom)
    SI hInst_DllWacom = 0 ALORS
    Erreur(ErreurInfo())
    SINON
    trace("DLL chargée")
    FIN

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

    nResult = AppelDLL32(gsDllWacom,"WacomGSS_getUsbDevices", nSizeOfUsbDevice, &nCount, &tabUsbDevice)
    SI nResult = 0 ALORS
    SI nCount ALORS
    IndTab est un entier
    POUR IndTab = 0 À nCount
    SI WacomGSS_WIN32 ALORS
    Info( tabUsbDevice[IndTab].stUsbDevice.nIdVendor,
    tabUsbDevice[IndTab].stUsbDevice.nIdProduct,
    tabUsbDevice[IndTab].stUsbDevice.nBcdDevice,
    tabUsbDevice[IndTab].sUSBDeviceFileName,
    tabUsbDevice[IndTab].sUSBDeviceBulkFileName);
    FIN
    FIN
    SINON
    Erreur("no usb devices found !");
    FIN
    SINON
    Erreur("WacomGSS_getUsbDevices() Erreur : " + nResult, tagWacomGSS_Return[nResult]);
    FIN
     
  12. SavageBeast

    SavageBeast Member

    Inscrit:
    Juin 14, 2018
    Messages:
    93
    J'aime reçus:
    58

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

    Bonjour,
    avez-vous trouver une solution pour utiliser l'api wgssSTU64.dll avec WIndev28 ?
    Pour ma part, je dois implémenter la capture d'une signature via une Wacom STU540, mais j'ai beau essayé dans tous les sens avec l'API du SDK et en partant du code de

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

    , je n'arrives à rien de concret. J'ai toujours une erreur code 7.

    Toutes aides sera la bienvenue.

    Merci d'avance
    Cliquez pour agrandir...
    Salut, une solution existe :
    Composant EZSignature pour tablettes WACOM STU
    Publié par Michel GARCIA
    dans la catégorie Outils
    Nouveautés
    Update 8 - Janvier 2025) Nouvelle version inclûant dans l'exemple le code nécessaire à l'intégration du Driver et SDK à installer sur les postes cibles. Version disponible à partir de WD 23 à WD 2025. Tests effectués avec STU-430, STU-530, STU-540 sur W7, W8.1, W10, et W11 janvier 2025 (Version 24H2)

    Description
    Ce composant et son exemple permettent de numériser une signature depuis les tablettes WACOM de type STU-300 / 4X0 / 5X0, de la lier à un document, et de pouvoir vérifier son authenticité par rapport à ce dernier. Les signatures sont cryptées afin de garantir une sécurité maximum et pouvoir garantir leur validité. Les boutons peuvent être positionnés à gauche, à droite, au centre de la tablette de signature, et une image de fond peut aussi être affichée.

    Le produit en mode démo avec l'exemple et son code source sont disponible sur simple demande à : info ARROBASE iim.ch
    La version espagnole est intégrée dans le composant et dans le source de l'exemple.

    Le prix de du composant est de 650€ par projet. La mise à niveau d'une ancienne version est de 100€

    Pour me contacter : info ARROBASE iim.ch
     
  • ctk67

    ctk67 New Member

    Inscrit:
    Mai 9, 2025
    Messages:
    2
    J'aime reçus:
    0
    Salut,
    le problème est le prix du composant. Mon client ne sera certainement pas partant pour ce nouvel investissement.
    Si je ne trouves pas rapidement la solution pour récupérer une simple signature avec la Wacom STU540, on va certainement ce diriger vers une autre marque comme par exemple "Signotec Sigma" dont un exemple fonctionnel existe pour windev.

    En attendant toutes aides de la communauté sera la bienvenue.
    Merci d'avance.
     
  • Partager cette page

    Chargement...