Aktuelle Zeit: 28.10.2020 07:27

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 28 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3
Autor Nachricht
 Betreff des Beitrags: Re: libusb-1.0 Include for Linux
BeitragVerfasst: 20.09.2018 11:02 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
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. :lol:

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.

_________________
Ubuntu Gnome 20.04 LTS x64, PureBasic 5.72 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60, 5.71b2)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: libusb-1.0 Include for Linux
BeitragVerfasst: 02.01.2020 15:55 
Offline
Benutzeravatar

Registriert: 17.12.2011 13:01
Wohnort: Arnsberg
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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: libusb-1.0 Include for Linux
BeitragVerfasst: 02.01.2020 18:31 
Offline
Benutzeravatar

Registriert: 11.08.2005 19:08
@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/PureBasic-CodeArchiv-Rebirth/tree/master/Hardware/pbusb

_________________
Bild
Warum OpenSource eine Lizenz haben sollte
PureBasic-CodeArchiv-Rebirth: Git-Repository / Download – Jede Hilfe ist willkommen!
Manjaro Xfce x64 (Hauptsystem) :: WindowsXP/Xubuntu x86 (VirtualBox) :: PureBasic (Linux: x86/x64, Windows: x86) :: jeweils neueste Version


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: libusb-1.0 Include for Linux
BeitragVerfasst: 10.01.2020 18:38 
Offline
Benutzeravatar

Registriert: 17.12.2011 13:01
Wohnort: Arnsberg
Mahlzeit!

Ähm, also "laufen" tut es ohne Fehlermeldung, aber die Ausgabe kommt mir spanisch äh chinesisch vor 8)

Code:
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
[...]


... dabei stören mich als ersten Schritt die Fehler nicht, sondern daß die Zeichenausgabe nicht funzt.
Das hier ist die Ausgabe der 1. Zeile:

Code:
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

Wobei ich davon ausgehe, daß Ascii die Entsprechung zu
http://libusb.sourceforge.net/api-1.0/structlibusb__version.html:
Code:
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;
 };
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! :oops:
(Nicht wirklich, aber passt in diesem Kontext :mrgreen:)

Kann mir jemand, mit deutlich mehr Ahnung als ich, da evtl. weiter helfen?

Gruß,
Stefan


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: libusb-1.0 Include for Linux
BeitragVerfasst: 10.01.2020 19:06 
Offline

Registriert: 26.11.2017 16:17
Wohnort: Wien
Ich habe die wesentlichen Teile aus meinem Code kopiert, vielleicht hilft es. Ich verwende Windows, es sollte aber keinen Unterschied zu Linux geben.

Peter

Code:
   ;- -- 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


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: libusb-1.0 Include for Linux
BeitragVerfasst: 10.01.2020 19:10 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Alle PeekS im Code müssen korrigiert werden von PeekS(\describe, #PB_Ascii) zu PeekS(\describe, -1, #PB_Ascii).

_________________
Ubuntu Gnome 20.04 LTS x64, PureBasic 5.72 x64 (außerdem 4.41, 4.50, 4.61, 5.00, 5.10, 5.11, 5.21, 5.22, 5.30, 5.31, 5.40, 5.50, 5.60, 5.71b2)
"Die deutsche Rechtschreibung ist Freeware, du darfst sie kostenlos nutzen – Aber sie ist nicht Open Source, d. h. du darfst sie nicht verändern oder in veränderter Form veröffentlichen."


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: libusb-1.0 Include for Linux
BeitragVerfasst: 10.01.2020 19:43 
Offline
Benutzeravatar

Registriert: 17.12.2011 13:01
Wohnort: Arnsberg
Danke Peter!

Habe mal quick und dirty die Struktur getauscht, und zumindest etwas mehr "lesbaren Output":
Code:
Version: 1.0.22.11312 (http://libusb.info)
䥌啂䉓卟䍕䕃卓⼠䰠䉉单彂剔乁䙓剅䍟䵏䱐呅䑅
*context = 24879856

Es scheint also an der Struktur bzw. Alignment zu liegen.
Mal sehen, ob ich am WE etwas Zeit dafür finden kann...


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: libusb-1.0 Include for Linux
BeitragVerfasst: 10.01.2020 19:51 
Offline
Benutzeravatar

Registriert: 17.12.2011 13:01
Wohnort: Arnsberg
Japp, das war es: :bounce:

Code:
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


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 28 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 8 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye