PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → [WD17] Utilisation d'une classe .NET du SDK Motorola
[WD17] Utilisation d'une classe .NET du SDK Motorola
Débuté par GUILLAUME H, 27 jan. 2012 19:15 - 6 réponses
Membre enregistré
21 messages
Popularité : +1 (1 vote)
Posté le 27 janvier 2012 - 19:15
Bonjour,
Je souhaite implémenter le SDK de Motorola Scanner dans windev.

http://www.motorola.com/Business/XU-EN/Business+Product+and+Services/Software+and+Applications/Mobility+Software/Scanner+Drivers+and+Software+Utilities/Scanner+SDK+for+Windows_XU-EN

Video exemple en C # :


J’arrive à importer la dll Interop.CoreScanner en tant que Assemblage .NET, toutes les classes et procédures sont reconnues, mais j’ai une erreur de syntaxe avec la fonction open.

gclScanner est un CCoreScannerClass


// Open
//
// Paramètres :
//appHandle : entier
//sfTypes : Array
//lengthOfTypes : entier sur 2 octets
//status : entier

//Open (LOCAL appHandle est un(e) entier, LOCAL sfTypes est un(e) Array, LOCAL //lengthOfTypes est un(e) entier sur 2 octets, status est un(e) entier)


LOCAL

tabScannerTypes est un tableau de 1 entier
tabScannerTypes[1]=1
nNumeroDuTypeDeScanner est un entier sur 2 octets =1
Status est un entier



gclScanner.Open(0,tabScannerTypes,nNumeroDuTypeDeScanner,Status)


Quelqu’un peut-il m’aider, merci.
Posté le 20 août 2012 - 19:09
Bonjour,

j'ai le même besoin. Avez-vous réussi finalement à utiliser la classe .NET ?
Comment avez-vous réussi à importer la DLL en tant que assemblage .NET ?

Cordialement



GUILLAUME H a écrit dans le message de news <1cf36c967de55203cdb3b628a5d2a018@news.pcsoft> :
Bonjour,
Je souhaite implémenter le SDK de Motorola Scanner dans windev.

http://www.motorola.com/Business/XU-EN/Business+Product+and+Services/Software+and+Applications/Mobility+Software/Scanner+Drivers+and+Software+Utilities/Scanner+SDK+for+Windows_XU-EN

Video exemple en C # :


J’arrive à importer la dll Interop.CoreScanner en tant que Assemblage .NET, toutes les classes et procédures sont reconnues, mais j’ai une erreur de syntaxe avec la fonction open.

gclScanner est un CCoreScannerClass


// Open
//
// Paramètres :
//appHandle : entier
//sfTypes : Array
//lengthOfTypes : entier sur 2 octets
//status : entier

//Open (LOCAL appHandle est un(e) entier, LOCAL sfTypes est un(e) Array, LOCAL //lengthOfTypes est un(e) entier sur 2 octets, status est un(e) entier)


LOCAL

tabScannerTypes est un tableau de 1 entier
tabScannerTypes[1]=1
nNumeroDuTypeDeScanner est un entier sur 2 octets =1
Status est un entier



gclScanner.Open(0,tabScannerTypes,nNumeroDuTypeDeScanner,Status)


Quelqu’un peut-il m’aider, merci.
Posté le 23 août 2012 - 14:43
Bonjour,

Je n'ai pas réussi a utilisé l'assemblage .net dans windev il me dit
aucune syntaxe de Open ne correspond.

En revanche en automation cela fonctionne voici le code :

remarques :
- la douchette doit être en mode IBM hand-held USB ou bien USB OPOS hand-Held. Lorsqu'elle est paramétré en HID keyboard Emulation cela ne fonctionne pas.
-Il faut installer le SDK cf lien précédent
-Pour les postes client il existe une installation silencieuse x86 x64 cf lien SDK
-j'ai testé sur un poste windows 7 64 bits virtualisé sur un MAC est cela fonctionne très bien contrairement à l'émulation de port COM.

Déclaration de la procédure de collection

//AutomationParamètre(apIndiceBaseTableau, 0)
//AutomationParamètre(apTableauParValeur,Vrai)

gautScanner est un objet automation "CoreScanner.CoreScanner.1"

