libusb-1.0 Include for Linux
- NicTheQuick
- Ein Admin
- Beiträge: 8675
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: libusb-1.0 Include for Linux
Sieht so aus als hätte ich mal wieder Tomaten auf den Augen gehabt.
Natürlich muss man PeekS(buffer, -1, #PB_Ascii) schreiben. Diese verfluchte -1 treibt mich noch in den Wahnsinn.
Also ihr müsste einfach an allen Stellen im Code, wo PeekS() vorkommt, noch den zweiten Parameter einfügen. Dann klappt's auch mit den Strings. Das ganze müsst ihr nur in der wrapper.pbi ändern.
Natürlich muss man PeekS(buffer, -1, #PB_Ascii) schreiben. Diese verfluchte -1 treibt mich noch in den Wahnsinn.
Also ihr müsste einfach an allen Stellen im Code, wo PeekS() vorkommt, noch den zweiten Parameter einfügen. Dann klappt's auch mit den Strings. Das ganze müsst ihr nur in der wrapper.pbi ändern.
- pcfreak1201
- Beiträge: 38
- Registriert: 17.12.2011 13:01
- Computerausstattung: Linux Mint 17.3 (Rosa) x64 | PB 5.42LTS x64 (Linux+Win)
- Wohnort: Arnsberg
Re: libusb-1.0 Include for Linux
Moin und Frohes Neues!
Im Codearchiv Rebirth finde ich nur noch eine Version für Mac,
ich suche aber etwas für Linux - jemand eine Idee?
Gruß,
Stefan
Im Codearchiv Rebirth finde ich nur noch eine Version für Mac,
ich suche aber etwas für Linux - jemand eine Idee?
Gruß,
Stefan
Re: libusb-1.0 Include for Linux
@pcfreak1201:
Ebenfalls frohes neues Jahr
Ich weiß nicht mehr was der Grund war, dass ich den Include-Code nach dem kompletten Neubau des Archivs nicht mehr integriert habe. Vermutlich funktionierte er nicht mehr mit der aktuellen PB-Version und die Anpassung war mir zu aufwendig.
Es gibt aber noch ein Fork vom Archiv, der zeitlich ziemlich zurückliegt und noch den Zustand des alten Archivs hat. Dort findest du noch die Codes zu libusb:
https://github.com/pointofpresence/Pure ... ware/pbusb
Ebenfalls frohes neues Jahr
Ich weiß nicht mehr was der Grund war, dass ich den Include-Code nach dem kompletten Neubau des Archivs nicht mehr integriert habe. Vermutlich funktionierte er nicht mehr mit der aktuellen PB-Version und die Anpassung war mir zu aufwendig.
Es gibt aber noch ein Fork vom Archiv, der zeitlich ziemlich zurückliegt und noch den Zustand des alten Archivs hat. Dort findest du noch die Codes zu libusb:
https://github.com/pointofpresence/Pure ... ware/pbusb
Warum OpenSource eine Lizenz haben sollte :: PB-CodeArchiv-Rebirth :: Pleasant-Dark (Syntax-Farbschema) :: RegEx-Engine (kompiliert RegExes zu NFA/DFA)
Manjaro Xfce x64 (Hauptsystem) :: Windows 10 Home (VirtualBox) :: Neueste PureBasic-Version
- pcfreak1201
- Beiträge: 38
- Registriert: 17.12.2011 13:01
- Computerausstattung: Linux Mint 17.3 (Rosa) x64 | PB 5.42LTS x64 (Linux+Win)
- Wohnort: Arnsberg
Re: libusb-1.0 Include for Linux
Mahlzeit!
Ähm, also "laufen" tut es ohne Fehlermeldung, aber die Ausgabe kommt mir spanisch äh chinesisch vor
... dabei stören mich als ersten Schritt die Fehler nicht, sondern daß die Zeichenausgabe nicht funzt.
Das hier ist die Ausgabe der 1. Zeile:
Wobei ich davon ausgehe, daß Ascii die Entsprechung zu
http://libusb.sourceforge.net/api-1.0/s ... rsion.html: const char ist ?!
Dann habe ich mich gefragt: ist ein String unter Linux x64 evtl. #PB_UTF8, oder gar #PB_Unicode ???
Aber nichts hat funktioniert. Nun bin ich doch von C nach Basic gewechset, damit es einfacher wird!
(Nicht wirklich, aber passt in diesem Kontext )
Kann mir jemand, mit deutlich mehr Ahnung als ich, da evtl. weiter helfen?
Gruß,
Stefan
Ähm, also "laufen" tut es ohne Fehlermeldung, aber die Ausgabe kommt mir spanisch äh chinesisch vor
Code: Alles auswählen
Version: 1.0.22.11312琀潯洠湡⁹ (瑨灴⼺氯扩獵)
䥌啂䉓卟䍕䕃卓⼠䰠䉉单彂剔乁䙓剅䍟䵏䱐呅䑅
*context = 17408608
[ERR] LIBUSB::openDevice: 䥌啂䉓䕟剒剏䅟䍃卅S䥌啂䉓䕟剒剏也彏䕄䥖䕃䰀䉉单彂
Bus 004 Device 001: ID 1D6B:0003
[ERR] LIBUSB::openDevice: 䥌啂䉓䕟剒剏䅟䍃卅S䥌啂䉓䕟剒剏也彏䕄䥖䕃䰀䉉单彂
Bus 003 Device 001: ID 1D6B:0002
[ERR] LIBUSB::openDevice: 䥌啂䉓䕟剒剏䅟䍃卅S䥌啂䉓䕟剒剏也彏䕄䥖䕃䰀䉉单彂
Bus 002 Device 004: ID 05E3:0617
[ERR] LIBUSB::openDevice: 䥌啂䉓䕟剒剏䅟䍃卅S䥌啂䉓䕟剒剏也彏䕄䥖䕃䰀䉉单彂
Bus 002 Device 002: ID 2109:0811
[ERR] LIBUSB::openDevice: 䥌啂䉓䕟剒剏䅟䍃卅S䥌啂䉓䕟剒剏也彏䕄䥖䕃䰀䉉单彂
Bus 002 Device 003: ID 05E3:0612
[ERR] LIBUSB::openDevice: 䥌啂䉓䕟剒剏䅟䍃卅S䥌啂䉓䕟剒剏也彏䕄䥖䕃䰀䉉单彂
Bus 002 Device 001: ID 1D6B:0003
[ERR] LIBUSB::openDevice: 䥌啂䉓䕟剒剏䅟䍃卅S䥌啂䉓䕟剒剏也彏䕄䥖䕃䰀䉉单彂
Bus 001 Device 008: ID 046D:C52B
Bus 001 Device 007: ID 0BDA:2838 敒污整k 呒㉌㌸唸䥈䥄R
[...]
Das hier ist die Ausgabe der 1. Zeile:
Code: Alles auswählen
Procedure.s getVersionString()
Protected *version.libusb_version
Protected result.s
*version = getVersion()
With *version
result = Str(\major) + "." + Str(\minor) + "." + Str(\micro) + "." + Str(\nano)
If (\rc)
result + PeekS(\rc, #PB_Ascii)
EndIf
If (\describe)
result + " (" + PeekS(\describe, #PB_Ascii) + ")"
EndIf
EndWith
ProcedureReturn result
EndProcedure
http://libusb.sourceforge.net/api-1.0/s ... rsion.html:
Code: Alles auswählen
struct libusb_version {
const uint16_t major;
const uint16_t minor;
const uint16_t micro;
const uint16_t nano;
const char *rc;
const char* describe;
};
Dann habe ich mich gefragt: ist ein String unter Linux x64 evtl. #PB_UTF8, oder gar #PB_Unicode ???
Aber nichts hat funktioniert. Nun bin ich doch von C nach Basic gewechset, damit es einfacher wird!
(Nicht wirklich, aber passt in diesem Kontext )
Kann mir jemand, mit deutlich mehr Ahnung als ich, da evtl. weiter helfen?
Gruß,
Stefan
Re: libusb-1.0 Include for Linux
Ich habe die wesentlichen Teile aus meinem Code kopiert, vielleicht hilft es. Ich verwende Windows, es sollte aber keinen Unterschied zu Linux geben.
Peter
Peter
Code: Alles auswählen
;- -- Strukturen LibUsb.
#iLibUsbStructureAlignment = #PB_Structure_AlignC
;- libusb_version.
Structure uVersion Align #iLibUsbStructureAlignment
iMajor.u
iMinor.u
iMicro.u
iNano.u
*aReleaseCandidate.Ascii
*aDescribe.Ascii
EndStructure
Procedure.i GetVersion(*sVersion.String, *sDescription.String, *sError.String)
; Ermittelt die Versionsnummer und Beschreibung der LibUsb.
; <- sVersion: Versionsnummer als Zeichenfolge, z.B.: "1.0.15.10646-rc4".
; <- sDescription: Beschreibung, z.B.: "http://libusb.info".
; <- sError: Fehlerbeschreibung.
; Rückgabe: True wenn die Versionsnummer ermittelt wurde, ansonst False.
; const struct libusb_version * libusb_get_version(void)
Protected *uVersion.uVersion
Protected fReturn.i, iChars.i
If (Not *sVersion)
*sError\s = CurrentProcedureName + "Der Zeiger für die Version ist Null. *sVersion = 0"
ElseIf (Not *sDescription)
*sError\s = CurrentProcedureName + "Der Zeiger für die Beschreibung ist Null. *sDescription = 0"
Else
*uVersion = libusb_get_version()
fReturn = Bool(*uVersion)
If (Not fReturn)
*sVersion\s = #Null$
*sDescription\s = #Null$
*sError\s = CurrentProcedureName + "Es wurde ein Null-Zeiger zurückgegeben."
EndIf
If fReturn
With *uVersion
*sVersion\s = StrU(\iMajor, #PB_Word) +
"." + StrU(\iMinor, #PB_Word) +
"." + StrU(\iMicro, #PB_Word) +
"." + StrU(\iNano, #PB_Word)
If \aReleaseCandidate
iChars = MemoryStringLength(\aReleaseCandidate, #PB_Ascii)
If iChars
If (iChars > 32)
iChars = 32
EndIf
*sVersion\s + PeekS(\aReleaseCandidate, iChars, #PB_Ascii)
EndIf
EndIf
If \aDescribe
iChars = MemoryStringLength(\aDescribe, #PB_Ascii)
If iChars
If (iChars > 64)
iChars = 64
EndIf
*sDescription\s = PeekS(\aDescribe, iChars, #PB_Ascii)
EndIf
EndIf
EndWith
EndIf
EndIf
ProcedureReturn fReturn
EndProcedure
- NicTheQuick
- Ein Admin
- Beiträge: 8675
- Registriert: 29.08.2004 20:20
- Computerausstattung: Ryzen 7 5800X, 32 GB DDR4-3200
Ubuntu 22.04.3 LTS
GeForce RTX 3080 Ti - Wohnort: Saarbrücken
- Kontaktdaten:
Re: libusb-1.0 Include for Linux
Alle PeekS im Code müssen korrigiert werden von PeekS(\describe, #PB_Ascii) zu PeekS(\describe, -1, #PB_Ascii).
- pcfreak1201
- Beiträge: 38
- Registriert: 17.12.2011 13:01
- Computerausstattung: Linux Mint 17.3 (Rosa) x64 | PB 5.42LTS x64 (Linux+Win)
- Wohnort: Arnsberg
Re: libusb-1.0 Include for Linux
Danke Peter!
Habe mal quick und dirty die Struktur getauscht, und zumindest etwas mehr "lesbaren Output":
Es scheint also an der Struktur bzw. Alignment zu liegen.
Mal sehen, ob ich am WE etwas Zeit dafür finden kann...
Habe mal quick und dirty die Struktur getauscht, und zumindest etwas mehr "lesbaren Output":
Code: Alles auswählen
Version: 1.0.22.11312 (http://libusb.info)
䥌啂䉓卟䍕䕃卓⼠䰠䉉单彂剔乁䙓剅䍟䵏䱐呅䑅
*context = 24879856
Mal sehen, ob ich am WE etwas Zeit dafür finden kann...
- pcfreak1201
- Beiträge: 38
- Registriert: 17.12.2011 13:01
- Computerausstattung: Linux Mint 17.3 (Rosa) x64 | PB 5.42LTS x64 (Linux+Win)
- Wohnort: Arnsberg
Re: libusb-1.0 Include for Linux
Japp, das war es:
Code: Alles auswählen
Version: 1.0.22.11312 (http://libusb.info)
LIBUSB_SUCCESS / LIBUSB_TRANSFER_COMPLETED
*context = 13488848
[ERR] LIBUSB::openDevice: LIBUSB_ERROR_ACCESS
Bus 004 Device 001: ID 1D6B:0003
[ERR] LIBUSB::openDevice: LIBUSB_ERROR_ACCESS
Bus 003 Device 001: ID 1D6B:0002
[ERR] LIBUSB::openDevice: LIBUSB_ERROR_ACCESS
Bus 002 Device 004: ID 05E3:0617
[ERR] LIBUSB::openDevice: LIBUSB_ERROR_ACCESS
Bus 002 Device 002: ID 2109:0811
[ERR] LIBUSB::openDevice: LIBUSB_ERROR_ACCESS
Bus 002 Device 003: ID 05E3:0612
[ERR] LIBUSB::openDevice: LIBUSB_ERROR_ACCESS
Bus 002 Device 001: ID 1D6B:0003
[ERR] LIBUSB::openDevice: LIBUSB_ERROR_ACCESS
Bus 001 Device 008: ID 046D:C52B
Bus 001 Device 007: ID 0BDA:2838 Realtek RTL2838UHIDIR