2016-05-12 12 views
-2

PowerShellでコマンドラインを送信しようとしていますので、シリアルポート経由でプロジェクタの電源を入れることができます。私は、NECプロジェクター、ターンオンするためのコマンドを使用して、プロジェクターの電源をオフにしていますこれら:16進コードを送信するには

電源オン:02H 00H 00H 00H 00H 02H
電源オフ:02H 01H 00H 00H 00H 03H

私は、製造者のソフトウェアを使用して、私はそれに何を監視しました送信され、ターンのために、それには次のようにします。

オープンCOMポート

書いた:

00 bf 00 00 01 00 c0
0123を

読む:

20 bf 01 20 10 00 ff 22 4d 33 35 33 57 53 00 00 
00 08 12 00 00 dd

は書いた:

00 bf 00 00 01 02 c2

読む:

20 bf 01 20 10 02 0f ff ff ff ff 00 00 00 00 00 
00 00 00 00 00 1d

を(これは私が手動で特定し、コマンドラインで)書いた:

02 00 00 00 00 02

それから、開いているCOMポートを開きます。

私はコマンドを送信する方法を理解しようとしています。 は、私はいくつかの掘削を行なったし、コマンドを見つけた:

$port.WriteLine 

が、それは六角を送信しません、それはこれを送信します。

30 30 20 62 66 20 30 30 20 30 30 20 30 31 20 30 00 bf 00 00 01 0 
30 20 63 30 0a         0 c0.
+1

あなたはあなたが使用しているコードの行を投稿してくださいすることができ送信?あなたが何をしようとしているのか、それがどうやってうまくいかないのかははっきりしていません。 –

+3

PowerShellの16進リテラルは '0x20 0xbf 0x01 etc ... 'のように書かれています。 –

+0

おかげさしで助けてくれてありがとうございました。私がしようとしていたのは、コマンドコードをPowerShell経由で送信することでした。 –

答えて

1
[Byte[]] $powerOn = 0x02,0x00,0x00,0x00,0x00,0x02 
[Byte[]] $powerOff = 0x02,0x01,0x00,0x00,0x00,0x03 

# Use your COM port here 
$port = new-Object System.IO.Ports.SerialPort COM3,9600,None,8,one 
$port.Open() 
$port.Write($powerOn, 0, $powerOn.Count) 
# ... 
$port.Write($powerOff, 0, $powerOff.Count) 
$port.Close() 
+0

完璧に動作します、ありがとう! Pythonでコードを書く際に問題がある場合は、私に連絡することはできますか?もう一度過ごす!!! –

関連する問題