CONSTANTE
//PNP events
SUBSCRIBE_BARCODE = 1
SUBSCRIBE_IMAGE = 2
SUBSCRIBE_VIDEO = 4
SUBSCRIBE_RMD = 8
SUBSCRIBE_PNP = 16
SUBSCRIBE_OTHER = 32


//Commands
GET_VERSION = 1000
REGISTER_FOR_EVENTS = 1001
UNREGISTER_FOR_EVENTS = 1002
CLAIM_DEVICE = 1500
RELEASE_DEVICE = 1501
ABORT_MACROPDF = 2000
ABORT_UPDATE_FIRMWARE = 2001
DEVICE_AIM_OFF = 2002
DEVICE_AIM_ON = 2003
FLUSH_MACROPDF = 2005
GET_ALL_PARAMETERS = 2006
GET_PARAMETERS = 2007
DEVICE_GET_SCANNER_CAPABILITIES = 2008
DEVICE_LED_OFF = 2009
DEVICE_LED_ON = 2010
DEVICE_PULL_TRIGGER = 2011
DEVICE_RELEASE_TRIGGER = 2012
DEVICE_SCAN_DISABLE = 2013
DEVICE_SCAN_ENABLE = 2014
SET_PARAMETER_DEFAULTS = 2015
DEVICE_SET_PARAMETERS = 2016
SET_PARAMETER_PERSISTANCE = 2017
DEVICE_BEEP_CONTROL = 2018
REBOOT_SCANNER = 2019
DEVICE_CAPTURE_IMAGE = 3000
ABORT_IMAGE_XFER = 3001
DEVICE_CAPTURE_VIDEO = 4000
RSM_ATTR_GETALL = 5000
RSM_ATTR_GET = 5001
RSM_ATTR_GETNEXT = 5002
RSM_ATTR_SET = 5004
RSM_ATTR_STORE = 5005
GET_DEVICE_TOPOLOGY = 5006
START_NEW_FIRMWARE = 5014
UPDATE_ATTRIB_META_FILE = 5015
UPDATE_FIRMWARE = 5016

KEYBOARD_EMULATOR_ENABLE = 6300
KEYBOARD_EMULATOR_SET_LOCALE = 6301
KEYBOARD_EMULATOR_GET_CONFIG = 6302


//Barcode Types
ST_NOT_APP = 0
ST_CODE_39 = 1
ST_CODABAR = 2
ST_CODE_128 = 3
ST_D2OF5 = 4
ST_IATA = 5
ST_I2OF5 = 6
ST_CODE93 = 7
ST_UPCA = 8
ST_UPCE0 = 9
ST_EAN8 = 10
ST_EAN13 = 11
ST_CODE11 = 12
ST_CODE49 = 13
ST_MSI = 14
ST_EAN128 = 15
ST_UPCE1 = 16
ST_PDF417 = 17
ST_CODE16K = 18
ST_C39FULL = 19
ST_UPCD = 20
ST_TRIOPTIC = 21
ST_BOOKLAND = 22
ST_COUPON = 23
ST_NW7 = 24
ST_ISBT128 = 25
ST_MICRO_PDF = 26
ST_DATAMATRIX = 27
ST_QR_CODE = 28
ST_MICRO_PDF_CCA = 29
ST_POSTNET_US = 30
ST_PLANET_CODE = 31
ST_CODE_32 = 32
ST_ISBT128_CON = 33
ST_JAPAN_POSTAL = 34
ST_AUS_POSTAL = 35
ST_DUTCH_POSTAL = 36
ST_MAXICODE = 37
ST_CANADIN_POSTAL = 38
ST_UK_POSTAL = 39
ST_MACRO_PDF = 40
ST_RSS14 = 48
ST_RSS_LIMITET = 49
ST_RSS_EXPANDED = 50
ST_SCANLET = 55
ST_UPCA_2 = 72
ST_UPCE0_2 = 73
ST_EAN8_2 = 74
ST_EAN13_2 = 75
ST_UPCE1_2 = 80
ST_CCA_EAN128 = 81
ST_CCA_EAN13 = 82
ST_CCA_EAN8 = 83
ST_CCA_RSS_EXPANDED = 84
ST_CCA_RSS_LIMITED = 85
ST_CCA_RSS14 = 86
ST_CCA_UPCA = 87
ST_CCA_UPCE = 88
ST_CCC_EAN128 = 89
ST_TLC39 = 90
ST_CCB_EAN128 = 97
ST_CCB_EAN13 = 98
ST_CCB_EAN8 = 99
ST_CCB_RSS_EXPANDED = 100
ST_CCB_RSS_LIMITED = 101
ST_CCB_RSS14 = 102
ST_CCB_UPCA = 103
ST_CCB_UPCE = 104
ST_SIGNATURE_CAPTURE = 105
ST_MATRIX2OF5 = 113
ST_CHINESE2OF5 = 114
ST_UPCA_5 = 136
ST_UPCE0_5 = 137
ST_EAN8_5 = 138
ST_EAN13_5 = 139
ST_UPCE1_5 = 144
ST_MACRO_MICRO_PDF = 154

