Forum: PC-Programmierung Frage zu STX Befehl in Powershell


von Art Z. (Firma: AZZOFT) (artwork_ad)


Lesenswert?

Hallo Zusammen,

ich bin absoluter Neuling und experimentiere etwas mit Schreiben/Lesen 
eines Com ports. Dazu habe ich eine Verständnisfrage:

Ich benutze den Virtual Serial Port connector von eterlogic um einen 
virtuellen COM1 port zu erzeugen.

Zuerst sende ich den STX befehl via c++, etwa so

    $nrcom1->SendChar(0x02) //STX

In monitoring fenster vom virtuellen port sehe ich dann:

02 .

Dann versuche ich via Powershell das gleiche zu erreichen:

    $port.write(0x02)

das ergibt beim monitoring aber

32 2

wenn ich jetzt das hier probiere

    $port.write(".")

ergibt das

2E .

Meine Frage, was hat das mit dem Punkt auf sich? Und wie kann ich es 
erreichen, dass ich 02 . als ausgabe bekomme?

Danke für eure Hilfe.

: Verschoben durch User
von bluppdidupp (Gast)


Lesenswert?

Ich kenne mich nicht mit der powershell aus, ich vermute aber das $port 
ein "SerialPort"-Objekt aus dem .NET-Framework ist?
Dann würde ich diese Überladung nehmen:
http://msdn.microsoft.com/de-de/library/ms143551(v=vs.110).aspx
...und/oder .Encoding vorher auf den korrekten Zeichensatz setzen:
http://msdn.microsoft.com/de-de/library/system.io.ports.serialport.encoding(v=vs.110).aspx
...der könnte nämlich auf utf-16 zu stehen.

von Art Z. (Firma: AZZOFT) (artwork_ad)


Lesenswert?

Also ich habe jetzt folgendes probiert

[Char[]] $request = 0x02
$port.Write($request)

Resultat im log: 02 . so sollte es auch sein. Wenn ich das jetzt 
weiterspinne kommt es wieder zu einem problem:

Der eigentliche Befehl den ich verstehen/nachbauen will ist

   <STX>BEFEHL<ETX><CHKSUM> z.B. .004CT1000A.b (wäre ein korrekter 
befehl)

STX = 0x02, ETX = 0x03, CHKSUM = 0x0062, BEFEHL = 004CT1000A

[Char[]] $request = 0x02,0,0,4,"C",1,0,0,0,"A",0x03,0x0062
$port.Write($request)

gibt mir aber . . . . C . . . . A . b Zwischen jedem zeichen ist 
seltsamerweise ein leerzeichen. und alle zahlen sind durch punkte 
ersetzt.

Ich benutze die powershell auf einem windows server. Hat jemand eine 
idee wo der fehler liegt?

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.