网站正在建设中的,wordpress后台界面更改,东莞app制作公司,上海网站建设红旗一.第一步打开串口和关闭串口 打开串口之前需要完成以下参数配置
1.配置串口2.配置波特率3.配置数据位4.配置校验位5.配置停止位6.配置流控7.打开串口8.关闭串口
配置完以上参数才可与串口连接上#xff0c;打开串口后#xff0c;以上参数不可修改#xff0c;需要关闭串口…一.第一步打开串口和关闭串口 打开串口之前需要完成以下参数配置
1.配置串口2.配置波特率3.配置数据位4.配置校验位5.配置停止位6.配置流控7.打开串口8.关闭串口
配置完以上参数才可与串口连接上打开串口后以上参数不可修改需要关闭串口才可以修改 QMessageBox类当打开串口失败需要提示失败的原因以及打开成功在会学串口助手左下角显示COMx Is Open 二.发送按键
1.需要将横线里面的内容读取
2.判断发送按键是否按下按下则发送否则未发送
3.发送成功在左下角显示Send OK
4.记录发送数据的大小
5.发送新行检测新行按键是否按下在字符串后面添加\r\n 三.定时发送QTimer类
1.在ui界面将按键转为槽函数bool类型
2.定时需要定时器定义一个定时器
3.连接一个信号与槽函数 使用 C11 Lambda表达式 connect(sender, Sender::signal, []() { /*执行函数 */ }); connect(timer,QTimer::timeout,[](){ on_pushButton_Send_clicked(); });
4.按下时将定时器开启关闭时将定时器停止结束发送 四.HEX发送QByteArray类
1.hex发送需要满足两个要求
1判断横线的字符串是否为偶数位方式 字符串%2
2判断横线的字符串是否满足HEX进制表达 用函数判断std::isxdigit字符串
满足这两个要求即将横线的字符串转为HEX进制的字符 五.接收QSerialPort类
1.如何接收发送的内容显示在TextEdit上
QSerialPort类继承QIODevice类有个信号readyRead()需要在串口上进行信号与槽的绑定 connect(sender, SIGNAL(signal()), receiver, SLOT(slot())); connect(serialPort,QSerialPort::readyRead,this,Widget::on_serialData_readyToRead);
在槽函数里面接收一个端口发送的字符串将字符串打印在TextEdit上。
2.如何接收显示HEX进制的内容QByteArray类
1将新接收的数据进行类型转换成HEXQString-QByteArray
2把原来在TextEdit的文本提取出来
3将文本进行拼接TextEditQString-QByteArray 新接收的数据 六.清空接收
1.在ui界面中将该按键转为槽函数清空接收的文本即将文本设置位“ ”空。 七.保存接收QFileDialog类
1.将文本定义一个QFileDialog类的QFileDialog::getSaveFileName得到保存的地址以及文件的类型。
2.打开文件只写和文本模式
3.输入文件的内容
4.关闭文件 八.接收时间QDateTime类
1.获取时间QDateTime currentTime QDateTime::currentDateTime(); /* 获取当前的日期 */
2.获取日期年月日QDate date currentTime.date();
3.获取时间时分秒QTime time currentTime.time();
4.显示在列表Mytime QString(%1-%2-%3 %4:%5:%6) .arg(year,2,10,QChar(0)).arg(month,2,10,QChar(0)) .arg(day,2,10,QChar(0)) .arg(hour,2,10,QChar(0)).arg(minute,2,10,QChar(0)) .arg(second,2,10,QChar(0));
5.调用一个信号与槽函数connect(getSysTimer,SIGNAL(timeout()),this,SLOT(time_Reflash()));将1234在槽函数里面获取及显示在文本上。
6.在接收函数为非HEX进制显示判断该checkBox接收时间是否按下在接收文本前加上时间Mytime字符串 进行显示。 九.自动换行
1.在接收函数显示判断该checkBox接收时间是否按下在接收文本后加上字符串\r\n 进行显示。用rev.append“\r\n” 十.隐藏面板隐藏历史
1.在ui界面中将该按键转为槽函数含有bool类型清空接收的文本接收历史面板隐藏 十一.多文本发送
1.每个按键都建立槽函数但是这样代码过长不方便管理
2.利用数组将每个按键遍历出来。
1建立一个全局数组 QListQPushButton * buttons;
2利用一个for循环遍历9个按键
3将每个按键的名字打印出来QString类型
4用QPushButton *btn findChildQPushButton *(按键的名字)QObject类函数找到ui界面时哪个按键按下 (5)将找到的btn添加到buttons的数组里面
6建立一个按键的信号与槽函数:connect(btn,SIGNAL(clicked()),this,SLOT(on_commandButtonClicked())); (7)找出发送信号的按键QPushButton *btn qobject_castQPushButton *(sender());
8定义一个数字获取哪个按键的序号int num btn-property(buttonID).toInt();
9重新构建lineEditcheckBox以num为遍历9个lineEditcheckBox与pushButton对应
10调用发送函数实现功能 十二.多文本定时发送
与定时发送一致
十三.多文本重置按键QMessageBox类
1.点击重置按键提示是否要重置文本内容是与否
2.重置文本
1清空lineEdit里面的内容
2HEX复位 十四.多文本保存QFileDialog类
与保存接收一致
十五.多文本载入QFileDialog类
1.将文本定义一个QFileDialog类的QFileDialog::getOpenFileName得到打开的地址以及文件的类型。
2.打开文件只读和文本模式
3.遍历9个lineEditcheckBox并读取的内容
4.关闭文件