Handregler - Erste Ideen
Hardware
-
Modularer Aufbau, entweder als Tischregler, Handregler oder Funkregler.
| Prozessor | Atmega, Picopower | ||||
| Bedieninterface |
| ||||
| Display | LCD Charakter Display, mind. 2 Zeilen, mind. 16 Zeichen Farbdisplay, 1,8 Zoll, 128 x 176 Pixel | ||||
| Remote Interface | Kabel: Xpressnet Funk: Analog Devices ADF7025, lizenzfreier FSK Transceiver bei 868MHz Funk: XBee vom Maxstream.net (z.B. bei reichelt oder Sphinx) |
GUI
-
Das Userinterface besteht aus:
- Drehrad mit Push-Button:
im Lokmode: Speed, Stop
im Weichenmode: Schalten
im Menumode: Zahlenwerte, Enter. - Seitliche Taster für Schnellbedienung:
- "Change"
Lokmode, Weichenmode: nächste / vorherige Lok / Weiche wählen - "Mode"
Lokmode, Weichenmode, CV-Mode, Setup wählen - "Select"
braucht es das - ev. Knopf
- "Change"
- einfaches Numpad:
im Lokmode: Funktionen aufrufen
im Weichenmode: Adresseingabe
GUI, zweiter Entwurf
- Lokmenu
Im Lokmenu wird eine Lok mit angezeigt; Aktuelle Geschwindigkeit und aktuelle Funktionen.Lokmenu Drehrad drehen Ändert die aktuelle Fahrstufe, man kann nicht in die andere Fahrtrichtung drehen.
Wenn zugleich mit shift: Funktionsauswahl weiterschaltenDrehrad drücken Wenn eine Fahrstufe >0 gewählt ist, dann stoppt die Lok. Wechselt die Fahrtrichtung Cursor up/down wählt eine neue Lok aus der Lokdatenbank; in der Datenbank ist immer ein freier Eintrag 'neue Lok'. Center ruft die Eigenschaften dieser Lok auf - Adresse, Name, Anzahl Fahrstufen;
Shift + Center schaltet das Licht aus und ein.Softkeys Funktionsaufruf dieser Lok F1..F4; zugleich mit Shift: F5..F8; vorangeganger Shift-Dreh: Funktionen +8; +12; +16; +20; +24
Anzeige:
Es gibt folgende Bedienelemente und Tasten:
Drehrad mit Push-Button,
navimec (Cursor up, Cursor down, Cursor left, Cursor right, Center)
4 Softkeys (über dem Drehrad), ev. schwach beleuchtet
1 Hardkey (Nothalt), mit integrierter RT/GN LED, welche den Zustand des Systems anzeigt.
1 Alternate Key (Shifttaste).
Menus:
Auf der oberstem Ebene gibt es 4 Hauptmenus, diese werden mit Cursor links/rechts durchgescrollt. In allen Menus wirkt Nothalt immer als Systemstop / Start.
|--------------------| |-> LOK ON | | BBII #98 | | -------: >>> (25) | | F0* F1o F2o F3* | |--------------------|
Im Weichenmenu werden zwei Weichen / Signale nebeneinander angezeigt. Eine dieser beiden Weichen hat den 'Focus'. Es gibt innerhalb des Handreglers eine kleine Datenbank mit Weichenadressen, Namen und Typ.
| Weichenmenu | |
|---|---|
| Drehrad drehen | Ändert die aktuelle Adresse |
| Drehrad drücken | Wechselt den Focus links / rechts |
| Cursor up/down | wählt innerhalb des Focus eine Weichenadresse aus dem Cache bzw. aus dem Namensverzeichnis. |
| Center | ruft die Eigenschaften dieser Weiche auf - Adresse, Name, Typ; |
| Softkeys | F1 - F2: Schaltet die Weiche auf der linken Hälfte des Screens. F3 - F4: Schaltet die Weiche auf der rechten Hälfte des Screens. zugleich mit Shift: beide Focusfenster temporär um eine Einstellung zurückgedreht. |
|--------------------| |-> WEICHE ON | | HBf li1 | Sig Gl1 | | #0003 | #0010 | | 0 1 | 0 1 | |--------------------|
Im Progmenu wird PoM-Adresse CV-Adresse und CV-Inhalt angezeigt. Eines dieser beiden Felder hat den 'Focus'.
| Programmieren Menu | |
|---|---|
| Drehrad drehen | Ändert die aktuelle Zahl im Focus |
| Drehrad drücken | Wechselt den Focus zyklisch durch |
| Cursor up/down | wählt das jeweils letzte gültige CV+Daten Pärchen aus der History. |
| Center | wählt die Programmiertechnik aus: Registermode, CV-Mode |
| Softkeys | F1: read on Programming Track. F2: write on Programming Track. F3: PoM read. F4: PoM write. Shift + F3: Accessory PoM read. Shift + F4: Accessory PoM write. |
Im Setupmenu werden interne Einstellungen des Handregler gemacht.
| Setupmenu | |
|---|---|
| Drehrad drehen | Ändert die aktuelle Zahl im Focus |
| Drehrad drücken | Wechselt den Focus zyklisch durch |
| Cursor up/down | wählt das jeweilige Einstellungsmenu. |
| Center | stellt default wieder her |
| Softkeys | F1-F4: Aufruf der Einstellungen |
Einstellungen:
Slot-ID: Automatic oder Manual + ID-Eingabe
Display: Helligkeit, Abschaltzeit
Drehrad: Beschleunigung [aus | langsam | schnell]
Sprache: [D, UK]
DCC: default für Fahrstufen
Hardware für 2. Entwurf
Software
-
Xpressnet IF als Subtask
Stateengine für Menuführung
Keyboard (Interruptgesteuert, mit Softsleep für Stromsparen)
PC Handregler (z.B. für Rocrail)
- 13.10.2008: Der Handregler bekommt einen Mode, mit dem alle Kommando direkt an den PC durchgereicht werden und auch
die Anzeigen des Displays vom PC erstellt werden.
- 1.Im Regler Setupmenu wird eingestellt: Ich bin rocrail Regler [über Xpressnet | über USB]
Regler sendet: 0x3* <id> 0x20 0x01
Syntax: 0x3* <id> 0x20 <code> (<id> markiert den Regler, 0x20 = config_message, code = 1 -> 'Hello') - 2. Rocrail sendet Textfelder, z.B. textfeld[1][1]=("Welcome to"); und textfeld[1][10]=(" rocrail");
PC sendet: 0x3* <id> 0x21 0x00 0x00 'Welcome to'
Syntax: 0x3* <id> 0x21 <x> <y> [string] (<id> markiert den Regler, 0x21 = text_message,x,y: Positionen, String=max 12 Zeichen) - 3. Regler sendet Tastendrücke.
Regler sendet: 0x3* <id> 0x21 KEY_SOFT_1 0x01
Syntax: 0x3* <id> 0x21 Tastencode Parameter (Parameter: 0x01 = gedrückt, 0x00 losgelassen, bei Drehrad ist der Parameter die Anzahl der Rotates) - N. Rocrail entläßt den Regler wieder.
PC sendet: 0x3* <id> 0x20 0x00;
Syntax: 0x3* <id> 0x20 <code> (<id> markiert den Regler, 0x20 = config_message, code = 0 -> 'Good Bye')
Das sieht dann so aus (im Prinzip):
Hierzu wird die Kommunikation über das Xpressnet (bzw. jede andere Transportschicht) getunnelt.
In der lenz_parser.c:
case 0x3: // special Command push to XpressNet
xp_send_message(0x60 | pcc[1], pcc);
pc_send_lenz(pars_pcm = pcm_ack);
return;
break;
Stand der Funkanbindung, Tests
Letzter update: 23.07.2010
Erläuterungen:
ok: wurde getestet und hat funktioniert
new: ist neu kodiert/fehlerbereinigt, jedoch noch ungetestet
failed: ist beim Test nicht gegangen
System:
Connect, Disconnect: ok
Clock: ok
Clock Set: ok
Start, Halt, Stop: ok
Halt von Loks bei Disconnect: ok
Halt von Loks bei broken: ok
Autorecover nach broken: ok (aus SILENT)
mehrfache Handregler: untested
Stromsparfunktionen: not implemented
Networkquality: not implemented
Config der Zentrale: ok
Lok:
FS14: ok
FS28: ok
FS128: ok
Richtung: ok
kurze Addr: ok
lange Addr: ok
Nothalt: ok
Licht: ok
F1: ok
F5: ok
F8: ok
F28: ok
Lokübernahme von anderen Regler (Xpressnet): untested
Lokübernahme von anderen Regler (WRP): untested
Lokübernahme zu anderem Regler (Xpressnet): new
Lokübernahme zu anderen Regler (WRP): untested
Stolennachricht: ok
Pollen der geklauten Lok: failed
Probleme, Fehler:
Stolen bleibt am Schirm, wird nicht weggenommen
Die Fahrstufe wird nicht richtig angefragt
Gateway kommt bei stolen durcheinander (doppelte Anzeige)
Weiche:
Addr: ok
Schalten: ok
Abfrage: ok
extended Acc: ok
Prog:
Prog-Mode Anzeige: new
CV read: new
CV write: new
PoM read: new
PoM write: new
PoM Acc read: not implemented
PoM Acc Write: not implemented
PoM XAcc read: not implemented
PoM XAcc Write: not implemented
Addr set: new
Feedback:
Query: new
Send Feedback: new
Auto Notify: new
Links
-
Frequenzzuteilungen durch Bundesnetzagentur
Display Siemens S65 und AVR Diskussion in microcontroller.net
Display Nokia 6100 RGB-Tool
SPI.C
CMG Graphik Lib
www.roland-riegel.de SD Karten-Interface, Ethernet-AVR
XBEE Inbetriebnahme