gpt4 book ai didi

bash - 在适用于 Linux 的 Windows 子系统 (WSL) 中查找事件串行端口

转载 作者:行者123 更新时间:2023-12-04 15:39:16 24 4
gpt4 key购买 nike

我如何找到 Linux 的 Windows 子系统 中哪个串行端口 处于事件状态?我知道 added support in WSL用于使用 /dev/ttyS,但这些端口中的哪些端口处于事件状态?

我要解决的问题是我有一个设备可以保持切换正常,因为内部芯片会在新端口上自行重新连接。我想创建一个 bash 脚本来查找事件的串行端口。

常规的 linux 命令如下: dmesg | grep tty 不起作用。

最佳答案

我创建了一个结合了 PowershellWSL 的解决方案。

1.创建一个Powershell脚本,comports.ps1:

$DeadComport = 3
$COMportList = [System.IO.Ports.SerialPort]::getportnames()

if ($COMportList.Count -cgt 2) {
Write-Output "Too many com-ports connnected! "
Write-Host -NoNewline "Com-ports found:" $COMportList.Count

}else{
ForEach ($COMport in $COMportList) {
$temp = new-object System.IO.Ports.SerialPort $COMport
$portNr = $temp.PortName.SubString(3)
if ($portNr -eq $DeadComport){
continue
}
Write-Output $portNr
$temp.Dispose()
}
}

- 您可以在 PowerShell ISE 中调试此代码并对其进行调整以满足您的偏好。


2.在WSL中创建一个bash脚本,comscript.sh:

最好在 home/your-username/bin 文件夹中,这使得 bash 脚本全局可执行。

#!/bin/bash

echo "Active com-port"
powershell.exe -File "c:\your-folder\comports.ps1"

现在您只需调用 comscript.sh,它将输出事件的 comport,如果发现不止一个设备,它将抛出一条错误消息。

请注意,我正在过滤掉 com-port 3,因为它在我的计算机上始终存在并处于事件状态。

关于bash - 在适用于 Linux 的 Windows 子系统 (WSL) 中查找事件串行端口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58548948/

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