//ST_C25 = &H39 //NOT IN Scanner def list yet
//ST_MICRO_QR_CODE = &H2C
//ST_AZTEC = &H2D

SCANNER_TYPES_ALL = 1 //ALL Scanners
SCANNER_TYPES_SNAPI = 2 //SNAPI Scanners
SCANNER_TYPES_IBMHID = 6 //IBM Hand Held Scanners (USB OPOS)
SCANNER_TYPES_NIXMODB = 7 //Nixdorf Mode B scanners (RS232)
SCANNER_TYPES_HIDKB = 8 //USB HID Keyboard emulation scanners



FIN

Connexion()


Procedure Connexion()


LOCAL
Status est un entier système
TableauTypesScanner est un tableau d'entier sur 2 octet
NbTypeScanner est un entier sur 2 octet
TotalScanners est un entier = 0
NombreDeScanner est un entier sur 2 octet
TableauIdScanner est un tableau de 10 entier
outXML est une chaîne
InXML est une chaîne

TableauAjoute(TableauTypesScanner,SCANNER_TYPES_ALL)
NbTypeScanner=TableauTypesScanner..Occurrence

//ouverture des douchettes
gautScanner>>Open(0,TableauTypesScanner,NbTypeScanner,Status)

SI Status<>0 ALORS

Erreur("Echec de connexion au scanner Statut: : " + StatusCodes(Status))

FIN


Procedure BarcodeScanner_PnpEvent(nEventType , sPNPdata )

SELON nEventType

CASE 0

ToastAffiche("Le scanner est connecté")

CASE 1

ToastAffiche("Le scanner est déconnecté.")

AUTRE CAS

ToastAffiche("??")

FIN


Procedure OnBarcodeEvent(eventType ,pscanData )

sCodeBarre est une chaîne
TypeCodeBarre est une chaîne
souschaine est une chaîne
sCodeBarreDecrypte est une chaîne

SI PAS XMLDocument("DocXML",pscanData) ALORS

Erreur(HErreurInfo())

FIN

XMLRecherche("DocXML", "datalabel",XMLElement+XMLSousElément,XMLIgnoreLaCasse)
SI XMLTrouve("DocXML") = Vrai ALORS
sCodeBarre = XMLDonnée("DocXML")
FIN

sCodeBarre=Remplace(sCodeBarre,"0x","")

POUR TOUTE CHAINE souschaine DE sCodeBarre SEPAREE PAR " "

SI souschaine<>"" ALORS

sCodeBarreDecrypte+=Caract(Val(souschaine,"x"))

FIN

FIN

Trace(sCodeBarreDecrypte)

XMLRacine("DocXML")
XMLRecherche("DocXML", "datatype",XMLElement+XMLSousElément,XMLIgnoreLaCasse)
SI XMLTrouve("DocXML") = Vrai ALORS
TypeCodeBarre = XMLDonnée("DocXML")
FIN

Trace(getSymbology(Val(TypeCodeBarre)))

XMLTermine("DocXML")


Procedure getSymbology(Code est un entier)

CodeBarre est une chaîne

SELON Code

