2016-05-12 135 views
-2

我試圖通過PowerShell發送命令行,以便通過串行端口啓動投影機。我使用的是NEC投影機和用於打開命令和關閉投影機是這些:如何發送十六進制代碼

開機:02H 00H 00H 00H 00H 02H
關機:02H 01H 00H 00H 00H 03H

我用製造商的軟件,我並監控什麼發送和打開它,它使用以下命令:

打開COM端口

寫道:

00 bf 00 00 01 00 c0

讀:

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

然後它cl選擇開放的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中的十六進制文字被寫爲'0x20 0xbf 0x01等...' –

+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編寫代碼時遇到問題,我可以與您聯繫嗎? thanx再次! –