Wie liest kontinuierlich den Seriellen COM-port in der Powershell und gelegentlich schreiben an COM-port

Muss ich wissen, wie kann ich kontinuierlich Daten Lesen von COM-port und werfen Sie es in eine Datei mithilfe von Windows Powershell. Während ich lese Daten ein, ich muss auch überwachen die Daten eingelesen und je nachdem, was die Letzte Zeile Lesen, schreiben von Daten an den COM-port.

Öffnen der COM-port in der Powershell, die ich bin, dies zu tun:

[System.IO.Ports.SerialPort]::getportnames()
$port= new-Object System.IO.Ports.SerialPort COM3,115200,None,8,one
$port.open()

Zum Lesen von Daten in den COM-port, der ich bin, dies zu tun:

$line=$port.ReadLine()

Mein Erster Gedanke war, um die wichtigsten Powershell-Skript, öffnen Sie den COM-port. Dann wäre es zu Beginn eine hintergrund - /Kind-Aufgabe kontinuierlich Daten Lesen von COM-port und werfen Sie es in eine Datei. Während das Kind die Aufgabe ausgeführt wird, die Eltern würden dann ständig die Datei, und schreiben Sie auf den COM-port, wenn notwendig.

Als ich versuchte zu tun, dass das Kind konnte nicht Lesen von Daten aus dem COM-port, weil die Eltern hatten es öffnen und das Kind nicht Erben, die Erlaubnis der Eltern.

Irgendwelche Ideen auf, wie kann ich dies erreichen?

  • können Sie einfach Lesen Sie die $line variable jedes mal, wenn seine erstellt und tun, was Sie müssen, wenn es den Kriterien entspricht, während gleichzeitig anmelden über Out-File oder etwas für logging-Zwecke?
  • Ich bin nicht wirklich gut mit watchers, aber ich weiß, Sie sehen einen Ordner für die Datei ändert, kann man einen com-port für Aktivität, und darauf zu reagieren, wenn es passiert?
  • Ich habe gerade eine while-Schleife, würde Sie Lesen, in einer Linie, melden Sie es in eine Datei, und dann haben einige Prüfungen auf, die Linie zu bestimmen, ob es notwendig zu schreiben, auf den COM-port. Leider Powershell scheint Probleme zu haben, Lesen Zeilen, die nicht in einem newline-Zeichen oder carriage return, wie eine linux-Kommandozeile. ReadLine() fehlschlägt, Lesen Sie in der "Eingabeaufforderung" - Zeilen. Irgendwelche Ideen auf, wie man umgehen?
  • headinabook fanden Sie die Lösung ? bitte teilen... ich bin auch versucht zu Lesen fortlaufend aus einem seriellen port.
  • Sie müssen Windows Powershell verwenden, oder können Sie ein anderes Programm verwenden?
  • Ich bin mit Powershell..... Ich verwendet ReadExisting (), die mein problem gelöst... wissen Sie, wie Sie im ASCII-code senden nacheinander in der powershell... ich möchte schreiben, ASCII-code der seriellen-port für den SHIFT -, F1 -, F2 -, F3-und F4-Tasten

InformationsquelleAutor headinabook | 2015-07-08
Schreibe einen Kommentar