CASE ST_NOT_APP
CodeBarre = "NOT APPLICABLE"
CASE ST_CODE_39
CodeBarre = "CODE 39"
CASE ST_CODABAR
CodeBarre = "CODABAR"
CASE ST_CODE_128
CodeBarre = "CODE 128"
CASE ST_D2OF5
CodeBarre = "D 2 OF 5"
CASE ST_IATA
CodeBarre = "IATA"
CASE ST_I2OF5
CodeBarre = "I 2 OF 5"
CASE ST_CODE93
CodeBarre = "CODE 93"
CASE ST_UPCA
CodeBarre = "UPCA"
CASE ST_UPCE0
CodeBarre = "UPCE 0"
CASE ST_EAN8
CodeBarre = "EAN 8"
CASE ST_EAN13
CodeBarre = "EAN 13"
CASE ST_CODE11
CodeBarre = "CODE 11"
CASE ST_CODE49
CodeBarre = "CODE 49"
CASE ST_MSI
CodeBarre = "MSI"
CASE ST_EAN128
CodeBarre = "EAN 128"
CASE ST_UPCE1
CodeBarre = "UPCE 1"
CASE ST_PDF417
CodeBarre = "PDF 417"
CASE ST_CODE16K
CodeBarre = "CODE 16K"
CASE ST_C39FULL
CodeBarre = "C39FULL"
CASE ST_UPCD
CodeBarre = "UPCD"
CASE ST_TRIOPTIC
CodeBarre = "TRIOPTIC"
CASE ST_BOOKLAND
CodeBarre = "BOOKLAND"
CASE ST_COUPON
CodeBarre = "COUPON"
CASE ST_NW7
CodeBarre = "NW7"
CASE ST_ISBT128
CodeBarre = "ISBT128"
CASE ST_MICRO_PDF
CodeBarre = "MICRO PDF"
CASE ST_DATAMATRIX
CodeBarre = "DATAMATRIX"
CASE ST_QR_CODE
CodeBarre = "QR CODE"
CASE ST_MICRO_PDF_CCA
CodeBarre = "MICRO PDF CCA"
CASE ST_POSTNET_US
CodeBarre = "POSTNET US"
CASE ST_PLANET_CODE
CodeBarre = "PLANET CODE"
CASE ST_CODE_32
CodeBarre = "CODE 32"
CASE ST_ISBT128_CON
CodeBarre = "ISBT 128 CON"
CASE ST_JAPAN_POSTAL
CodeBarre = "JAPAN POSTAL"
CASE ST_AUS_POSTAL
CodeBarre = "AUS POSTAL"
CASE ST_DUTCH_POSTAL
CodeBarre = "DUTCH POSTAL"
CASE ST_MAXICODE
CodeBarre = "MAXICODE"
CASE ST_CANADIN_POSTAL
CodeBarre = "CANADA POSTAL"
CASE ST_UK_POSTAL
CodeBarre = "UK POSTAL"
CASE ST_MACRO_PDF
CodeBarre = "MACRO PDF"
CASE ST_RSS14
CodeBarre = "RSS 14"
CASE ST_RSS_LIMITET
CodeBarre = "RSS LIMITET"
CASE ST_RSS_EXPANDED
CodeBarre = "RSS EXPANDED"
CASE ST_SCANLET
CodeBarre = "ST SCANLET"
CASE ST_UPCA_2
CodeBarre = "UPCA 2"
CASE ST_UPCE0_2
CodeBarre = "UPCE0 2"
CASE ST_EAN8_2
CodeBarre = "EAN8 2"
CASE ST_EAN13_2
CodeBarre = "EAN13 2"
CASE ST_UPCE1_2
CodeBarre = "UPCE1 2"
CASE ST_CCA_EAN128
CodeBarre = "CCA EAN 128"
CASE ST_CCA_EAN13
CodeBarre = "CCA EAN 13"
CASE ST_CCA_EAN8
CodeBarre = "CCA EAN 8"
CASE ST_CCA_RSS_EXPANDED
CodeBarre = "CCA RSS EXPANDED"
CASE ST_CCA_RSS_LIMITED
CodeBarre = "CCA RSS LIMITED"
CASE ST_CCA_RSS14
CodeBarre = "CCA RSS 14"
CASE ST_CCA_UPCA
CodeBarre = "CCA UPCA"
CASE ST_CCA_UPCE
CodeBarre = "CCA UPCE"
CASE ST_CCC_EAN128
CodeBarre = "CCC EAN 128"
CASE ST_TLC39
CodeBarre = "TLC39"
CASE ST_CCB_EAN128
CodeBarre = "CCB EAN 128"
CASE ST_CCB_EAN13
CodeBarre = "CCB EAN 13"
CASE ST_CCB_EAN8
CodeBarre = "CCB EAN 8"
CASE ST_CCB_RSS_EXPANDED
CodeBarre = "CCB RSS EXPANDED"
CASE ST_CCB_RSS_LIMITED
CodeBarre = "CCB RSS LIMITED"
CASE ST_CCB_RSS14
CodeBarre = "CCB RSS 14"
CASE ST_CCB_UPCA
CodeBarre = "CCB UPCA"
CASE ST_CCB_UPCE
CodeBarre = "CCB UPCE"
CASE ST_SIGNATURE_CAPTURE
CodeBarre = "SIGNATURE CAPTURE"
CASE ST_MATRIX2OF5
CodeBarre = "MATRIX 2 OF 5"
CASE ST_CHINESE2OF5
CodeBarre = "CHINESE 2 OF 5"
CASE ST_UPCA_5
CodeBarre = "UPCA 5"
CASE ST_UPCE0_5
CodeBarre = "UPCE0 5"
CASE ST_EAN8_5
CodeBarre = "EAN8 5"
CASE ST_EAN13_5
CodeBarre = "EAN13 5"
CASE ST_UPCE1_5
CodeBarre = "UPCE1 5"
CASE ST_MACRO_MICRO_PDF
CodeBarre = "MACRO MICRO PDF"
//Case ST_C25
//CodeBarre = "C25"
AUTRE CAS
CodeBarre = "UNKNOWN"
FIN

