【问题标题】:SHARP Serialport RS232夏普串口 RS232
【发布时间】:2019-06-22 09:14:37
【问题描述】:

我正在尝试通过串行端口从计算机获取索尼电视型号。 这是一个文档(第 80 页 - 如何构建查询,第 83 页 - 如何获取模型名称)。 https://cdn.cnetcontent.com/d1/9d/d19d926b-bb36-4ed3-bd03-af1cad4069da.pdf

这是我的简单脚本,但不幸的是,总是返回 ERR。 我做错了什么?

$hex = 0x4d,0x4e,0x52,0x44,0x31,0x20,0x20,0x20,0x0d
$com = New-Object System.IO.Ports.Serialport COM4,9600,None,8,one

$com.Open()
$com.Write($hex, 0, $hex.Count)

Start-Sleep -s 2
$read = $com.ReadExisting()
Write-Host "Response: $read" #ERR

$com.Close()

【问题讨论】:

  • 该手册说“当输入参数不在可调范围内时,“ERR”返回“:所以你没有发送有效的命令。此外,由于它是以字母而不是十六进制代码记录的,因此使用字符串并与 ASCII 一致(System.Text.Encoding.ASCII 会这样做)。
  • 您是否尝试过发送 CR 和 LF,或者 LF 代替 CR,或者省略 0xd 并使用 WriteLine 方法?
  • @Richard Write 函数被 String 和 Byte[] 参数重载,因此只要十六进制字节正确就没有关系,默认情况下,SerialPort 使用 ASCIIEncoding 对字符进行编码。
  • @Remko 尝试但得到相同的响应:(
  • @Remko 我认为不是,但这样可以更轻松地检查根据文档发送的字符(这显然是问题所在)

标签: powershell serial-port sharp


【解决方案1】:

找到响应:它返回 ERR wneh 电源关闭。 当我通过 RS-232 打开设备电源时,脚本开始响应 LE740E 而不是 ERR

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-26
    • 2012-01-23
    • 2019-06-21
    • 1970-01-01
    相关资源
    最近更新 更多