Page 2 sur 3
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 9:09
par killer128
@mesa j'ai win32bit et la version 4.60 peut tu me passer la partie de ton code que je teste cela .une source courte et simple serai la bienvenu

Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 10:36
par GallyHC
Bonjour,
Vu le nom "K8055" j'ai tout de suite pensé un du matos de chez Velleman (perso j'ai un VM116 pour le controle DMX512). J'ai touvais toute les info utile sur leur site, donc j'ai fait une recherche et voila le resultat (
http://www.velleman.eu/support/downloads/?code=K8055).
Perso pour mon VM116 et la dll de velleman je n'ai eu aucun problème.
Cordialement,
GallyHC
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 11:41
par killer128
^^ on voie bien les geek de l'électronique ici ! Si tu cherche le module pour le bra robotique c'est ksr10. Tu verra il n'y a pas de source à dl. Tout le pb est là. Pour l'anecdote quand je les acheter le cd vellman avec le logiciel étai vierge j'ai galleré pendant 48h à chercher le logiciel sur les différant site d'achat. Je les trouvé et j'ai poster un message sur le forum vellman .tout cela pour dire que le module est cool mais je cherche et les utilisateurs n'arrive pas à piloter l'usb de base on est obligé de hack la belette . Qu'est que j'aimerai piloter cette dll Elanusb32

Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 12:22
par GallyHC
Bonjour,
Geek je ne sais pas le VM116 est des tests pour faire un logiciel plus ou moin pour mon boulot lolll. Par contre pour ton "K8055", pourquoi n'utilises tu pas la Dll de velleman c'est a dire la "K8055D.dll"?
Cordialement,
GallyHC
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 12:36
par killer128
Par contre pour ton "K8055", pourquoi n'utilises tu pas la Dll de velleman c'est a dire la "K8055D.dll"?
Oui et cela fonctionne bien

.
Je suis encore en train de chercher pour en revenir au code qui me gène:
Code : Tout sélectionner
Prototype.l appel_fonction ()
If OpenWindow(0, 100, 200, 195, 260, "PureBasic Window", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_MaximizeGadget)
If OpenLibrary(0, "libusb0.dll") ; ouvre la dll
appel_fonction.appel_fonction = GetFunction(0, "usb_get_version") ; transmet les parametres de la fonction GetDLLVErsion de la dll dans notre variable typée (genre de structure)
Debug PeekS(appel_fonction)
CloseLibrary(0)
EndIf
CallDebugger
; EPB
Repeat
Event = WaitWindowEvent()
If Event = #PB_Event_CloseWindow ; If the user has pressed on the close button
Quit = 1
EndIf
Until Quit = 1
EndIf
End
Quand j'utilise la dll libusb0.dll
j'ai cherche sur internet pour voir ,il n'y à pas de variable comme paramètre à entrer en utilisant la fonction usb_get_version.
Pourtant avec le débugger il me retourne juste "," est pas la version de la dll.
Savez-vous de quoi cela peut venir?
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 13:36
par GallyHC
Apers si la DLL ne te conviens pas y a les sources le site. Perso pour le controleur VM116 il me manquer des choses alors j'ai refait une partie de la DLL a ma sauce voir
http://koakdesign.info/php/form_sources.php?num=45, enfin avec de l'aide de membre d'ici
Cordialement,
GallyHC
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 14:32
par Backup
killer128 a écrit :
Quand j'utilise la dll libusb0.dll
j'ai cherche sur internet pour voir ,il n'y à pas de variable comme paramètre à entrer en utilisant la fonction usb_get_version.
Pourtant avec le débugger il me retourne juste "," est pas la version de la dll.
Savez-vous de quoi cela peut venir?
je n'ai pas ces Dll , mais pour info
c'est pas parceque la fonction que tu appel , n'a pas de parametre , qu'il n'en faut pas dans l'appel
ex : ici :
Code : Tout sélectionner
appel_fonction.appel_fonction = GetFunction(0, "usb_get_version")
le retour de l'appel de la fonction sera dans "appel_fonction.appel_fonction"
mais , peut etre que cette fonction ( que je ne connais pas .. ) apres son appel , "charge" un parametre de retour .. genre :
appel_fonction.appel_fonction = GetFunction(0, "usb_get_version",retour)
ici par exemple la variable "Retour" contiendrait le retour de la fonction "usb_get_version"
alors que "appel_fonction.appel_fonction" contiendrai le code de bon ou mauvais fonctionnement de la fonction ...
en fait , c'est une possibilité, ne sachant pas comment est foutu la Dll ... et ses fonctions
une procedure , (ou fonction )
peut retourner un parametre par son retour de fonction standard "ProcedureReturn"
mais peut aussi utiliser l'un des parametres pour poser un retour de résultat apres un traitement ....
exemple :
Code : Tout sélectionner
; retour par les parametres
; By Dobro
Declare toto(a,b,resultat)
a=5
b=3
resultat=0
toto (a,b,@resultat) ; on appel la procedure , le resultat de (a+b) sera dans la variable resultat
debug "Version :"+str(resultat)
calldebugger
End
procedure toto(a,b,resultat)
; By Dobro
; exemple de retour par les parametres
r=a+b ; on fait l'addition
pokei(resultat,r); on pose le résultat dans la variable resultat (dont l'adresse est passée en paramètre)
endprocedure
;
; EPB
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 16:28
par killer128
Merci pour vos postes les mecs.
Tout ceci ne me mènera pas loin.
Es t-il possible de piloter le driver .sys ? si oui, j'ai jamais fait.
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 17:53
par Backup
killer128 a écrit :Par contre pour ton "K8055", pourquoi n'utilises tu pas la Dll de velleman c'est a dire la "K8055D.dll"?
Oui et cela fonctionne bien

.
la question qui me viens en lisant ça , c'est "pourquoi tu te prends la tete alors ?"
comprends pas ...
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 18:05
par killer128
J'ai capté où vous comptez m'enmener. En prenant le k8055 + achat de "pont en h" + bra robotique = B I N G O ! C'est l'idée qui fonctionne .la personne qui trouve une meilleur idée qui fonctionne je lui envoi mon moteur stirling basse température fait maison

Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 19:54
par G-Rom
Salut les "geeks" de l'électronique , pourquoi vous vous embêté la vie avec des "controleurs" plus pourrave les uns que les autres.
Les vrais "geeks" utiliserais des pics pour contrôlé tout type de sortie , moteur , sonde , etc...
pour les moins "geeks", une solution à base d'arduino , non ? en tout cas , le "k8055" est à 40€ plus les frais de port , arduino deux fois moins chère , même résultat , je ne parle même pas du prix d'un pic avec son quartz et ses condos ( pour peu qu'ils ne soient pas directement intégré dans le chip ).
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : ven. 01/juin/2012 23:16
par killer128
@G-ROM la chose que j'appréhende c'est le pilotage entre le Pc et le module du bra robotique. En prenant le module ardurino .je pourrai coder le pic mais j'aurai quand même besoin des ci "pont en h" . Cette solution me coûtera bien plus que la solution précédente. (Pc vers arm) pour par exemple dessiner un tracé sous paint et reproduire ceci avec 1stilo et le bra arm avec une source pb.

Re: Appel de fonction de la dll ELANUSB32.dll
Publié : sam. 02/juin/2012 9:32
par Mesa
@killer128 : En fait c'est l'exemple qui s'appelle Deviceinfo.pb dont la source est :
Code : Tout sélectionner
Procedure HID_DeviceInfo()
ClearGadgetItems(0)
Info.HID_Lib_DeviceInfo
If HID_Lib_DeviceInfo(@Info)
If Info\CountDevice>0
For i=0 To Info\CountDevice-1
AddGadgetItem(0,i,Info\DeviceInfo[i]\Manufacturer)
SetGadgetItemText(0,i,Info\DeviceInfo[i]\Product,1)
SetGadgetItemText(0,i,Hex(Info\DeviceInfo[i]\ProductID,#PB_Word)+"H",2)
SetGadgetItemText(0,i,Hex(Info\DeviceInfo[i]\VendorID,#PB_Word)+"H",3)
SetGadgetItemText(0,i,Hex(Info\DeviceInfo[i]\VersionNumber,#PB_Word)+"H",4)
SetGadgetItemText(0,i,Info\DeviceInfo[i]\SerialNumber,5)
SetGadgetItemText(0,i,Str(Info\DeviceInfo[i]\NumInputBuffers),6)
SetGadgetItemText(0,i,Str(Info\DeviceInfo[i]\InputReportByteLength),7)
SetGadgetItemText(0,i,Str(Info\DeviceInfo[i]\OutputReportByteLength),8)
SetGadgetItemText(0,i,Str(Info\DeviceInfo[i]\FeatureReportByteLength),9)
Next i
EndIf
EndIf
EndProcedure
OpenWindow(0,0,0,930,294,"Èôîðìàöèÿ î USB HID óñòðîéñòâàõ — HID_Lib Demo",#PB_Window_MinimizeGadget|#PB_Window_Invisible|#PB_Window_ScreenCentered)
ListIconGadget(0,2,2,924,290,"Èçãîòîâèòåëü",100,#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect)
AddGadgetColumn(0,1,"Ïðîäóêò",100)
AddGadgetColumn(0,2,"PID",48)
AddGadgetColumn(0,3,"VID",48)
AddGadgetColumn(0,4,"Íîìåð âåðñèè",90)
AddGadgetColumn(0,5,"Ñåðèéíûé íîìåð",104)
AddGadgetColumn(0,6,"×èñëî âõ. áóôåðîâ",110)
AddGadgetColumn(0,7,"Ðàçìåð âõ. ðåïîðòà",120)
AddGadgetColumn(0,8,"Ðàçìåð âûõ. ðåïîðòà",124)
AddGadgetColumn(0,9,"FEATURE",70)
HID_DeviceInfo()
HideWindow(0,0)
AddWindowTimer(0, 1, 400)
Repeat
Event=WaitWindowEvent()
If Event=#PB_Event_Timer
If EventTimer()=1
HID_DeviceInfo()
EndIf
EndIf
Until Event = #PB_Event_CloseWindow
Le texte illisible est normal, à l'origine c'est du russe.
Mesa.
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : sam. 02/juin/2012 10:08
par killer128
On peut faire mieu que les russe les mecs. Si tu regarde une des sources que j'ai mise elle est en ENG . J'ai une bonne nouvelle j'arrive à envoyer des ocrées sur l'usb .c'est pas de moi mais je vais creuser de ce côté là.
Code : Tout sélectionner
char tmp[BUF_SIZE]
ret.l=usb_bulk_write(*usb_dev_handle, #EP_OUT, tmp, SizeOf(tmp), 5000)
J'ai remarquer dans cette partie de code il y a un soucis.
Je doit rentrer un certain nombre de d'octée (512) de type char le souci c'est que si je entre un "string" je ne peut pas avoir des valeurs hex 0x01 à 0x12 .... En plus avec le retour chariot cela va me poser problème.
Est t-il possible de convertir une série de valeur hex puis copier le bloc de données pour l'envoyer à la fonction usb_bulk_write ?
Re: Appel de fonction de la dll ELANUSB32.dll
Publié : sam. 02/juin/2012 11:58
par Backup
killer128 a écrit :
Je doit rentrer un certain nombre de d'octée (512) de type char le souci c'est que si je entre un "string" je ne peut pas avoir des valeurs hex 0x01 à 0x12 .... En plus avec le retour chariot cela va me poser problème.
Est t-il possible de convertir une série de valeur hex puis copier le bloc de données pour l'envoyer à la fonction usb_bulk_write ?
voir Asc() et Chr() dans la Doc
par exemple le retour chario : chr(13)