PC-Programm zum Parametrieren der Lokfahrtregler der Version 2

Bei diesem Programm ging es darum, von dem Runtime-Datei-Geraffel von VB wegzukommen und das Programm als einteilige EXE-Datei zur Verfügung zu stellen. Weiterhin war wichtig, Versionen für Linux und Mac-OSX compilieren zu können, da einige Benutzer dieses RC-Lok-Steuersystems keine Windows-Benutzer sind. Das Programm wurde deshalb mit der kostenlosen Demo-Version von PureBasic erstellt. Es war übrigens mein erster Test mit PureBasic, sozusagen zum Evaluieren...

Das Programm unterstützt das Auslesen und Beschreiben der CVs (ConfigurationsVariablen, Bezeichnung von DCC-Digital abgeguckt), das Speichern und laden der CV-Listen am Computer, sowie das komfortable Ändern der Einstellungen.

Es folgt eine kurze Erklärung zur Oberfläche und Bedienung.

Das Programm startet im Tab "Lokfahrtregler", in dem der Lokfahrtregler über eine serielle Schnittstelle ausgelesen und beschrieben werden kann. Man kann aus einer Liste einen von 4 Schnittstellennamen auswählen oder einen eigenen Schnittstellennamen eingeben. Beim Windows-PC werden COM-Schnittstellen angegeben, beim Linux-PC TTY-Schnittstellen und beim Mac wieder andere. Diese lassen sich im Kopf des Quelltextes vorgeben. Neben einem (jetzt verdeckten) Button zum Test des Serialports gibt es die Buttons zum Auslesen und Beschreiben des Lokfahrtreglers.

Die große Liste dient der Anzeige eines Reportberichtes über alle Einzelheiten des Serial-Port-Zugriffs zum Zwecke der Fehlersuche bei Problemen.

Es wurde ein Lokfahrtregler ausgelesen. Dabei wurde am unteren Rand des Fensters eine Fortschrittsanzeige angezeigt. Die Liste zeigt alle Einzelheiten des Portzugriffs. Oben rechts gibt es Buttons zum Speichern und Löschen der Reportliste, das Speichern erleichtert Ferndiagnode bei eventuellen Problemen.

Der Button "Schnittstelle testen" muss nicht vor jedem Einlesen oder Schreiben betätigt werden, er dient nur zum Test, wenn man nicht sicher ist, dass der richtige Port ausgewählt wurde. Dieser Test wird aber auch vor jedem Einlesen oder Schreiben durchgeführt.

Ansicht nach dem Beschreiben des Lokfahrtreglers. Der gesamte Datenverkehr auf dem Serialport wird protokolliert. Dabei findet auch ein Verify durch Vergleich der gesendeten Daten mit den empfangenen Daten statt. Der Datenverkehr ist so "geschwätzig", damit der Lokfahrtregler auch von jedem stinknormalen Terminal im Dialog angesprochen werden kann. Die Texte sind sozusagen die Benutzerführung an der Konsole (am Terminal).
Dieser Tab dient zum Laden und Speichern von CV-Listen (Parameterdateien) von/auf Datenträger des Rechners. Die Dateien werden im Textformat gespeichert, jede Zeile enthält die CV-Nummer (EEPROM-Adresse des ATTiny2313), ein Komma und den CV-Wert.

Die linke Liste enthält die per Serialport oder von Datei eingelesene CV-Liste bzw. Datei. Sie ist so breit, damit man fälschlicherweise geöffnete andere Textdateien, die keine CV-Listen enthalten, schnell erkennen (und lesen) kann.

Die rechte Liste zeigt die tatsächlichen CVs an, auch nach Veränderung der Werte.

Die Voransicht rechts oben zeigt die Motor-Kennlinie und die Loknummer an, das erlaubt einen schnellen Überblick ohne viel Klickerei. Editiert werden die CV-Werte in den beiden rechten Tabs.

Mit den beiden Buttons für laden und speichern werden Requester für Datei öffnen bzw. Speichern aufgerufen und die darin gewählten oder eingegebenen Dateien geöffnet bzw. gespeichert. Der Ordner, der beim Aufruf gezeigt wird, wird im Kopf des Quelltextes des Programms für jedes Betriebssystem separat eingestellt.
Nach dem Laden einer Datei wird im unteren Textfeld der Dateiname mit komplettem Path angezeigt. Auch der Tooltip-Text der linken Liste verweist darauf, dass die CV-Liste aus einer Datei geladen wurde.
Rechts unten lassen sich Loknummer, Trägheit und PWM-Frequenz des Motortreibers einstellen.

Rechts oben wird sie Motor-Kennlinie manipuliert, das Ergebnis wird dabei im Diagramm links gezeigt.