RENVOYER CodeBarre


Procedure StatusCodes(Status est un entier)

sDetailErreur est une chaîne

SELON Status

CAS 0
sDetailErreur = "SUCCESS" //Generic success
CAS 10
sDetailErreur = "STATUS_LOCKED" //Device is locked by another application
CAS 100
sDetailErreur = "ERROR_INVALID_APPHANDLE" //Invalid application handle. Reserved parameter. Value is zero.
CAS 101
sDetailErreur = "ERROR_COMMLIB_UNAVAILABLE" //'Required Comm Lib is unavailable to support the requested Type
CAS 102
sDetailErreur = "ERROR_NULL_BUFFER_POINTER" //Null buffer pointer
CAS 103
sDetailErreur = "ERROR_INVALID_BUFFER_POINTER" //Invalid buffer pointer
CAS 104
sDetailErreur = "ERROR_INCORRECT_BUFFER_SIZE" //Incorrect buffer size
CAS 105
sDetailErreur = "ERROR_DUPLICATE_TYPES" //Requested Type IDs are duplicated
CAS 106
sDetailErreur = "ERROR_INCORRECT_NUMBER_OF_TYPES" //Incorrect value for number of Types
CAS 107
sDetailErreur = "ERROR_INVALID_ARG" //Invalid argument
CAS 108
sDetailErreur = "ERROR_INVALID_SCANNERID" //Invalid scanner ID
CAS 109
sDetailErreur = "ERROR_INCORRECT_NUMBER_OF_EVENTS" //Incorrect value for number of Event IDs
CAS 110
sDetailErreur = "ERROR_DUPLICATE_EVENTID" //Event IDs are duplicated
CAS 111
sDetailErreur = "ERROR_INVALID_EVENTID" //Invalid value for Event ID
CAS 112
sDetailErreur = "ERROR_DEVICE_UNAVAILABLE" //Required device is unavailable
CAS 113
sDetailErreur = "ERROR_INVALID_OPCODE" //Opcode is invalid
CAS 114
sDetailErreur = "ERROR_INVALID_TYPE" //Invalid value for Type
CAS 115
sDetailErreur = "ERROR_ASYNC_NOT_SUPPORTED" //Opcode does not support asynchronous method
CAS 116
sDetailErreur = "ERROR_OPCODE_NOT_SUPPORTED" //Device does not support the Opcode
CAS 117
sDetailErreur = "ERROR_OPERATION_FAILED" //Operation failed in device
CAS 118
sDetailErreur = "ERROR_REQUEST_FAILED" //Request failed in CoreScanner
CAS 200
sDetailErreur = "ERROR_ALREADY_OPENED" //CoreScanner is already opened
CAS 201
sDetailErreur = "ERROR_ALREADY_CLOSED" //CoreScanner is already closed
CAS 202
sDetailErreur = "ERROR_CLOSED" //CoreScanner is closed
CAS 300
sDetailErreur = "ERROR_INVALID_INXML" //Malformed inXML
CAS 301
sDetailErreur = "ERROR_XMLREADER_NOT_CREATED" //XML Reader could not be instantiated
CAS 302
sDetailErreur = "ERROR_XMLREADER_INPUT_NOT_SET" //Input for XML Reader could not be set
CAS 303
sDetailErreur = "ERROR_XMLREADER_PROPERTY_NOT_SET" //XML Reader property could not be set
CAS 304
sDetailErreur = "ERROR_XMLWRITER_NOT_CREATED" //XML Writer could not be instantiated
CAS 305
sDetailErreur = "ERROR_XMLWRITER_OUTPUT_NOT_SET" //Output for XML Writer could not be set
CAS 306
sDetailErreur = "ERROR_XMLWRITER_PROPERTY_NOT_SET" //XML Writer property could not be set
CAS 307
sDetailErreur = "ERROR_XML_ELEMENT_CANT_READ" //Cannot read element from XML input
CAS 308
sDetailErreur = "ERROR_XML_INVALID_ARG" //Arguments in inXML are not valid
CAS 309
sDetailErreur = "ERROR_XML_WRITE_FAIL" //Write to XML output string failed
CAS 310
sDetailErreur = "ERROR_XML_INXML_EXCEED_LENGTH" //InXML exceed length
CAS 311
sDetailErreur = "ERROR_XML_EXCEED_BUFFER_LENGTH" //buffer length for type exceeded
CAS 400
sDetailErreur = "ERROR_NULL_POINTER" //Null pointer
CAS 401
sDetailErreur = "ERROR_DUPLICATE_CLIENT" //Cannot add a duplicate client
CAS 500
sDetailErreur = "ERROR_FW_INVALID_DATFILE" //Invalid firmware file
CAS 501
sDetailErreur = "ERROR_FW_UPDATE_FAILED_IN_SCN" //FW Update failed in scanner
CAS 502
sDetailErreur = "ERROR_FW_READ_FAILED_DATFILE" //Failed to read DAT file
CAS 503
sDetailErreur = "ERROR_FW_UPDATE_INPROGRESS" //Firmware Update is in progress (cannot proceed another FW Update or another command)
CAS 504
sDetailErreur = "ERROR_FW_UPDATE_ALREADY_ABORTED" //Firmware update is already aborted
CAS 505
sDetailErreur = "ERROR_FW_UPDATE_ABORTED" //FW Update aborted
CAS 506
sDetailErreur = "ERROR_FW_SCN_DETTACHED" //Scanner is disconnected while updating firmware
CAS 600
sDetailErreur = "STATUS_FW_SWCOMP_RESIDENT" //The software component is already resident in the scanner
AUTRE CAS
sDetailErreur = "UNKNOWN"
FIN

