【问题标题】:Capturing the output from COM port using PowerShell on Windows 7在 Windows 7 上使用 PowerShell 从 COM 端口捕获输出
【发布时间】:2015-12-11 05:40:40
【问题描述】:

我想将 Sierra AT 命令发送到 COM 端口并捕获输出并使用 PowerShell 将其存储在变量中。

PowerShell 版本:

Name             : ConsoleHost
Version          : 2.0
InstanceId       : eb5987f0-9961-4842-b349-ba215d86fdfa
UI               : System.Management.Automation.Internal.Host.InternalHostUserI
                   nterface
CurrentCulture   : en-IN
CurrentUICulture : en-US
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

例如: at!gstatus?

我试过了,但它不适合我。

PS> [System.IO.Ports.SerialPort]::getportnames()
COM16
PS> $port= new-Object System.IO.Ports.SerialPort COM16,115200,None,8,one
PS> $port.open()
PS> $port.WriteLine("at!gstatus?")
PS> $port.WriteLine("`r")
PS> $port.ReadExisting() //getting null output
PS> $port.close()

如何做到这一点?

【问题讨论】:

    标签: windows powershell automation port powershell-2.0


    【解决方案1】:

    调制解调器?通讯端口? AT 命令 ?是 2015 年还是 1995 年? ^_^

    在读取数据之前尝试暂停:

    $port = New-Object System.IO.Ports.SerialPort COM16,115200,None,8,one
    $port.Open()
    
    $port.WriteLine( "at!gstatus?" + "`r" )
    Start-Sleep -m 50
    
    $port.ReadExisting()
    $port.Close()
    

    来源:https://social.technet.microsoft.com/Forums/en-US/2980f24e-56d1-431f-aedc-811c087b5184/powershell-serial-com-port?forum=ITCG

    【讨论】:

    • 您确定所有选项 (COM16,115200,None,8,one) 都需要且正确吗?您是否尝试过其他(简单)命令?您是否尝试等待超过 50 毫秒?
    • 是的,选项是正确的。你说的简单命令是什么意思?你能提供吗?我等了超过 50 毫秒。
    • 我指的是其他与您的硬件一起使用的 AT 命令。你的调制解调器是什么?
    • 我也尝试了其他命令。我可以看到的是,当我发送命令时,它实际上正在发送,并且在关闭端口并手动打开它后我可以看到命令输出。问题是我没有得到缓冲区输出。我需要再等吗?还是必须做其他事情?我正在使用 sierra 无线 WWAN 调制解调器
    • 这个脚本成功了吗? supportishere.com/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-10-19
    • 2010-11-15
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 2011-09-05
    • 2018-06-09
    相关资源
    最近更新 更多