找回密码
 立即注册
收起左侧

如何使得LINCOM通过串口发送的文本转为命令行来控制板子...

12
回复
8869
查看
[复制链接]
累计签到:29 天
连续签到:1 天
来源: 2013-7-18 14:58:25 显示全部楼层 |阅读模式
1Qter豆
yafe好,我最近需要做一个在板子上运行的基于Qt的串口程序。然后把一个板子当成一个移动的串口控制器来控制其他板子
现在的情况是我准备先在Ubuntu下调试好该串口程序,我主要下载了你们写的LINCOM,想准备在上面改改,也很好地运行起来了,下面的图是我用LINCOM读一块板子启动的传过来的信息:



然后,在那个发送功能也没有什么问题,但是现在我需要通过发送来发送一些指令,譬如回车或者poweroff之类的,但是这里发过去的好像都是文本,板子识别不了我不知道是不是能够在这里改的 :
void MainWindow::sendMsg()
{
    myCom->write(ui->sendMsgLineEdit->text().toAscii());
    ui->textBrowser->append(tr("发送: ") + ui->sendMsgLineEdit->text());
    ui->statusBar->showMessage(tr("发送数据成功"));
}

把toAscii改成其他还是怎么弄
主要还算我现在发不回车,板子不能进入console,命令发过去也没用
想请教下,谢谢!
附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

QString str = "\n"; myCom->write(str.toLatin1().data()); 是这样的吗?
回复

使用道具 举报

尚未签到

2013-7-18 14:58:26 显示全部楼层
QString str = "\n";
myCom->write(str.toLatin1().data());
是这样的吗?
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-18 15:10:14 显示全部楼层
有人说,说要把发送的字符转化成字节
回复

使用道具 举报

尚未签到

2013-7-18 15:33:54 显示全部楼层
ui->sendMsgLineEdit->text().toLatin1().data()
后面不加个.data()应该前面有四个字节表示字符串的长度。
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-18 15:47:05 显示全部楼层
竞风 发表于 2013-7-18 15:33
ui->sendMsgLineEdit->text().toLatin1().data()
后面不加个.data()应该前面有四个字节表示字符串的长度。 ...

谢谢,那我现在要给板子发一个回车的操作,应该输入在发送框输入什么
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-18 15:48:53 显示全部楼层
竞风 发表于 2013-7-18 15:33
ui->sendMsgLineEdit->text().toLatin1().data()
后面不加个.data()应该前面有四个字节表示字符串的长度。 ...

或者说,我能在语句里面实现吗,每次发送前我都发送一个回车操作先
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-18 17:04:16 显示全部楼层
竞风 发表于 2013-7-18 17:00
QString str = "\n";
myCom->write(str.toLatin1().data());
是这样的吗?

我试试,我发现现在就是这个回车怎么发过去的问题了
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-18 17:18:05 显示全部楼层
本帖最后由 uiaxiaobo 于 2013-7-18 17:20 编辑
竞风 发表于 2013-7-18 17:00
QString str = "\n";
myCom->write(str.toLatin1().data());
是这样的吗?

爱死你了!
但是现在貌似我每次发命令给板子他都加了一个回车,导致后面的命令我都至少要发两次他才能得到

回复

使用道具 举报

尚未签到

2013-7-18 17:28:28 显示全部楼层
这个应该是板子进行操作的时候没办法接收指令的原因吧。
发送完一个命令,等一会再发下一个。
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-18 17:31:24 显示全部楼层
竞风 发表于 2013-7-18 17:28
这个应该是板子进行操作的时候没办法接收指令的原因吧。
发送完一个命令,等一会再发下一个。 ...

是我NC了,shell命令敲完都是要回车才能执行的,我改成在每句命令后面加上你给我的命令,现在除了乱码问题,已经可以了控制板子了。
我下班了,明天来采纳你
十分感谢!
回复

使用道具 举报

累计签到:181 天
连续签到:1 天
2013-7-19 09:06:28 显示全部楼层
我们有新的QCom是可以实现16进制发送和接收的,你可以下载下来看看。地址;http://www.qter.org/forum.php?mod=forumdisplay&fid=38
回复

使用道具 举报

累计签到:29 天
连续签到:1 天
2013-7-19 09:58:15 显示全部楼层
hzzhou 发表于 2013-7-19 09:06
我们有新的QCom是可以实现16进制发送和接收的,你可以下载下来看看。地址;http://www.qter.org/forum.php? ...

好的,谢谢!
我现在在用的是yafe的lincom,好像也可以发十六进制的
最终是要在板子上面跑这个lincom来控制单片机的,单片机也没学过,我估摸着比较悬
现在还需要加个滑条,用来发控制板子上的电流,我先在Ubuntu下改好先
回复

使用道具 举报

累计签到:181 天
连续签到:1 天
2013-7-23 08:41:14 显示全部楼层
这个qcom是我和yafei一起写的,只不过是lincom和wincom的升级版。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

公告
可以关注我们的微信公众号yafeilinux_friends获取最新动态,或者加入QQ会员群进行交流:190741849、186601429(已满) 我知道了