RENVOYER sDetailErreur


Il y a plus qu'à copier-coller
Bon dev
Posté le 23 août 2012 - 15:54
oupsss!

j'ai mal copie la procédure de connexion

Procedure Connexion()


LOCAL
Status est un entier système
TableauTypesScanner est un tableau d'entier sur 2 octet
NbTypeScanner est un entier sur 2 octet
TotalScanners est un entier = 0
NombreDeScanner est un entier sur 2 octet
TableauIdScanner est un tableau de 10 entier
outXML est une chaîne
InXML est une chaîne

TableauAjoute(TableauTypesScanner,SCANNER_TYPES_ALL)
NbTypeScanner=TableauTypesScanner..Occurrence

//ouverture des douchettes
gautScanner>>Open(0,TableauTypesScanner,NbTypeScanner,Status)

SI Status<>0 ALORS

Erreur("Echec de connexion au scanner Statut: : " + StatusCodes(Status))

FIN


//enregistrement des événement des douchettes
//SUBSCRIBE_BARCODE 1
//SUBSCRIBE_IMAGE 2
//SUBSCRIBE_VIDEO 4
//SUBSCRIBE_RMD 8
//SUBSCRIBE_PNP 16
//SUBSCRIBE_OTHER 32


InXML=
[
<inArgs>
<cmdArgs>
<arg-int>6</arg-int>
<arg-int>1,2,4,8,16,32</arg-int>
</cmdArgs>
</inArgs>
]


