Befehle an COM-Port via PHP

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

  • Befehle an COM-Port via PHP

    Hey,
    ich möchte gerne ein Voltcraft Netzgerät über eine Webseite fernsteuern und muss dazu entsprechende Befehle über den COM-Port ausgeben. Ich möchte das mit der PHP Serial Extension von thebyteworks.com tun, allerdings habe ich keine Ahnung, wie die entsprechenden Befehle aussehen müssen, die ich in ser_write("") bzw. ser_writebyte() schreiben muss. Die Doku des Netzgerätes sagt folgendes:

    Communication Frame
    VSP series communicates in a fixed length frame. Each communication frame has three bytes. The first byte is the command followed by the two data bytes. Frame remains three bytes even if command does not have any data. Command formats are given below.
    Command Format
    1.Set Voltage: (AAh) (V1) (V2)
    This sets output voltage to given value
    V1 - Higher byte (Only lower 4 bit will be considered)
    V2 - Lower byte
    Example: To set Voltage to 40.00 it will be (FA0)H and the command will be
    AA0FA0H.

    Kann mir vielleicht jemand helfen und sagen, wie ich diese Befehle in php umsetzen kann? Wenn ich ehrlich bin, verstehe ich noch nicht mal, wie man von 40.00 Volt auf den Befehl (FA0)H bzw. AA0FA0H kommt.
    Vielen Dank für eure Hilfe!

  • #2
    Zitat von Schaefchen007 Beitrag anzeigen
    Hey,
    ich möchte gerne ein Voltcraft Netzgerät über eine Webseite fernsteuern ...
    Oh, oh dann solltest du genaustens darauf achten, keine Sicherheitslücken in dein Script einzubauen. Denn wenn jemand unbefugterweise die Spannung höherdreht, als ein ans Netzteil angeschlossener Verbraucher verträgt, gibts blauen Rauch ...

    ... und muss dazu entsprechende Befehle über den COM-Port ausgeben. Ich möchte das mit der PHP Serial Extension von thebyteworks.com tun, ...

    Die Doku des Netzgerätes sagt folgendes:

    Communication Frame
    VSP series communicates in a fixed length frame. Each communication frame has three bytes. The first byte is the command followed by the two data bytes. Frame remains three bytes even if command does not have any data. Command formats are given below.
    Command Format
    1.Set Voltage: (AAh) (V1) (V2)
    This sets output voltage to given value
    V1 - Higher byte (Only lower 4 bit will be considered)
    V2 - Lower byte
    Example: To set Voltage to 40.00 it will be (FA0)H and the command will be
    AA0FA0H.

    Kann mir vielleicht jemand helfen und sagen, wie ich diese Befehle in php umsetzen kann?
    Mir fehlt die Motivation zum Erwerb der Kenntnisse sowohl über die Serial-Extension als auch die zum Conrad-Elektronik-Sondermüll (). Aber beide scheinen doch eine vernünftige Dokumenation besitzen.

    Wenn ich ehrlich bin, verstehe ich noch nicht mal, wie man von 40.00 Volt auf den Befehl (FA0)H bzw. AA0FA0H kommt.
    Vielen Dank für eure Hilfe!
    0xfa0 ist in "hexadezimal" das, was 4000 in dezimal ist.

    Der Windows-Taschenrechener hilft dir beim Umrechnen (Windows-Taste + "R"; "calc.exe" eingeben; Im "Ansicht"-Menü "wissenschaftlich" auswählen).

    PHP hat diverse Funktionen, mit denen man Dezimal-Zahlen in Hex-Strings umwandeln kann, wie dechex() oder sprintf('%x').

    Um Ganzzahlen in Binär-Werte umzuwandeln, hat PHP die Funktion pack().
    Klingon function calls do not have “parameters”‒they have “arguments”‒and they always win them!

    Kommentar

    Lädt...
    X