Aktuelle Zeit: 18.06.2019 04:55

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 
Autor Nachricht
 Betreff des Beitrags: Device File (/dev/input) lesen
BeitragVerfasst: 21.11.2018 18:43 
Offline
Benutzeravatar

Registriert: 06.08.2005 22:56
Wohnort: Gernsbach
Hi,

nach etwa 7 Jahren Pause habe ich mal wieder den Weg zurueck zu PureBasic gefunden. RSBasic hat mich gestern auf eine interessante Idee gebracht: Er verwendet unter Windows eine separate Tastatur fuer Shortcuts. Das moechte ich jetzt unter Linux mit PureBasic umsetzen.

Ich habe schon rausgefunden wie man die Tastatureingaben direkt aus dem Device File liest und verhindert dass der X Server darauf reagiert. Also habe ich mal versucht in PB das Device File mit ReadFile zu oeffen und Bytes rauszulesen. Laut einem Blogartikel ist jedes Keyboard Event 24 Byte lang. Allerdings scheint PB mit den Read* Funktionen auf mehr Bytes zu warten.

Beispiel:
Code:
EnableExplicit
ReadFile(0, "/dev/input/event12")

Define *memory = AllocateMemory(24)
ReadData(0, *memory, 24)

Debug PeekS(*memory, 16) ; timestamp
Debug PeekW(*memory + 16); type
Debug PeekW(*memory + 18); code
Debug PeekL(*memory + 20); value


Wenn ich das Programm starte, wartet es trotz Eingabe auf der Tastatur auf ReadData. Erst nach etwa 30 Tastendruecken bekomme ich ein Ergebnis obwohl doch durch das erste Event (Key Down) schon 24 Bytes zum Lesen vorhanden sind. Es ist auch kein Read Timeout oder aehnliches, denn wenn ich keine Eingabe mache wartet das Programm ewig.

Mit dem Python Script aus dem Blogartikel funktioniert das Auslesen problemlos.

Hat jemand eine Idee was ich falsch mache?

_________________
BildBildBildBild


Zuletzt geändert von Programie am 21.11.2018 19:25, insgesamt 1-mal geändert.

Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Device File (/dev/input) lesen
BeitragVerfasst: 21.11.2018 19:12 
Offline
Admin
Benutzeravatar

Registriert: 05.10.2006 18:55
Wohnort: Deutschland::Berlin()
[ot]
Willkommen zurück. :allright:
[/ot]

_________________
BildBildBildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Device File (/dev/input) lesen
BeitragVerfasst: 21.11.2018 19:16 
Offline
Benutzeravatar

Registriert: 06.08.2005 22:56
Wohnort: Gernsbach
Problem gefunden: File Buffering

Bei ReadFile "#PB_File_NoBuffering" als Flag angegeben und tut.

_________________
BildBildBildBild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: Device File (/dev/input) lesen
BeitragVerfasst: 21.11.2018 20:35 
Offline
Ein Admin
Benutzeravatar

Registriert: 29.08.2004 20:20
Wohnort: Saarbrücken
Cool, halt uns mal auf dem Laufenden. :allright:

_________________
Freakscorner.de - Der Bastelkeller | Neustes Video: Neje DK - 1 Watt Laser Engraver
Ubuntu Gnome 18.04.1 LTS x64, PureBasic 5.60 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)
"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  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 4 Beiträge ] 

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast


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