- Offizieller Beitrag
Heyho,
Ich stehe mal wieder vor einem mir unlösbaren Problem. Ich bin grade dabei ein kleines Oszilloskop via USB fernzusteuern (PicoScope 2003). Die meisten Funktionen habe ich auch schon impliziert, wie das Verbinden zur box, das Auswählen des Chanels und das starten des Streamings. Das funktioniert alles soweit wunderbar, die Dll gibt immer schon True zurück, also gehe ich mal davon aus, dass das soweit funktioniert.
Leider funktioniert das eigentlich interessante nicht. Nämlich das Streamen. Fürs Streamen braucht die DLL (wie immer) ein Handle der Angeschlossenen Box und außerdem noch einen Pointer zu einer Callback Funktion:
short ps2000_get_streaming_last_values (
short handle
GetOverviewBuffersMaxMin lpGetOverviewBuffersMaxMin
)
Hier mal ein C ausschnitt:
Und hier die Dokumentation der DLL, interessant ist da wohl Seite 16 und Seite 54.
http://www.pc-oscilloscopes.com/manuals/ps2000pg-en.pdf
Und hier mein Versuch in AutoIt, der mir immer nur 0 (Fail) zurück gibt:
Spoiler anzeigen
Global $hPICO_CallBackRegister = DllCallbackRegister("__PICO_Callback_MyGetOverviewBuffers", "none", "short;short;ulong;short;short;ulong")
[/autoit] [autoit][/autoit] [autoit];[...]
[/autoit] [autoit][/autoit] [autoit]$aDLLret = DllCall($hPICO_OpenDll, "short", "ps2000_get_streaming_last_values", "short", $hPICO_Handle, _
"ptr", DllCallbackGetPtr($hPICO_CallBackRegister))
If $aDLLret[0] = 0 Then MsgBox(16,"","FAIL"); failed
;[...]
[/autoit] [autoit][/autoit] [autoit]Func __PICO_Callback_MyGetOverviewBuffers($iOverviewBuffers, $iOverflow, $uiTriggeredAt, $iTriggered, $iAutostop, $nValues)
_Log("Callback:")
_Log("iOverviewBuffers: "&$iOverviewBuffers)
_Log("iOverflow: "&$iOverflow)
_Log("uiTriggeredAt: "&$uiTriggeredAt)
_Log("iTriggered: "&$iTriggered)
_Log("iAutoStop: "&$iAutostop)
_Log("nValues: "&$nValues)
EndFunc
Über Hilfe würde ich mich sehr freuen, vielen Dank schon mal
Gruß
Spider