原创 QT 保存日志 用例

2023-6-9 10:31 1193 7 7 分类: MCU/ 嵌入式 文集: QT
最近在使用串口读一些数据,但是总会出现些发、送之间的冲突问题,为了弄清楚问题的所在,于是产生了想法,做了一个日志保存。
void Widget::SaveLogTxt(QString dat )
  • {
  • QDateTime currenttime = QDateTime::currentDateTime();
  • QString strDate = currenttime.toString("yyyy/MM/dd");
  • QString strTime = currenttime.toString("hh:mm:ss.zzz");
  • QString path = QCoreApplication::applicationDirPath();
  • QString strPath = "C://Users//user//Desktop//RS485/log.txt";
  • qDebug()<<strPath;
  • QFile file(strPath);
  • bool isOK = file.open(QIODevice::WriteOnly|QIODevice::Append);
  • if(isOK){
  • QTextStream stream(&file);
  • stream<<strDate<<strTime<<"\r\n";
  • stream<<dat<<"\r\n";
  • }
  • qDebug()<<dat;
  • file.close();
  • }
  • 复制代码



    void Widget::getData()
  • {
  • // QByteArray rxData;
  • QString strTemp;
  • uint8_t index = 0;
  • QByteArray datTemp ,temp;
  • strLog = "";
  • strLog += "收到的数据";
  • strLog += "\r\n";
  • rxData = serial_device->readAll();
  • for(int i = 0 ; i < rxData.size() ; i++){
  • //解析到帧头
  • if(0x55 == rxData[i] && 0xaa == (uint8_t)rxData[i+1]){
  • index = i;
  • qDebug()<<"index"<<index;
  • //拷贝剩余数据
  • for(int j = 0 ; j < rxData.size() - index; j++){
  • datTemp[j]= rxData[index+j];
  • }
  • qDebug()<<"datTempSize"<<datTemp.size()<<"datTemp"<<datTemp.toHex(':');
  • SaveLogTxt("解析到指令数据\r\n"+datTemp.toHex(':'));
  • writedata();
  • }else{
  • index = 0;
  • datTemp.clear();
  • }
  • }
  • for(int i = 0 ; i < rxData.size() ; i++){
  • strTemp.sprintf("%02x",(uint8_t)rxData[i]);
  • strLog += strTemp + " ";
  • }
  • rxData.clear();
  • SaveLogTxt(strLog);
  • }
  • 复制代码

    void Widget::writedata()
  • {
  • QString strTemp;
  • strLog = "";
  • strLog += "发送的数据";
  • strLog += "\r\n";
  • uint8_t TxData[6]={0x55 ,0xaa, 0x03, 0x82, 0x02};//获取市电状态
  • TxData[5] = (TxData[0] + TxData[1] +TxData[2] + TxData[3] + TxData[4])&0xff;
  • for(int i = 0 ; i < 6 ; i++){
  • strTemp.sprintf("%02x",TxData[i]);
  • strLog += strTemp + " ";
  • }
  • serial_device->write((const char*)TxData , 6);
  • SaveLogTxt(strLog);
  • }
  • 复制代码
    QT

    作者: E_ARM, 来源:面包板社区

    链接: https://mbb.eet-china.com/blog/uid-me-3989713.html

    版权声明:本文为博主原创,未经本人允许,禁止转载!

    PARTNER CONTENT

    文章评论0条评论)

    登录后参与讨论
    我要评论
    0
    7
    关闭 站长推荐上一条 /1 下一条