de:netzer:commands_io

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
de:netzer:commands_io [2014/01/04 16:03] – [Kommandoschnittstelle des IO-Projektes] sveschde:netzer:commands_io [2025/06/11 20:42] (current) – external edit 127.0.0.1
Line 1: Line 1:
 +====== Kommandoschnittstelle des IO_pro Projektes ======
 +
 +Ab Version 1.5 wird die [[commandinterface|Kommandoschnittstelle]] unterstützt.
 +
 +
 +===== Kanäle =====
 +
 +Zum Zugriff auf die Kommandoschnittstelle stehen drei Kanäle zur Verfügung:
 +
 +  * [[websockets|WebSocket]]
 +  * [[actioncgi|CGI]]
 +  * [[commandserver|Kommandoserver]]
 +
 +
 +===== Befehle =====
 +
 +
 +
 +
 +==== Übersicht ====
 +^ Befehl ^ Typ ^ Beschreibung ^
 +| q  | Untermenü  | Zugriff auf den Prozess  |
 +| qi  | Untermenü  | Flags und Werte aller Prozess-Eingabe-Register  |
 +| qif  | Untermenü  | Flags aller Prozess-Eingabe-Register  |
 +| qif//[0-7]//  | BOOL  | Flag eines einzelnen Prozess-Eingabe-Registers  |
 +| qiv  | Untermenü  | Werte aller Prozess-Eingabe-Register  |
 +| qiv//[0-7]//  | WORD  | Wert eines einzelnen Prozess-Eingabe-Registers  |
 +| qm  | ENUM:ValidationResult_t  | Zustand des geladenen Prozessabbilds  |
 +| qo  | Untermenü  | Flags und Werte aller Prozess-Ausgabe-Register  |
 +| qof  | Untermenü  | Flags aller Prozess-Ausgabe-Register  |
 +| qof//[0-7]//  | BOOL  | Flag eines einzelnen Prozess-Ausgabe-Registers  |
 +| qov  | Untermenü  | Werte aller Prozess-Ausgabe-Register  |
 +| qov//[0-7]//  | WORD  | Wert eines einzelnen Prozess-Ausgabe-Registers  |
 +| qs  | WORD  | Gibt an, ob der Prozess läuft; auf 1 setzen startet den Prozess; auf 0 setzen stoppt den Prozess; 2 zeigt einen Fehler an und ist kein gültiger Wert für Zuweisungen  |
 +| s  | Untermenü  | Seriell  |
 +| su  | Untermenü  | UART-Konfiguration  |
 +| sub  | ENUM:UARTBaudrates_t  | UART-Bitrate  |
 +| sup  | ENUM:UARTParityModes_t  | UART-Parität  |
 +| t  | Untermenü  | Trigger für Events  |
 +| tq  | Untermenü  | Trigger-Menu für den Prozess  |
 +| tqi  | Untermenü  | Trigger-Menu für Prozess-Eingabe-Register  |
 +| tqif  | Untermenü  | Trigger für alle Flags der Prozess-Eingabe-Register  |
 +| tqif//[0-7]//  | ENUM:EventMode_t  | Trigger für Flag eines einzelnen Prozess-Eingabe-Registers  |
 +| tqo  | Untermenü  | Trigger-Menu für Prozess-Ausgabe-Register  |
 +| tqof  | Untermenü  | Trigger für alle Flags der Prozess-Ausgabe-Register  |
 +| tqof//[0-7]//  | ENUM:EventMode_t  | Trigger für Flag eines einzelnen Prozess-Ausgabe-Registers  |
 +| tu  | Untermenü  | Trigger-Menu des GPIO-Servers  |
 +| tuv  | Untermenü  | Trigger für alle Werte der GPIO-Ports  |
 +| tuv//[0-c]//  | ENUM:EventMode_t  | Trigger für Wert eines einzelnen GPIO-Ports  |
 +| tuvx  | ENUM:EventMode_t  | Trigger für (binäre) Werte aller GPIO-Ports in einer einzelnen Zahl  |
 +| u  | Untermenü  | GPIO-Server  |
 +| ue  | Untermenü  | Flankenzählerkonfiguartion aller GPIO-Ports (obwohl nur Port 0 bis 2 Falnkenzähler unterstützen)  |
 +| uev  | Untermenü  | Werte der Flankenzähler aller Pins  |
 +| uev//[0-2]//  | WORD  | Wert eines einzelnen Flankenzählers  |
 +| ut  | Untermenü  | Typen aller GPIO-Ports  |
 +| ut//[0-c]//  | ENUM:PortType_t  | Typ eines einzelnen GPIO-Ports  |
 +| uv  | Untermenü  | Werte aller GPIO-Ports  |
 +| uv//[0-c]//  | WORD  | Wert eines einzelnen GPIO-Ports  |
 +| uvx  | WORD  | (binäre) Werte aller GPIO-Ports in einer einzelnen Zahl  |
 +
 +Eckige Klammern stehen für jeweils eine einzelne Hexadezimalziffer. 
 +Dabei geben die (ebenfalls hexadezimalen) Zahlen innerhalb der Klammern das (geschlossene) Intervall der validen Werte an
 +
 +<WRAP center round box 60%>
 +An Stelle von //[0-c]// sind die Hexadezimalziffern ''0'', ''1'', ''2'', ''3'', ''4'', ''5'', ''6'', ''7'', ''8'', ''9'', ''a'', ''b'' und ''c'' möglich.
 +</WRAP>
 +
 +Mehrere Klammern innerhalb eines Befehls werden als kontinuierliches Intervall interpretiert, nicht als einfache Konkatenation der Ziffern. 
 +Nur die Intervallgrenzen werden durch die Konkatenation der Ziffern innerhalb der eckigen Klammern gebildet.
 +
 +<WRAP center round box 60%>
 +//[0-1][0-c]// entspricht dem mathematischen Intervall ''[0x00, 0x1c]'' und steht für die möglichen Befehle ''00'', ''01'', ''02'', ''03'', ''04'', ''05'', ''06'', ''07'', ''08'', ''09'', ''0a'', ''0b'', ''0c'', **''0d'', ''0e'', ''0f''**, ''10'', ''11'', ''12'', ''13'', ''14'', ''15'', ''16'', ''17'', ''18'', ''19'', ''1a'', ''1b'' und ''1c''.
 +
 +**Beachte:** Die Werte ''0d'', ''0e'' und ''0f'' sind möglich, obwohl sie nicht durch einfache Konkatenation der Ziffern aus //[0-1]// und //[0-c]// gebildet werden können.
 +</WRAP>
 +
 +
 +
 +==== Befehlsbaum ====
 +
 +{{ commandtree-io.svg?1000 |}}
 +
 +
 +==== Events ====
 +
 +Für bestimmte Werte können Events aboniert bzw. Trigger gesetzt werden. Wurde ein Event für einen bestimmten Wert aboniert, so wird dieser Wert beim eintreten des Events automatisch an den Client gesendet. Der Wert wird über den Kanal gesendet, über den auch das Event aboniert wurde.
 +
 +Den Befehl zum Abonieren eines Events erhält man, indem man dem zum Wert gehörigen Befehl ein ''t'' (wie Trigger) voranstellt. Mögliche Werte für den Trigger selbst sind:
 +^ Wert ^ Bedeutung ^
 +| 0 | aus |
 +| 1 | Trigger für fallende Flanken |
 +| 2 | Trigger für steigende Flanken |
 +| 3 | Trigger für steigende und fallende Flanken |
 +
 +<WRAP center round box 60%>
 +''tqof0=2'' aboniert das Event //steigende Flanke// für das Flag des Prozess-Ausgabe-Registers mit dem Index 0. Sobald das Flag gesetzt wird, wird die Nachricht ''{"q":{"o":{"f":{"0":true}}}}'' automatisch an den Client gesendet.
 +
 +</WRAP>
 +
 +
 +=== Voreingestellte Events ===
 +
 +Wenn über die GPIO-Webseite des Netzers Events eingestellt werden, so werden diese beim aktivieren eines neuen Kanals automatisch aboniert. 
 +Dies ist allerdings nur für ''uv0'' bis ''uvc'' möglich, da alle anderen Events nicht über die GPIO-Webseite eingestellt werden können.
 +
 +