QT5最有效的串口接收方式

#include "rt_tune.h"
#include "ui_rt_tune.h"
#include <QMessageBox>
#include <QDebug>
#include <QTime>
#include <iostream>
#include <QBrush>
#include <QHeaderView>
#include <QColor>

enum IsBufferMode {DummyHubMode,SingleCodeMode,AllCodeMode,GeneralHubMode }IsHubMode=GeneralHubMode;
long DUTid, gDUTid=0,ClassID,CommandCode;
int  DUTPositionNum=1,SendPositionNum=0x55;
bool DUTidStatus=true;
//QByteArray SendString,sendData;
//long HUBC1=0x90,HUBC2=0x91,HUBC3=0x92;

enum DataName
{
        //  % 25        &                        (           )
             GnIrh     , RhFreq0  ,  Null0  ,QdnBatH   ,QdnBatL      ,
                // *          +        '         -            . 2E
             TambSlp ,DataLg    ,Null1   ,ReportE2   ,AlarmStep,
             // / 2F       0          1          2          3
             CPO			,  Null2   ,  Null3  , Null4     , Null5      ,
             //   4            5        6         7         8
                Null6	,  Null7  ,  Null8 , Null9    , Null10      ,
             //  9           :         ;       < 3C        = 3D
                Null11	,  RHap  ,  RHbp ,  TcoN     , TcoRH0,
             //> 3E           ? 3F    @
             TcoP			,      CntRx, Report , //27

        //upper case 'A' - 'Z'
            RH       ,TJambT		,QdnambTs  ,Ath2     ,ZwGNK0 ,
    /*F*/   QdRH    ,Sn_MSB    ,QdnVos    ,Sn_LSB   ,Qdn0   ,
    /*K*/   ExtPCtrl  ,TIbbTs    ,AltiM     ,QdnBpSet ,QdnA1  ,
    /*P*/   CntR      ,Qdn1      ,QdnA0     ,SLitOn   ,SDLitOn,
    /*U*/   CalcTime  ,QdnB0     ,QdnB1     ,QdnBase  ,READY  ,
            DUTversion,//25
         //   ['        '\'        ']'       '^'      '_'
            CntRout   ,Null12    ,Ucali     ,dTinHeat   ,GNKofB2,
         //'`'

            SLitOff   ,//31          //59
         //lower case 'a' - 'z'  DUTparas:
    /*a*/   Command   ,Bth 	     ,Cth       ,QambBs   ,QHBs,
    /*f*/   AltiFt    ,GNK       ,AlarmScale  ,SdPER    ,IraAve  ,
    /*k*/   BatLow    ,AOffset   ,QdnBp     ,Ira      ,SADint  ,
    /*p*/   MeasHi    ,DACscale	,CtrlFg    ,AlarmKeep  ,FTPOC    ,
    /*u*/   Cupdata   ,Ira0      ,IraIn     ,IraOut   ,ZwGNK   ,
    //Null3->Cupdata
            Pru    ,//57   //0x7A
     //     '{'        '|'        '}'      '~'
            SDLitOff  ,Yolanda,  Nul13, SLtOff,
            QdAp     ,GNKofDU0  ,TJbbW   ,PruLG  ,Null14  ,
//GNKWstk to be del
            Irm    , CntV       ,DB3Pt2  ,DB3Pt3    ,RVH     ,
            Null15   ,Null16       ,dTBath3R,QdRw,PruL2,
    //0x8E
            dTJbbscr  ,EDN ,HUBC1,HUBC2,HUBC3,HUB4,
            HUB5,HUB6,HUB7,HUB8,HUB9,
            HUB10,HUB11,HUB12,HUB13,HUB14,Null17,Null18,
    //switchHub address 0xA0~0xA2
            PortD,PortE,PortPru
};//end of DataName

RT_Tune::RT_Tune(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::RT_Tune)
{
    ui->setupUi(this);
    connect(&mySerial, &QSerialPort::readyRead, this, &RT_Tune::Read_Data, Qt::DirectConnection);
    initialTableWidget();
    FlashTimer = new QTimer(this);
    OpenRS232();
   // SendDUTparaToDUT(HUB13,0x0555);
    Delay(1000);
 //   SendDUTparaToDUT(HUBC3,0x0155);
}

RT_Tune::~RT_Tune()
{
    delete ui;
     mySerial.close();
}


void RT_Tune::initialTableWidget()
{
    QStringList V_header;
    V_header<<"     SN  "<<"    温度"<<" 温度参数 "<<" 温度差异 "<<"    湿度"<<" 湿度参数 "<<" 湿度差异 ";
    ui->DataTable->setVerticalHeaderLabels(V_header);
}
void RT_Tune::OpenRS232()
{

    mySerial.close();
    //设置串口名
    mySerial.setPortName("COM3");
    //设置波特率
    mySerial.setBaudRate(QSerialPort::Baud19200);
    //设置数据位数
    mySerial.setDataBits(QSerialPort::Data8);
    //设置奇偶校验
    mySerial.setParity(QSerialPort::NoParity);
    //设置停止位
    mySerial.setStopBits(QSerialPort::OneStop);
    //设置流控制
    mySerial.setFlowControl(QSerialPort::FlowControl());
    //打开串口
    mySerial.open(QIODevice::ReadWrite);

    if(mySerial.open(QIODevice::ReadWrite))
    {
        mySerial.setDataTerminalReady(true);
    }
    if(mySerial.isOpen()==true){
        ui->StartBtn->setEnabled(true);
      //  connect(mySerial,QSerialPort::readyRead, this,RT_Tune::Read_Data);
      //  connect(&mySerial, &QSerialPort::readyRead, this, &RT_Tune::Read_Data);
    }
    else{//
      
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值