Control6: Unterschied zwischen den Versionen
Stella (Diskussion | Beiträge) (Weiterleitung nach Kategorie:Control6 erstellt) |
Biff (Diskussion | Beiträge) (Artikel von Kategorie hierhin verschoben.) |
||
Zeile 1: | Zeile 1: | ||
− | + | = Was ist Control6? = | |
+ | Control6 ist eine auf [[Proto Threads]] fußende Art von Skriptsprache, die ein wenig von ''Basic'' inspiriert ist. | ||
+ | Control6 soll insbesondere dazu dienen, dass man die einzelnen Komponenten von Ethersex schnell zusammenfügen kann. | ||
+ | Beispielsweise können in einer Endlosschleife die Temperaturen von KTY-Sensoren ausgelesen werden und in Abhängigkeit der Werte dann Pins geschaltet, [[SYSLOG]]-Nachrichten abgesetzt oder [[ECMD]]-Befehle versendet werden. | ||
+ | |||
+ | Die Skripte werden während des Kompiliervorgangs in C-Code übersetzt und letztlich mit in die Firmware einkompiliert. | ||
+ | Sie sind somit ''statisch'' und nur durch Neuprogrammierung änderbar. | ||
+ | |||
+ | == So fängt man an == | ||
+ | Standardmäßig werden, wenn in Menuconfig die Funktion ''Control6'' aktiviert wurde, die Instruktionen aus der Datei '''control6/control6.src''' in die Firmware eingebunden. Für Eigenentwicklungen, die nicht in die "Distribution" aufgenommen werden sollen, empfiehlt es sich separate Dateien in der Ethersex Ordnerstruktur anzulegen, sodass es zu keinen (oder zumindest seltener) zu Konflikten beim Update auf eine neuere offizielle Firmwareversion kommt. | ||
+ | |||
+ | Dazu einfach eine beliebige Datei im Stile der o.g. ''control6.src'' anlegen, zum Beispiel eine ''control6/erste-schritte.src'' und diese dem Makesystem bekannt machen. Letzteres durch folgenden Eintrag in der Datei [[config.mk]] im Hauptverzeichnis (wenn diese noch nicht existiert, einfach eine neue Datei anlegen und nur diese Zeile eintragen): | ||
+ | C6_SOURCE = $(TOPDIR)/control6/erste-schritte.src | ||
+ | |||
+ | * [[:Kategorie:Control6 Examples|Control6 Beispielcode]] | ||
+ | * [[PIN_Commands|Wie schreibe ich ein Control6 Skript]] | ||
+ | |||
+ | == Konzepte == | ||
+ | * Ein Control6-Skript wird immer von den Tags '''CONTROL_START''' und '''CONTROL_END''' umschlossen. | ||
+ | * Mit '''THREAD''' resp. '''THREAD_END''' können leicht quasi nebenläufige Programmabschnitte erstellt werden. Dies ermöglicht mehrere Aufgaben, die miteinander nichts zu tun haben, auch getrennt voneinander im Control6-Code abzubilden. | ||
+ | |||
+ | == Befehlssatz == | ||
+ | Control6 ist momentan schon relativ mächtig und stellt durchaus eine Alternative zum Verfassen von C-Code dar. Es werden aber nachwievor nicht alle Aspekte von Ethersex auch in Control6 abgebildet (und noch weniger werden hier im Wiki bislang thematisiert). Wenn du möchtest, du bist herzlich willkommen beim Ausbau der Funktionalität mitzuhelfen :-) | ||
+ | |||
+ | * übergreifende Funktionen | ||
+ | ** [[Globale Variablen]] | ||
+ | ** [[PIN-Befehle]], Threading, Timer und Events | ||
+ | ** [[Bedingungen]] | ||
+ | * Einzelaspekte, siehe | ||
+ | ** [[ADC-Werte abfragen]] | ||
+ | ** [[Zugriff auf die Systemuhr]] | ||
+ | ** [[Debug-Meldungen und SYSLOG]] | ||
+ | ** [[ECMD-Befehle absetzen]] | ||
+ | ** [[Jabber]] | ||
+ | ** [[eMail versenden]] | ||
+ | ** [[Dallas 1-wire Bus]] | ||
+ | ** [[KTY81]] | ||
+ | ** [[Einfaches Menüsystem|TTY und Menü-System]] | ||
+ | |||
+ | [[Kategorie:Ethersex]] | ||
+ | [[Kategorie:Control6|!]] |
Version vom 29. August 2010, 15:29 Uhr
Inhaltsverzeichnis
Was ist Control6?
Control6 ist eine auf Proto Threads fußende Art von Skriptsprache, die ein wenig von Basic inspiriert ist. Control6 soll insbesondere dazu dienen, dass man die einzelnen Komponenten von Ethersex schnell zusammenfügen kann. Beispielsweise können in einer Endlosschleife die Temperaturen von KTY-Sensoren ausgelesen werden und in Abhängigkeit der Werte dann Pins geschaltet, SYSLOG-Nachrichten abgesetzt oder ECMD-Befehle versendet werden.
Die Skripte werden während des Kompiliervorgangs in C-Code übersetzt und letztlich mit in die Firmware einkompiliert. Sie sind somit statisch und nur durch Neuprogrammierung änderbar.
So fängt man an
Standardmäßig werden, wenn in Menuconfig die Funktion Control6 aktiviert wurde, die Instruktionen aus der Datei control6/control6.src in die Firmware eingebunden. Für Eigenentwicklungen, die nicht in die "Distribution" aufgenommen werden sollen, empfiehlt es sich separate Dateien in der Ethersex Ordnerstruktur anzulegen, sodass es zu keinen (oder zumindest seltener) zu Konflikten beim Update auf eine neuere offizielle Firmwareversion kommt.
Dazu einfach eine beliebige Datei im Stile der o.g. control6.src anlegen, zum Beispiel eine control6/erste-schritte.src und diese dem Makesystem bekannt machen. Letzteres durch folgenden Eintrag in der Datei config.mk im Hauptverzeichnis (wenn diese noch nicht existiert, einfach eine neue Datei anlegen und nur diese Zeile eintragen):
C6_SOURCE = $(TOPDIR)/control6/erste-schritte.src
Konzepte
- Ein Control6-Skript wird immer von den Tags CONTROL_START und CONTROL_END umschlossen.
- Mit THREAD resp. THREAD_END können leicht quasi nebenläufige Programmabschnitte erstellt werden. Dies ermöglicht mehrere Aufgaben, die miteinander nichts zu tun haben, auch getrennt voneinander im Control6-Code abzubilden.
Befehlssatz
Control6 ist momentan schon relativ mächtig und stellt durchaus eine Alternative zum Verfassen von C-Code dar. Es werden aber nachwievor nicht alle Aspekte von Ethersex auch in Control6 abgebildet (und noch weniger werden hier im Wiki bislang thematisiert). Wenn du möchtest, du bist herzlich willkommen beim Ausbau der Funktionalität mitzuhelfen :-)
- übergreifende Funktionen
- Globale Variablen
- PIN-Befehle, Threading, Timer und Events
- Bedingungen
- Einzelaspekte, siehe