如何发送十六进制代码

时间:2016-05-12 01:42:51

标签: powershell

我尝试通过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

然后关闭打开的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 个答案:

答案 0 :(得分:2)

[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()