[..] Communication USB pour bp1048

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
Anthony
Niveau 7
Niveau 7
Messages : 301
Enregistré le : lun. 17 janv. 2011 14:08
Localisation : France
Status : Hors ligne

[..] Communication USB pour bp1048

#1

Message par Anthony »

Bonjour à tous,

Je cherche à communiquer en USB avec un DAC audio BP1048 b2 dans une GUI AutoIt afin de pouvoir monter les gains "DAC0 et DAC1 Digital".
J'ai dû vraiment creuser pour trouver un Dev Kit que j'ai trouvé ici
https://github.com/leadercxn/bp1048_sdk_v0.1.12

Auriez-vous un point de départ pour m'aiguiller, merci :mrgreen:

Voici le log lorsque je passe le gain de DAC1 de -6 à -5,7
[2024.04.19 05:10:41.156 ven.] [USB TX] -- DAC1: Control Word = 0x0A, Data Length = 0x03
A5 5A 0A 03 03 4D 08 16

[2024.04.19 05:10:41.158 ven.] [USB RX] -- Response:
0A

[2024.04.19 05:10:41.194 ven.] [USB TX] -- DAC1: Control Word = 0x0A, Data Length = 0x00
A5 5A 0A 00 16

[2024.04.19 05:10:41.196 ven.] [USB RX] -- DAC1: Control Word = 0x0A, Data Length = 0x1D
A5 5A 0A 1D FF 01 00 07 00 01 00 4D 08 05 08 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 16
Sans titre.png
Log complet
► Afficher le texte
J'ai été diagnostiqué pour trouble de la concentration, soyez indulgent
Merci à tous pour votre aide.
UDF: GuiStatusBarEx --- Une StatusBar complète, rapide et simple
Code: Code-Texte fusion --- Une GUI pour fusionner des GCodes pour CNC 3018
Avatar du membre
TommyDDR
Modérateur
Modérateur
Messages : 2090
Enregistré le : mar. 22 juil. 2008 21:55
Localisation : Nantes
Status : Hors ligne

Re: [..] Communication USB pour bp1048

#2

Message par TommyDDR »

J'avais utilisé il y a fort longtemps la lib ComUDF pour dialoguer en USB avec un arduino, c'est peut être une piste pour vous :
https://www.autoitscript.com/forum/topi ... -port-udf/
3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679
Avatar du membre
Anthony
Niveau 7
Niveau 7
Messages : 301
Enregistré le : lun. 17 janv. 2011 14:08
Localisation : France
Status : Hors ligne

Re: [..] Communication USB pour bp1048

#3

Message par Anthony »

Bonjour TommyDDR,

Oui avec arduino je me suis fais un petit soft a l'époque pour contrôler ma CNC et là je l'avait bien de listé en port COM CH430 ;).

Par contre dans ce cas précis l'appareil est reconnu comme un périférique USB générique et je le le vois pas comme port COM
Sans titre.png
Sans titre.png (8.32 Kio) Vu 3403 fois
MV Silicon.png
Voici le détail du périférique.
► Afficher le texte
Pour être plus pécis c'est ce type de carte qui utilise un logiciel propriétaire sous license et je souhaite faire ma propre interface
Sans titre.png
Logiciel (Sous license) ACP Workbench
ACP Workbench.png
J'ai été diagnostiqué pour trouble de la concentration, soyez indulgent
Merci à tous pour votre aide.
UDF: GuiStatusBarEx --- Une StatusBar complète, rapide et simple
Code: Code-Texte fusion --- Une GUI pour fusionner des GCodes pour CNC 3018
Avatar du membre
Numeric
Niveau 5
Niveau 5
Messages : 132
Enregistré le : mer. 23 mars 2016 08:17
Status : Hors ligne

Re: [..] Communication USB pour bp1048

#4

Message par Numeric »

Salut, pour faire simple et éviter tout tâtonnement, il te faudra tout simplement développer un UDF pour implémenter les fonctions de la dll Winusb.dll . C'est le moyen le plus facile.
De 0 et 1 vers les étoiles , tout part du Binaire, Numeric
Avatar du membre
Anthony
Niveau 7
Niveau 7
Messages : 301
Enregistré le : lun. 17 janv. 2011 14:08
Localisation : France
Status : Hors ligne

Re: [..] Communication USB pour bp1048

#5

Message par Anthony »

Bonjour Numeric,