Die kleinen grünen Punkte stellen die aktuellen Fahrwerte der einzelnen Fahrstufen gemäß der CVs dar. Damit die Kurve besser erkennbar ist, sind diese Punkte durch eine grüne Linie verbunden.

Die dickeren roten Punkte sind die "Eckpunkte" beim Neuzeichnen der Kennlinie. Sie lassen sich mit den im Feld rechts oben befindlichen linken Spins (Zahleneinsteller) über die Fahrstufen verschieben. Der erste und letzte Punkt ist natürlich fest, da ein Verschieben keinen Sinn ergeben würde. Denn die Kurve beginnt immer mit Fahrstufe 0 und endet immer bei Fahrstufe 50. Es lassen sich also nur die 4 dazwischenliegenden roten Punkte waagerecht verschieben.

Man setzt nun die roten Punkte auf die Fahrstufen, an denen die Kennlinie einen Knick machen soll. Danach stellt man mit den rechten Spins die Fahrwerte der roten Punkte ein, verschiebt sie also senkrecht. Die rote Linie zeigt dabei als Voransicht die neue Kennlinie.

Weiter im nächsten Bild...

Hier sieht man, dass die neue Kurve bei einem niedrigeren Fahrwert beginnt, im unteren Bereich flacher verläuft, im oberen Bereich dann recht steil wird und am Ende den maximalen Fahrwert (PWM-Tastgrad) von 255 erreicht. Dies ermöglicht sanftes Anfahren, präzises Langsamfahren beim Rangieren, aber auch maximales Tempo, das aber nicht ganz so feinfühlig steuerbar.
Ein Mausklick auf den Button "Kurve berechnen" berechnet die PWM-Werte (Tastgrad) aller Fahrstufen neu und ersetzt dabei auch alle CVs der Fahrstufen.

Dieser Vorgang kann mehrmals hintereinander erfolgen.

Der Lokfahrtregler hat 4 Lichtmodi, die separat konfiguriert werden können und während des Betriebes der Lok durch Zifferntaste 8 und 9 und den Funktionskipptaster ausgewählt werden können. Mit dem Spin rechts oben wählt man aus, welcher Lichtmodus beim Einloggen der Lok aktiv sein soll. Dies muss nicht unbedingt Modus 1 sein.

Die 4 großen Felder links zeigen die einzelnen Lichtmodi. Die stilisierten Loks sollen zeigen, wo vorn und wo hinten ist und wierum die Lok fährt. Die Checkboxen (Häkchen) ermöglichen dann das Ein- oder Ausschalten der weißen oder roten Stirnbeleuchtung in der jeweiligen Fahrsituation. Die aktuell sichtbare Einstellung zeigt folgende Situationen:

  1. Leerfahrt (vorn weiß, hinten rot)
  2. Rangierfahrt (rundrum weiß)
  3. Zug hinten am Haken
  4. Zug vorn am Haken
Rechts unten sind Einstellungen für die 3 Schaltfunktionen möglich. Im Normalbetrieb sind jeweils beide Werte auf 0 gesetzt, wodurch der Ausgang ganz normal ein- und ausgeschaltet werden kann. Stellt man nur den Aus-Wert auf einen Wert größer als 0 ein, dann wird die Schaltfunktion nach Ablauf dieser Zeit selbsttätig ausgeschaltet, was z.B. beim Entkuppler sinvoll ist. Werden beide Werte größer 0 gesetzt, dann arbeitet der Schaltausgang als Blinker. Das Zeitraster beträgt 10 ms, ein Dimmen von LEDs ist damit nicht möglich. Sinnvolle Anwendungen sind z.B. das Begrenzen der anteiligen Einschaltdauer eines Rauchentwicklers für 5 V bzw. 6 V oder das Blinken einer LED als Rundumleuchte.


Die Windows-Version des Programms kann hier heruntergeladen werden, die Versionen für Linux oder Mac kann ich nicht compilieren. Quelltext gibt es auf Anfrage.
Inzwischen erreichte mich folgende Meldung von Christoph, der das Programm unter Linux compiliert hat und benutzt:

Das von mir compilierte Programm läuft inzwischen sogar ohne Rootrechte :-) Wenn du willst, kannst du es mit zum Download bereit stellen. Die Version ist unter Linux Ubuntu 12.04 LTS getestet. Na dann mache ich das doch glatt... Hier gibt es die Linux-Version...

Mein Windoof erlaubt es nicht, eine Datei ohne Extension hochzuladen und hängt immer ".dat" an. Also bitte die Datei umbenennen und das ".dat" wieder entfernen. - Danke...