22-Show (SysMonitor per STM32F429-Disco)

Beschreibung :

Der System-Monitor ist ein PC-Programm (für Win-XP, Vista, 7)
das “System-Informationen” vom PC als Strings über die UART-Schnittstelle
zu einem angeschlossenen Mikrocontroller sendet
und über den Rückkanal können einige “Steuerbefehle” an den PC gesendet werden.

Im Moment ist das ganze noch eine Alpha-Version und in Arbeit.
(Anregungen und Verbesserungsvorschläge sind wie immer willkommen)

System-Informationen :
> Datum/Uhrzeit
> alle Sensor-Daten vom Programm “OpenHardwareMonitor.exe”
(Also CPU-Temperatur, RAM-Auslastung usw)
> WinAmp Daten
(Track-Name, Track-Länge, Track-Position)
Es werden event. noch andere Sachen dazukommen
(z.B. das auslesen vom EMail-Status, RSS-Feeds usw.)

Steuerbefehle :
> WinAmp Befehle
(VOLUME, PLAY, STOP, PAUSE, NEXT, PREV)

Falls ihr da Ideen dazu habt welche Sachen noch nützlich wären immer her damit !!

Funktionsweise :

Die “System-Informationen” können vom Mikrocontroller aus entweder durch spezielle Kommandos gepollt werden oder es kann im PC-Programm ein Script-File erstellt werden, das zyklisch abgearbeitet wird und den Mikrocontroller automatisch mit den “System-Informationen” versorgt.

Minimal-Beispiel zum auslesen der aktuellen Uhrzeit :

Um die aktuelle Uhrzeit auszulesen, muss der uC den String “GET_SYS_TIME”
an den PC senden, der SysMonitor antwortet dann mit “Value=13:57:24″
(wobei “13:57:24″ hier die aktuelle Uhrzeit darstellt)

Um das ganze als Script ablaufen zu lassen muss der Befehl “GET_SYS_TIME”
in den Editor eingetragen werden. Der SysMonitor sendet dann
jedesmal wenn er an dem Befehl vorbeikommt den String “GET_SYS_TIME”
und danach ”Value=13:57:24″ an den Mikrocontroller.

OpenHardwareMonitor :

Das kostenlose PC-Programm “OpenHardwareMonitor.exe” kann
verschiedene PC-Hardware-Sensoren auslesen und läuft
im Hintergrund im System-Tray.

ohm_01

Der SysMonitor greift diese Sensor-Daten ab und sendet sie
in den angeschlossenen Mikrocontroller weiter.

Weil jeder PC andere Komponenten eingebaut hat, kann ich
den Sensorwerten keinen festen Nummern zuordnen.
Ich habe es dann so gelöst, das der SysMonitor
alle gefunden Sensor-Daten einfach durchnummeriert
und man dann selbst nachschauen muss welche Nr. jetzt z.B.
der CPU-Temperatur entspricht. (bei mir z.B. Nr. 23)

sysmon_a07c

Um diesen Sensorwert zum Mikrocontroller zu senden,
kann der uC ihn entweder pollen per Befehl “GET_OHM_SENSOR:23″
dann wird der aktuelle Wert als String zurückgesendet
z.B. “Value=42.3″

Oder im Script kann der Befehl “GET_OHM_SENSOR:23″ eingetragen werden,
dann wird zyklisch “GET_OHM_SENSOR:23″ und “Value=42.3″ an den uC gesendet.

WinAmp :

Das kostenlose PC-Programm “WinAmp.exe” ist ein MP3-Player.

Der SysMonitor kann die Daten vom aktuellen Track auslesen
und die Grundfunktionen vom Player steuern.
z.B. “GET_WINAMP_TITLE” ließt den Track-Namen aus
oder “WINAMP_NEXT” springt zum nächsten Track.

Script :

Um die Software vom uController einfach zu halten, kann die Steuerung
vom auslesen der “System-Informationen” per Script-File vom PC gesteuert werden.

Das Script-File ist ein einfaches Text-File, das zyklisch Zeile für Zeile vom SysMonitor
abgearbeitet wird. In jeder Zeile kann ein einzelner Befehl stehen.

Leerzeilen werden übersprungen und Zeilen die mit “//” beginnen auch
(diese können als Kommentarzeilen benutzt werden)

Alle Zeilen die nicht einem gültigen Befehle entsprechen, werden 1:1 zum
Mikrocontroller weitergeleitet und können dort ausgewertet werden
um z.B. eine neue Seite aufzubauen oder eine Überschrift einzublenden
oder den Screen zu löschen usw.

Befehls-Liste (von Version A.09) :

SPEED=100 (stellt die Geschwindigkeit der Script Abarbeitung auf 100 ms ein)
DELAY=50 (fügt eine Pause von 50 ein)
DO (Startpunkt für die folgende Repeat-Anweisung)
REPEAT=10 (Wiederholt den DO/Repeat-Block 10 mal)
GET_SYS_DATE (sendet das aktuelle Datum an den uC)
GET_SYS_TIME (sendet die aktuelle Uhrzeit an den uC)
GET_OHM_SENSOR:5 (sendet den Wert von Sensor Nr-5 vom OpenHardwareMonitor an den uC)
GET_WINAMP_TITLE (sendet den aktuellen MP3-Titel an den uC)
GET_WINAMP_STATUS (senden den Status PLAY,STOP,PAUSE an den uc)
GET_WINAMP_TIME (sendet die verstrichene Zeit an den uC)
GET_WINAMP_LEN (sendet die Länge vom MP3-Titel an den uC)
SET_WINAMP_VOL=128 (stellt die Lautstärke ein)
WINAMP_PLAY (PLAY vom MP3)
WINAMP_STOP (STOP vom MP3)
WINAMP_PAUSE (PAUSE vom MP3)
WINAMP_NEXT (nächster Titel)
WINAMP_PREV (vorheriger Titel)

Syntax der Messdaten :

Jeder Datenwert/Messwert wird als String zum Mikrocontroller gesendet
und beginnt mit dem Text “Value=”

Beispiel CPU-Temperatur = 42.3°C -> String : “Value=42.3″
Beim auswerten im uC muss das “Value=” wieder abgeschnitten werden.

Falls ein Sensorwert nicht ermittelt werden kann, wird als String “Value=?” gesendet.

Software :

Hier die Alpha vom SysMonitor als Download:

Sys_Monitor_UB_va09

System-Monitor, Version Alpha 0.9


Hier ein Quick&Dirty uC-Programm (für das F429-Disco)
das als Demo dienen soll und auf das Script vom SysMonitor angepasst ist.

Show_22_SYSMonitor_va09

SysMonitor für F429-Disco, Versio Alpha 0.9


Wie hat Dir dieser Artikel gefallen?

1 Stern2 Sterne3 Sterne4 Sterne5 Sterne (Noch keine Bewertungen)
Loading...

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.