Qt如何执行microcom的指令?

雪狼孤竹 2024-04-09 19:49:55

在控制台中执行结果如图

 

 

 

该图是两条指令,microcom -t 10000 -s 9600 /dev/ttyUSB1     和   AT+QNETDEVCTL=0,1,1  

反馈 OK及以下的数据。

 

不知道Qt有没有方法能够执行上图语句。希望大牛帮帮忙,谢谢!!

 

...全文
670 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复

你可以写个shell脚本,去做获取命令行结果,并做进一步的操作,用QProcess去调用脚本,QProcess获取最后的结果

雪狼孤竹 8天前
  • 举报
回复
@阿克蒙德麟 试过,没用。
  • 打赏
  • 举报
回复

@天外怪魔 @ClayQ @赵4老师
谢谢各位的回复!
我目前是使用QProcess做了些尝试,但都不能得到直接在控制台输入的结果。

第一种方式

//            QString qstrCmd = QString("/bin/sh -c \"microcom -t 10000 -s 9600 /dev/ttyUSB1\"");
            QString qstrCmd = QString("microcom -t 10000 -s 9600 /dev/ttyUSB1");
            QProcess::execute(qstrCmd);
            thread()->msleep(5000);
//            /*QString*/ qstrCmd = QString("/bin/sh -c \"AT+QNETDEVCTL=1,1,1\"");  //报异常
            /*QString*/ qstrCmd = QString("AT+QNETDEVCTL=1,1,1");
            QProcess::execute(qstrCmd);

第二种方式

            QProcess microcomProcess;

                // 设置microcom的命令行参数
                QStringList arguments;
                arguments << "-t" << "10000" << "-s" << "9600" << "/dev/ttyUSB1" ; // 根据你的设备和波特率修改

                // 启动microcom进程
                microcomProcess.start("microcom", arguments);

                // 等待microcom启动
                if (!microcomProcess.waitForStarted())
                {
                    qDebug() << "Microcom didn't start";
//                    return -1;
                }

                // 向microcom写入AT指令
                microcomProcess.write("AT+QNETDEVCTL=1,1,1"); // 报指令错误

                // 等待数据从microcom可用
                if (microcomProcess.waitForReadyRead())
                {
                    // 读取microcom的输出并打印
                    QString output = microcomProcess.readAllStandardOutput();
                    qDebug() << output;
                }
                else
                {
                    qDebug() << "No data received from microcom";
                }

以上两种都是无法达到控制台输出的结果。

我不太清楚,Qt是否能实现控制台的这种操作。 第一条命令是打开microcom程序,换行但不是新的指令行,然后输入第二条指令,执行,执行完后会出现新的指令行。

  • 打赏
  • 举报
回复

使用QProcess就可以,你能说下使用QProcess后还有什么问题吗?

img

ClayQ 04-10
  • 打赏
  • 举报
回复

使用QProcess可以

16,222

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