从零开始实现自己的串口调试助手(3) - 显示底部收发,优化串口打开/关闭

注意:


1. 我们要实现自发自收,要将tx,rx连起来


2.发送的 不能是中文符号,因为这可能导致,读取到的是英文符号 --> 导致接收到的size 和发送的size 大小不一致

3.注意同时定义两个槽函数的时候两个槽函数都会被调用,我们应该注释掉不需要的那个,爆率剩下的那个避免产生干扰

实现收发消息数的显示:

//并且做了一个历史判断 -->避免重复记录 

修改代码:


void Widget::on_btnSendContext_clicked()
{
    const char * sendData = ui->lineEdit_SendContext->text().toStdString().c_str();//QString->String(C++)->char*
    int writeCnt = 0;
    writeCnt = serialPort->write(sendData);
    if(writeCnt == - 1){
      ui->label_SendStatus->setText("SendError!");
    }
    else {
    writeCntTotal += writeCnt;
    qDebug()<<"Send:"<<sendData;
    qDebug()<<"writeCnt"<<writeCnt;

    ui->label_SendStatus->setText("SendOK!");
    ui->label_SendCnt->setNum(writeCntTotal);
    if(strcmp(sendData,sendBak.toStdString().c_str())!=0){ //只有当数据与上一次不相等的时候我们才会追加到我们的历史发生中
     ui->textEditRecord->append(sendData);
     sendBak = QString(sendData);
    }

    }
}

void Widget::on_SerialData_readToRead()
{
  QString recvMessage = serialPort->readAll();
  if(recvMessage != NULL){
  qDebug()<<"get Message: "<<recvMessage;
  ui->textEditRev->append(recvMessage);
  readCntTotal += recvMessage.size();
  qDebug()<<"readCnt"<<recvMessage.size();
  ui->label_RecvCnt->setNum(readCntTotal);
 }


}

输出效果

================================================================

添加关闭/打开按钮功能

添加打开失败的判断:QMessageBox

添加代码

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值