Merci pour ta suggestion et m'excuse de n'avoir répondu plus tôt.
Peut-être un début de réponse ici : https://www.autoitscript.com/forum/topi ... tructures/
Je n'ai pas trouvé quelqe chose de fonctionnel avec "Winusb.dll" mais je fais peut-être fausse route avec "libusb0.DLL" ?
Le but étant d'identifier le Vendor ID 0x8888 et Product ID 0x1719 pour dialoguer avec "mvsilicon B1 usb audio" (Ma carte)
Info.png
Description du bus signalée
Info2.png
DLL
libusb0.zip
(18.59 Kio) Téléchargé 5 fois

Code : Tout sélectionner

[spoiler=]$libusb0Path = "libusb0.DLL"
$libusb0 = DllOpen( $libusb0Path)

hotkeyset("{Esc}","Terminate")

#include <Array.au3>


usb_init()

$findbus = usb_find_busses()
;_ArrayDisplay( $findbus, "$findbus")

$busses = usb_get_busses()
;_ArrayDisplay( $busses, "$busses")

$find = usb_find_devices()
;_ArrayDisplay( $find, "$find")


$usb_bus = DllStructCreate("ptr;ptr;char[512];ptr;ulong;ptr", $busses[0])
_ArrayDisplay( $usb_bus, "$usb_bus")

;MsgBox(0, "ugb", IsDllStruct($usb_bus))
For $i = 0 To 100
   $Ret = DllStructGetData($usb_bus, $i)
   If $Ret Then MsgBox(0, "ugb", $Ret)
   ;MsgBox(0, "ugb", $Ret)
Next

;Exit

;*******************find busses*********************************************



$usb_find_busses = DllStructCreate("Int", $findbus[0])
$fbus= DllStructGetptr($usb_find_busses,1)
If($fbus=0x00000001) then
   ConsoleWrite("Busses found  "& $fbus & @CRLF)
Else
   ConsoleWrite("Busses Not found ...  "& $fbus & @CRLF)
EndIf


;*******************get busses*********************************************


$usb_get_busses = DllStructCreate("ptr;ptr;char[512];ptr;ULONG;ptr;", $busses[0])

$next = DllStructGetPtr($usb_get_busses, 1)
MsgBox(0, "Next Pointer", $next)

$previous = DllStructGetPtr($usb_get_busses, 2)
MsgBox(0, "Previous Pointer", $previous)
$path = DllStructGetptr($usb_get_busses, 3)
MsgBox(0, "Path", $path)
$devices = DllStructGetPtr($usb_get_busses, 4)
MsgBox(0, "Devices Pointer", $devices)
$location = DllStructGetData($usb_get_busses, 5)
MsgBox(0, "Location", $location)
$root_dev = DllStructGetPtr($usb_get_busses, 6)
MsgBox(0, "Root Device Pointer", $root_dev)

;**********************data devices*********************************************

$usb_find_devices = DllStructCreate("Int",$find[0])
$devi = DllStructGetPtr($usb_find_devices)
If($devi=0x00000001) then
ConsoleWrite("A device is connected  "& $devi & @CRLF)


; WORK ON IT :::
$id=0x00000001

$d = usb_open($id)
$usb = DllStructCreate("HWnd",$d[0])
$de = DllStructGetPtr($usb)

ConsoleWrite("data" & $usb)
;*********************************


Else
ConsoleWrite("Not device...  "& @CRLF)
EndIf



;*******************************open / close*****************************************




DllClose("libusb0.DLL")





Func Terminate()
    Exit 0
EndFunc   ;==>Terminate


Func usb_init()
   DllCall ($libusb0, "none", "usb_init")
EndFunc

Func usb_find_busses()
   $retval = DllCall ($libusb0, "int", "usb_find_busses")
   Return $retval
EndFunc

Func usb_device()
   $retval = DllCall ($libusb0, "Ptr", "usb_device")
   Return $retval
EndFunc

Func usb_find_devices()
   $retval = DllCall ($libusb0, "Ptr", "usb_find_devices")
   Return $retval
EndFunc

Func usb_get_busses()
   $retval = DllCall ($libusb0, "ptr", "usb_get_busses")
   Return $retval
EndFunc


Func usb_open($devicePointer)
   $retval = DllCall ($libusb0, "HWnd", "usb_open", "Ptr", $devicePointer)
   Return $retval
EndFunc


Func usb_close($devicePointer)
   $retval = DllCall ($libusb0, "int", "usb_close", "ptr", $devicePointer)
   Return $retval
EndFunc[/spoiler]
J'ai été diagnostiqué pour trouble de la concentration, soyez indulgent
Merci à tous pour votre aide.
UDF: GuiStatusBarEx --- Une StatusBar complète, rapide et simple
Code: Code-Texte fusion --- Une GUI pour fusionner des GCodes pour CNC 3018
Répondre