EDIT:
https://github.com/knxuf/HS-Logikdebugger/
## 2.021 * PREEXEC für hsb hinzugefügt
## * TagList.GrpListAll hinzugefügt
## * iko Standalone + Attribute wie name,endpoint_description ...
##
## 2.020 * fix _hslparser 5012 regex include spaces
##
## 2.019 * hsl20 Support
##
## 2.018 * füge diverse interne Funktionen hinzu
##
## 2.017 * entferne --register
##
## 2.016 * XXXXXXXXXXXXXXXXXXXXX
## * XXXXXXXXXXXXXXXXXXXXX
##
## 2.015 * 'names' zeigt jetzt SN and Timer
## * colorama Unterstützung für farbliche Ausgabe
## * Überprüfung der Zeilenende auf Kommentarzeichen #
## * Timer ON[x] erhällt Wert der Formel
## * fix AC wurde teilweise zu früh auf 0 gesetzt
## * 'timer' zeigt jetzt ohne Parameter die verfügbaren an
## * 'timer [x]' führt die Logik Berechnung bei aktivem autorun auch aus
## * 'print' und 'import' als Befehl direkt ohne exec möglich
## * 'formel' zeigt die Formelzeilen und dekodierten Base64 Bytecode
## * Syntax Highlighting
## * Homeserver Variablen können an der Debugkonsole auch verkürzt als en1= oder en2= etc gesetzt werden
## * removed import popen2
##
## 2.014 * interne IP
##
## 2.013 * diverse HS interne Objekte hinzugefügt
## * überwachung von AC[x] auf änderungen
## * __import__ gegen Funktion ausgetauscht um hs interne Module zu imitieren
## * KO Gateway Verbindung timeout geändert
## * eingaben string-decode um zum Beispiel bei EN[1]="d100=1\x03" das Steuerzeichen hex 03 zu senden
## * Fix Ausgang beim internen schreiben über SetWert des iko
## * --register nun je Python Version (Debug 2.4/Debug 2.6)
##
## 2.012 * runTime je Formelzeile
## * --register zum registrieren der Debug Erweiterung für .hsl Dateien
##
## 2.011 * Name von TimerThreads entsprechend dem OC
##
## 2.010 * Bugfix 'names'
##
## 2.009 * 'connect' zum manuellen verbinden aus dem Debugger
## * EN[1]=$IKO$1/0/100 aus dem debugger heraus
## * Bugfix .config nicht aus dem Installationspfad geladen beim Rechtsklick aus hsl
##
## 2.008 * Timer laufen automatisch bei autorun
## * Bugfixes beim Beenden
## * globals werden nicht mehr an die Formel übergeben
## * Zeilenummer beim Bedingungstest
## * Autorun per .config default und pro LogikID
## * Autorun override per Befehlszeile -a 1|0
##
## 2.007 * Bugfixes KO-Gateway
## * AutoRun
##
## 2.006 * KO-Gateway für Ein/ausgänge
##
## 2.005 * Anzeige auf SystemCodepage angepasst, sodass Umlaute angezeigt werden
## * Option -n zum erstellen von .LGT Dateien aus .hsl
## * Kontrollen für EI bei nicht startetenden Bausteinen
## * Kontrolle auf Remanente Speicher bei nicht Remanenten Baustein
## * Kontrolle der Timer Anzahl
##
## 2.004 * BugFixes _defline
## * einige Dacom Bausteine (z.B. Codeschloss) haben keine gültige Definition
##
## 2.003 * 'names' zeigen jetzt auch die derzeitigen Werte
## * LogikGen.config hinzugefügt
## * Ausgang von intern beschreiben
## * Ausgaben auf Deutsch
##
## 2.002 * Parse Error in der 5001er Zeile
## * einige interne HS Klassen hinzugfügt
## * Timer ON/OC werden unterstützt
##
## 2.001 * Initial Release
##
Parameter zum Aufruf des Scripts
Folgende Befehle können im Debugger verwendet werden
Neues Format für Bausteine, (.hsb )
Um mehrzeiligen Bytecode zu nutzen
um aus einer .hsl ein .hsb File zu machen
Die .hsb enthällt folgende Variablen zur Steuerung des Erstellungsverhalten
LOGIKDEBUG=1
# Debug aktiv (heißt .. im Quelltext wird überall ###DEBUG### entfernt .. wenn also eine Zeile ###DEBUG###console_debug("sometext") irgendwo steht wird der code ausgeführt
LOGIKDEBUG=-1
# Debug wird entfernt, die Zeile die mit ###DEBUG### startet wird komplett entfernt
LOGIKDEBUG=0
# ###NODEBUG### wird falls vorhanden ausgeführt, damit kann z.B. zum Testen einen ###DEBUG### und eine ###NODEBUG### Zeile eingetragen werden die dann je nach Bedarf ausgeführt wird
LOGIKCOMPILE=1 Base64
LOGIKCOMPILE=2 Base64/ZLIB
LOGIKCOMPILE=3 Bytecode
LOGIKCOMPILE=4 Bytecode/ZLIB
Viel Spaß damit.
PS:
Wem es nützt .. https://www.paypal.com/cgi-bin/websc...=VY33EH7CBR6LW
https://github.com/knxuf/HS-Logikdebugger/
## 2.021 * PREEXEC für hsb hinzugefügt
## * TagList.GrpListAll hinzugefügt
## * iko Standalone + Attribute wie name,endpoint_description ...
##
## 2.020 * fix _hslparser 5012 regex include spaces
##
## 2.019 * hsl20 Support
##
## 2.018 * füge diverse interne Funktionen hinzu
##
## 2.017 * entferne --register
##
## 2.016 * XXXXXXXXXXXXXXXXXXXXX
## * XXXXXXXXXXXXXXXXXXXXX
##
## 2.015 * 'names' zeigt jetzt SN and Timer
## * colorama Unterstützung für farbliche Ausgabe
## * Überprüfung der Zeilenende auf Kommentarzeichen #
## * Timer ON[x] erhällt Wert der Formel
## * fix AC wurde teilweise zu früh auf 0 gesetzt
## * 'timer' zeigt jetzt ohne Parameter die verfügbaren an
## * 'timer [x]' führt die Logik Berechnung bei aktivem autorun auch aus
## * 'print' und 'import' als Befehl direkt ohne exec möglich
## * 'formel' zeigt die Formelzeilen und dekodierten Base64 Bytecode
## * Syntax Highlighting
## * Homeserver Variablen können an der Debugkonsole auch verkürzt als en1= oder en2= etc gesetzt werden
## * removed import popen2
##
## 2.014 * interne IP
##
## 2.013 * diverse HS interne Objekte hinzugefügt
## * überwachung von AC[x] auf änderungen
## * __import__ gegen Funktion ausgetauscht um hs interne Module zu imitieren
## * KO Gateway Verbindung timeout geändert
## * eingaben string-decode um zum Beispiel bei EN[1]="d100=1\x03" das Steuerzeichen hex 03 zu senden
## * Fix Ausgang beim internen schreiben über SetWert des iko
## * --register nun je Python Version (Debug 2.4/Debug 2.6)
##
## 2.012 * runTime je Formelzeile
## * --register zum registrieren der Debug Erweiterung für .hsl Dateien
##
## 2.011 * Name von TimerThreads entsprechend dem OC
##
## 2.010 * Bugfix 'names'
##
## 2.009 * 'connect' zum manuellen verbinden aus dem Debugger
## * EN[1]=$IKO$1/0/100 aus dem debugger heraus
## * Bugfix .config nicht aus dem Installationspfad geladen beim Rechtsklick aus hsl
##
## 2.008 * Timer laufen automatisch bei autorun
## * Bugfixes beim Beenden
## * globals werden nicht mehr an die Formel übergeben
## * Zeilenummer beim Bedingungstest
## * Autorun per .config default und pro LogikID
## * Autorun override per Befehlszeile -a 1|0
##
## 2.007 * Bugfixes KO-Gateway
## * AutoRun
##
## 2.006 * KO-Gateway für Ein/ausgänge
##
## 2.005 * Anzeige auf SystemCodepage angepasst, sodass Umlaute angezeigt werden
## * Option -n zum erstellen von .LGT Dateien aus .hsl
## * Kontrollen für EI bei nicht startetenden Bausteinen
## * Kontrolle auf Remanente Speicher bei nicht Remanenten Baustein
## * Kontrolle der Timer Anzahl
##
## 2.004 * BugFixes _defline
## * einige Dacom Bausteine (z.B. Codeschloss) haben keine gültige Definition
##
## 2.003 * 'names' zeigen jetzt auch die derzeitigen Werte
## * LogikGen.config hinzugefügt
## * Ausgang von intern beschreiben
## * Ausgaben auf Deutsch
##
## 2.002 * Parse Error in der 5001er Zeile
## * einige interne HS Klassen hinzugfügt
## * Timer ON/OC werden unterstützt
##
## 2.001 * Initial Release
##
Parameter zum Aufruf des Scripts
Code:
-d (--debug) startet den Debugger (immer benutzen) -i xxxxx_logik.hsl (--import=) importiert eine .hsl Datei -o logik.hsb (--open=) läd eine .hsb Datei -a [0|1] (--autorun=) startet die Ausführung automatisch (ohne run) -l logfile.txt (--log=) schreibt die Ausgabe des Programms in eine Textdatei
Code:
'quit' oder 'exit' zum beenden 'save' generiert ein .hsb File aus der aktuellen Logik 'build' generiert ein .hsl File aus der aktuellen Logik 'show' um die Variablen anzuzeigen 'names [suchstring ... mit ! negiert]' zeigt die Namen der Ein-/Ausgänge/Speicher an 'files [-t (filetype) /-s (Größe)] [suchstring]' zeigt den Inhalt des ExtDatUrl (/opt) an 'cat Filename zeigt den Inhalt des unter ExtDatUrl (/opt) liegen Files an 'formel [linenumber] zeigt die Formeln an 'run' um die Logik auszuführen 'autorun [0/1]' autorun ein/aus 'debug [0/1]' schaltet Debugmeldungen ein/aus 'timer 1' lässt Timer OC[1]/ON[1] ablaufen 'connect' verbinden zum definierten KO Gateway 'disconnect' verbinden zum definierten KO Gateway trennen 'exec code' ausführen von python Code innerhalb der Logik -- print und import können auch ohne vorangestelltes exec ausgeführt werden 'EN[1]=23' um Eingang 1 den Wert 23 zu setzen -- es können EI,EN,SN,AN,ON sowie EC,SC,AC,OC als auch EA,SA,AA -- geändert werden. Bei den ersten wird automatisch das jeweilige xC gesetzt -- kann auch mit en1= abgekürzt werden
Um mehrzeiligen Bytecode zu nutzen
Code:
5012|0|"EI"|"@BYTECODE@"|""|0|0|0|0 @BYTECODESTART@ AN[1]="test" AC[1]=1 @BYTECODEEND@
um aus einer .hsl ein .hsb File zu machen
Code:
python LogikGen.py -d -i 12345_MeineLogik.hsl -a 0 und dann in der Konsole save eingeben
LOGIKDEBUG=1
# Debug aktiv (heißt .. im Quelltext wird überall ###DEBUG### entfernt .. wenn also eine Zeile ###DEBUG###console_debug("sometext") irgendwo steht wird der code ausgeführt
LOGIKDEBUG=-1
# Debug wird entfernt, die Zeile die mit ###DEBUG### startet wird komplett entfernt
LOGIKDEBUG=0
# ###NODEBUG### wird falls vorhanden ausgeführt, damit kann z.B. zum Testen einen ###DEBUG### und eine ###NODEBUG### Zeile eingetragen werden die dann je nach Bedarf ausgeführt wird
LOGIKCOMPILE=1 Base64
LOGIKCOMPILE=2 Base64/ZLIB
LOGIKCOMPILE=3 Bytecode
LOGIKCOMPILE=4 Bytecode/ZLIB
Viel Spaß damit.
PS:
Wem es nützt .. https://www.paypal.com/cgi-bin/websc...=VY33EH7CBR6LW
Kommentar