gpt4 book ai didi

powershell - 如何在Powershell中连续读取串行COM端口并偶尔写入COM端口

转载 作者:行者123 更新时间:2023-12-02 22:19:21 25 4
gpt4 key购买 nike

我需要知道如何从 COM 端口连续读取数据并使用 Windows Powershell 将其转储到文件中。在读入数据时,我还需要监视正在读入的数据,并根据读取的最后一行内容将数据写入 COM 端口。

要在 Powershell 中打开 COM 端口,我这样做:

[System.IO.Ports.SerialPort]::getportnames()
$port= new-Object System.IO.Ports.SerialPort COM3,115200,None,8,one
$port.open()

要将数据读入 COM 端口,我这样做:
$line=$port.ReadLine()

我最初的想法是让主 Powershell 脚本打开 COM 端口。然后它会启动一个后台/子任务,从 COM 端口连续读取数据并将其转储到文件中。当该子任务正在运行时,父任务将持续监视文件并在需要时写入 COM 端口。

当我尝试这样做时, child 无法从 COM 端口读取数据,因为 parent 将其打开并且 child 没有从 parent 那里继承该权限。

关于我如何做到这一点的任何想法?

最佳答案

简单的答案:while 循环。调用函数来决定何时写入数据。使用子任务和脚本来处理/处理/获取数据,但将通信保持在同一任务/脚本中。我使用此代码从我的 Arduio 中读取:

$COM = [System.IO.Ports.SerialPort]::getportnames()

function read-com {
$port= new-Object System.IO.Ports.SerialPort $COM,9600,None,8,one
$port.Open()
do {
$line = $port.ReadLine()
Write-Host $line # Do stuff here
}
while ($port.IsOpen)
}

关于powershell - 如何在Powershell中连续读取串行COM端口并偶尔写入COM端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31297365/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com