Ankündigung

Einklappen
Keine Ankündigung bisher.

Programmierung RS232 / String Funktionen

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    Programmierung RS232 / String Funktionen

    Hallo Enertex-Team & Foren Mitglieder,

    im Moment spiele ich mit dem Gedanken meine Wärmepumpe über den eibPC anzusteuern.
    Forenmitglied Swenga hat zum Thema schon ordentlich Vorarbeit geleistet und ein auf .net basierendes Programm geschrieben, welches als Gateway und Datenlogger dient.
    Die Sache hat einen entscheidenden Nachteil: Es muss halt immmer ein Windows-PC laufen. Ich für meinen Teil würde dazu gern den eibPC nutzen.

    Habe mir die Doku zum eibPC auch schon angeschaut - aber als Nutzer höherer Programmiersprachen fürchte ich, wird die Implementierung mit dem derzeitigen Sprachumfang etwas aufwändig. Aber vielleicht liege ich da auch nur falsch

    Die Kommunikation mit der Wärmepumpe erfolgt im "Terminalmodus" mit ASCII Strings und jede Zeile ist CRLF terminiert.

    Ein Beispiel für die Kommunikation:

    gesendet wird:
    Code:
    1800
    und die Anlage antwortet mit:
    Code:
    1800;8
    1100;12;334;288;359;558;-53;206;435;-500;-500;750;0;0
    1200;6;0;1;0;1;1;0
    1300;13;0;0;1;1;0;1;0;1;1;0;1;0;0
    1400;29;0;10;3;0;0;0;0;0;0;0;0;0;9;57;0;0;0;0;1;52;0;0;0;0;0;0;0;0;0
    1450;9;6956774;2945;2362;7130285;2944;2421;267856;0;12204134
    1500;5
    1500;1500;6;718;10;7;10;15;15
    1500;1501;6;718;11;7;10;9;56
    1500;1502;6;718;11;7;10;15;51
    1500;1503;6;718;12;7;10;15;49
    1500;1504;6;718;16;7;10;17;24
    1500;5
    1600;5
    1600;1600;6;010;20;2;11;5;32
    1600;1601;6;010;20;2;11;7;39
    1600;1602;6;010;20;2;11;8;13
    1600;1603;6;010;20;2;11;10;34
    1600;1604;6;010;20;2;11;11;24
    1600;5
    1700;12;8; R2.33;1;4;7;12;10;19;50;28,0,1
    1800;8
    Um die Ausgabe der Anlage weiterzuverarbeiten würde ich normalerweise die Ausgabe in ein Array laufen lassen und dann mit einer "split-Funktion", die eine Zeichkette nach einem Trennzeichen trennt (in dem Fall ein Semikolon), nochmals zerlegen um dann auf die benötigten Werte zuzugreifen.
    Habe ich das richtig überblickt dass mir weder Arrays zur Verfügung stehen noch eine entsprechende split-Funktion?
    Können wir daraus einen Feature-Request machen?

    Danke und Grüße
    Matthias

    #2
    Zitat von Matthias Beitrag anzeigen
    Die Kommunikation mit der Wärmepumpe erfolgt im "Terminalmodus" mit ASCII Strings und jede Zeile ist CRLF terminiert.
    Das geht schon. Schau Dir am besten mal die 1-Wire Makros für den HA7E an. Man muss beim EibPC anders programmieren wie in C, wenn man komplexere Programmier-Aufgaben erledigen will. Das progammiertechnische Stichwort wäre hier "Zustandsautomat", wie auch bei den Command Fusion so realisiert. Unter KNX-User-Forum - Enertex EibPC und Command Fusion habe ich das mal ausführlicher dokumentiert und erklärt.
    Habe ich das richtig überblickt dass mir weder Arrays zur Verfügung stehen noch eine entsprechende split-Funktion?
    Du kannst einen c1400 String heranziehen. Mit stringset und stringcast kannst Du die Bytes auch einzeln "nutzen", was aber bei Dir einfacher ist, da Du schon ASCII bekommst. Split gibt es auch.
    Ich rate zum Handbuch zum Abschnitt Stringfunktionen.
    Können wir daraus einen Feature-Request machen?
    Gibt's doch scho;
    Ich rate da mal an https://knx-user-forum.de/knx-eib-fo...ettbewerb.html zu denken. Das Projekt hört sich ja schon interessant an.
    offizielles Supportforum für den Enertex® EibPC: https://knx-user-forum.de/eibpc/
    Enertex Produkte kaufen

    Kommentar

    Lädt...
    X