AutomationEvénement(OnBarcodeEvent,gautScanner,"BarcodeEvent")
AutomationEvénement(BarcodeScanner_PnpEvent,gautScanner,"PNPEvent")
//AutomationEvénement(BarcodeScanner_PnpEvent,gautScanner,"ImageEvent")
//AutomationEvénement(BarcodeScanner_PnpEvent,gautScanner,"VideoEvent")
//AutomationEvénement(BarcodeScanner_PnpEvent,gautScanner,"ScanRMDEvent")
//AutomationEvénement(BarcodeScanner_PnpEvent,gautScanner,"CommandResponseEvent")
//AutomationEvénement(BarcodeScanner_PnpEvent,gautScanner,"IOEvent")

gautScanner>>ExecCommand(REGISTER_FOR_EVENTS,InXML,outXML,Status)

SI Status<>0 ALORS

Erreur("Echec lors de l'enregistrement d'événements sur le scanner Statut : "+StatusCodes(Status))

FIN

//connexion aux douchettes
gautScanner>>getScanners(NombreDeScanner, TableauIdScanner, outXML, Status)

SI Status<>0 ALORS

Erreur("Echec de connexion au scanner Statut :: " + StatusCodes(Status))

FIN
Posté le 27 août 2012 - 19:40
Effectivement, en automation, cela fonctionne parfaitement.

Merci
Membre enregistré
13 messages
Popularité : +1 (1 vote)
Posté le 13 octobre 2017 - 18:32
Merci pour ce code :merci:... il est toujours opérationnel à ce jour. J'ai passé une dizaine d'heure à tenter de passer par l'assemblage .Net sans sucées.

D'une part, impossible de réaliser un delegate avec WinDev malgré un code correct... j'ai vu dans le répertoire NET/Compile du projet que VS n'arrive pas à compiler le code généré par WinDev et d'autre part le même soucis sur la méthode Open qui est IMPOSSIBLE à utiliser malgré les dizaines de syntaxe essayées.

J'aurais préféré ne pas passer par de l'automation mais à ce jour c'est le SEUL moyen de travailler avec un scanner Motorola ou Zebra (c'est mon cas).

Donc vraiment un grand MERCI, si je peux renvoyer l'appareil, ne pas hésiter à me solliciter, et pour PC SOFT, carton rouge sur ce coup car les promesses interopérabilités avec le .Net ne sont pas du tout respectée à mon sens.

J'espère que ce post sera lu par le support PC SOFT pour améliorer l'utilisation des assembly car je ne pense pas que les développeurs ne soit intéressés que par le branchement de delegate FileSystemWatcher }:(.

My 2 cents.
Membre enregistré
13 messages
Popularité : +1 (1 vote)
Posté le 13 octobre 2017 - 18:32
Merci pour ce code :merci:... il est toujours opérationnel à ce jour. J'ai passé une dizaine d'heure à tenter de passer par l'assemblage .Net sans sucées.

D'une part, impossible de réaliser un delegate avec WinDev malgré un code correct... j'ai vu dans le répertoire NET/Compile du projet que VS n'arrive pas à compiler le code généré par WinDev et d'autre part le même soucis sur la méthode Open qui est IMPOSSIBLE à utiliser malgré les dizaines de syntaxe essayées.

J'aurais préféré ne pas passer par de l'automation mais à ce jour c'est le SEUL moyen de travailler avec un scanner Motorola ou Zebra (c'est mon cas).

Donc vraiment un grand MERCI, si je peux renvoyer l'appareil, ne pas hésiter à me solliciter, et pour PC SOFT, carton rouge sur ce coup car les promesses interopérabilités avec le .Net ne sont pas du tout respectée à mon sens.

J'espère que ce post sera lu par le support PC SOFT pour améliorer l'utilisation des assembly car je ne pense pas que les développeurs ne soit intéressés que par le branchement de delegate FileSystemWatcher }:(.

My 2 cents.