操纵Linux/dev节点的设置以方便解析?

操纵Linux/dev节点的设置以方便解析?,linux,parsing,lua,modem,tty,Linux,Parsing,Lua,Modem,Tty,最近,我一直在尝试使用Lua捕获我的USB 3G调制解调器链接质量和网络类型,方法是使用提供的/dev/ttyUSB2设备节点向调制解调器发送命令,然后 解析输出 不幸的是,当时我不知道这些设备节点可能会被篡改 stty命令,这使得捕获输出极为困难,因为它有时会包含写入接口的命令,有时它不会显示任何内容,有时甚至会向我发送错误数据,可能是回车和换行问题的结果 通过发出以下命令,我成功地将事情设置为正确: os.execute("stty -F ".. device .. " time 1

最近,我一直在尝试使用Lua捕获我的USB 3G调制解调器链接质量和网络类型,方法是使用提供的/dev/ttyUSB2设备节点向调制解调器发送命令,然后 解析输出

不幸的是,当时我不知道这些设备节点可能会被篡改 stty命令,这使得捕获输出极为困难,因为它有时会包含写入接口的命令,有时它不会显示任何内容,有时甚至会向我发送错误数据,可能是回车和换行问题的结果

通过发出以下命令,我成功地将事情设置为正确:

 os.execute("stty -F ".. device ..
  " time 1 -hupcl ignpar -opost -onlcr -isig -icanon -echo brkint -icrnl")
现在,以+ZPAS发送?AT+CSQ似乎能产生一致性,但我想知道是否有人知道我可以为节点设置的更有用的设置

我想到的一件事是,Lua的io.read在等待EOF时挂起 从设备,基本上永远停止代码,但如果有一个命令可以将设备节点呈现为命令响应,这样我就可以安全地读取一个特定命令的整个输出,而不必担心


谢谢大家!

你在寻找一种方法来执行一个命令,然后得到命令的输出吗?@YuHao在这一点上,我在寻找几乎所有不包括非标准库的东西,基本上是的。我已经设置了一个循环来检查错误和OK响应,作为停止执行挂起的一种手段,但它有时不可靠,AT+CSQ不返回载波。io.popen满足您的要求吗?它不是标准的,但许多实现都提供了它。@YuHao事实上,这是我为其编写脚本的库的要求,它不能依赖外部库来方便安装和使用。这里通常使用io.popen来解析程序输出,因为无法访问/proc或/sys中的数据。所以,是的,我可以使用它,如果你知道一个可以安全地与设备通信的命令,那将是非常棒的er:D