"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

S: Tool zum erstellen einer einfachen GUI Keyboard only (Win / Linux)

Kerni 08.06.2015 - 07:54 2738 7 Thread rating
Posts

Kerni

Big d00d
Avatar
Registered: Jul 2008
Location: Wels /OÖ
Posts: 133
Hi,

Ich suche für ein Car-PC Projekt ein Programm um eine einfache GUI zu erstellen.
Da ich eher der FPGA / C Typ bin, habe ich nicht so den Überblick was mich am schnellsten zu meinem Ziel bringt.

Zu den Anforderungen:

Es sollte sowenig arbeit wie möglich sein :)
Es sollte mit C, C++ ansprechbar sein.
Grafisch muss es nicht unbedingt sein (Console text only würde auch reichen)
Zur Verfügung habe ich einen Raspberry PI oder ein AMD E350 board
Es muss Keyboard only bedienbar sein (der µC gibt sich als USB HID aus)
Ein paar Buttons und Checkboxen(für libvlc)
Ein paar Werte darstellen(zB Öltemperatur, Ladedruck, Beschleunigung) werden vom µC vom Can Bus ausgelesen und per USB Serial übertragen.
Auflösung wird 400x234 Pixel sein.

Folgendes habe ich bereits versucht:
Da ich bereits ein paar kleine Steuerungs GUIs mit GTK+ (Glade) erstellt habe, dachte ich probiers mal damit. Leider habe ich keine Möglichkeit gefunden mir möglichst auffällig den aktuellen Fokus der Buttons anzuzeigen. (google brachte mich auch nicht weiter)
Hier das Ergebnis, man kann es zwar per Keyboard bedienen aber man sieht leider nicht wo sich der Fokus aktuell befindet.

click to enlarge

Hoffe ich habs halbwegs verständlich erklärt was ich brauche :)

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Ich hätte dir jetzt Glade oder die Qt-Tools vorgeschlagen :D. Du könntest ja jedes klickbare Element in einen eigenen Container mit Innenabstand geben und dann beim onfocus-Event dessen Hintergrundfarbe ändern (oder so). Vielleichts hilfts auch, das GTK-Theme zu ändern. Das ist iirc CSS-basiert und du kannst die gestrichelte Fokuslinie ums Element einfach verbreitern.

Natürlich gibts noch die altehrwürdigen wxWidgets. Ich find sie halt eher "meh" aber vielleichts passen sie dir ja genau rein.

Edit: oder sogar ncurses benutzen :eek:?
Bearbeitet von -=Willi=- am 08.06.2015, 10:06

t3mp

I Love Gasoline
Avatar
Registered: Mar 2003
Location: upstairs
Posts: 6254

Vinci

hatin' on summer
Registered: Jan 2003
Location: Wien
Posts: 5775
Kann akurat keine Hilfe anbieten, aber wenn du das Projekt nicht fein säuberlich dokumentiert hier postest, dann find ich dich! :D

11Fire01

Here to stay
Registered: Dec 2002
Location: austria
Posts: 2417
http://zetcode.com/gui/winapi/

hf :D

Edit: aso. aufm pi...

Kerni

Big d00d
Avatar
Registered: Jul 2008
Location: Wels /OÖ
Posts: 133
Erstmals danke für die Antworten, aufs einfärben beim on focus event wär ich nie gekommen :D
Habs jetzt mal so gelöst das beim focus-in-event einfach die Farbe des Textes des Buttons auf grün geändert wird. Hoffe man siehts später auf dem Display.

click to enlarge

An ncurses dachte ich auch kurz aber da wärs dann wahrscheinlich einfacher gewesen ich löte mir noch einen FPGA mit meinem text mode VGA Core dazu. :)

Zwecks Doku, werd ich im Benzinbrüderforum posten, wenn ich mal Zeit finde alles einzubauen und alles mal soweit funktioniert.
Um was es grob geht: da ich mir die 600€ + Arbeit für eine USB Buchse im Auto nicht leisten will und im vorherigen Auto auch ein Car PC (Aber mit Centrafuse als UI) war, dachte ich mir übernehme ich hald das ganze Zeugs.
Im neuen Auto gibts aber nicht mehr die Möglichkeit einfach einen Touchscreen reinzubauen, also werde ich das Navidisplay verwerden.
Das Navidisplay ist im Kofferraum mit dem Navisteuergerät per VGA verbunden wo ich per Analogswitches dazwischenhänge und per Tastendruck vorne umschalten kann.
Das Auto hat 2 verschiedene CAN Busse, einen schnellen im Motorraum, wo die Motorsteuergeräte draufhängen und einen langsamen wo alles was sich im Innenraum befindet angeschlossen ist (Scheibenheber, alle Tasten, Klima, Airbags :eek: etc).
Am Langsamen CAN Bus hänge ich mit einem µC drauf und höre mit.
Wenn vorne z.B. die Taste für Next Track gedrückt wird, tut das Radio nichts da es ja auf AUX-IN steht, ich kann aber mit dem µC den Tastendruck auswerten um dann bei der libvlc auf den nächsten Track schalten.

Meine Todos dafür sind noch:
Herausfinden wo man den Hirose GT17v 6 pin female und male kaufen kann.
Alles was mit libvlc zu tun hat.
Die Umrechnungsformeln für die zusätzlichen Werte am Bus zu finden(zb. Geschwindigkeit ist die Message mit der einer der IDs des ABS Moduls, Pro Rad ist in einem 8 Byte Datafield ein signed int reserviert. Der signed int muss dann noch durch 80 dividiert werden).
Alles einbauen :)

-=Willi=-

The Emperor protects
Avatar
Registered: Aug 2003
Location: ~
Posts: 1624
Ja, Text einfärben ist natürlich die bessere Variante zu meiner :D.

Kerni

Big d00d
Avatar
Registered: Jul 2008
Location: Wels /OÖ
Posts: 133
Naja text einfärben ist gerade schneller gegangen :)
Am navidisplay ist dann sicher eine schwarze umrandung bei dem ausgewählten button sinnvoller
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz