小弟刚学QT未满一个月很多东西都还不是很熟 而且自己也不算本科生
因为工作关系才开始接触QT
要写一个由PC端控制连结USB转Rs232port的硬体设备
硬体设备端一个介面有大概23个左右的变数,总共有7个操控介面要切换
开启程式的的时候抓取硬体设备的
资料并且依相应的DSP Address的值放到对应的控件内
然后UI修改值之后发送修改值到到硬体相对应的DSP Address内
之前有用过Serialport简单控制一个模拟器过 但是DSP Address我没碰过 要怎么写这样的通信协定
自己拉了UI写了一下代码但是实在
没有头绪怎么继续写下去了
window.open('http://www.qtcn.org/bbs/attachment/Mon_1611/18_176460_348a3b7b297a9ef.jpg?350');" style="max-width:700px;max-height:700px;" onload="if(is_ie6&&this.offsetWidth>700)this.width=700;" > 頭文件
- #ifndef MAINWINDOW_H
- #define MAINWINDOW_H
- #include <QMainWindow>
- #include <QSpinBox>
- #include <QDebug>
- #define Gain_Dsp //
- #define Level_Dsp //
- #define Aux_Send_Dsp //
- #define Rev_Send_Dsp //
- #define Pan_Dsp //
- #define Eq_Hi_Dsp //
- #define Eq_Hi_Freq_Dsp //
- #define Eq_Mid_Dsp //
- #define Eq_Mid_Freq_Dsp //
- #define Eq_Mid_Q_Dsp //
- #define Eq_Lo_Dsp //
- #define Eq_Lo_Freq_Dsp //
- #define Gate_Dsp //
- #define Gate_Threshold_Dsp //
- #define Gate_Release_Dsp //
- #define Comp_Dsp //
- #define Comp_Threshold_Dsp //
- #define Comp_Ratio_Dsp //
- #define Comp_Attack_Dsp //
- #define Comp_Release_Dsp //
- #define Delay_Dsp //
- #define Aux_Delay_Dsp //
- #define Solo_Dsp //
- #define Mute_Dsp //
- namespace Ui {
- class MainWindow;
- }
- class MainWindow : public QMainWindow
- {
- Q_OBJECT
- public:
- explicit MainWindow(QWidget *parent = 0);
- ~MainWindow();
- public slots:
- void Ch1_Gain(int Gainvalue);
- void Ch1_Level(int Levelvalue);
- void Ch1_AuxSend(int AuxSendvalue);
- void Ch1_RevSend(int RevSendvalue);
- void Ch1_Pan(int Panvalue);
- private:
- Ui::MainWindow *ui;
- };
- #endif // MAINWINDOW_H
主
文件- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- #include <QtSerialPort/QSerialPort>
- QSerialPort *Txserialport;
- QSerialPort *Rxserialport;
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- Rxserialport=new QSerialPort(this);//讀取串口設置
- Txserialport=new QSerialPort(this);//傳送串口設置
- Rxserialport->open(QIODevice::ReadWrite);
- Txserialport->open(QIODevice::ReadWrite);
- Rxserialport->setBaudRate(QSerialPort::Baud115200);
- Txserialport->setBaudRate(QSerialPort::Baud115200);
- Rxserialport->setDataBits(QSerialPort::Data8);
- Txserialport->setDataBits(QSerialPort::Data8);
- Rxserialport->setParity(QSerialPort::SpaceParity);
- Txserialport->setParity(QSerialPort::SpaceParity);
- Rxserialport->setStopBits(QSerialPort::OneStop);
- Txserialport->setStopBits(QSerialPort::OneStop);
-
-
-
-
-
-
- connect(ui->Gain_spinBox,SIGNAL(valueChanged(int)),
- this,SLOT(Ch1_Gain(int)));
- connect(ui->Level_spinBox,SIGNAL(valueChanged(int)),
- this,SLOT(Ch1_Gain(int)));
- connect(ui->Aux_Send_spinBox,SIGNAL(valueChanged(int)),
- this,SLOT(Ch1_AuxSend(int)));
- connect(ui->Rev_Send_spinBox,SIGNAL(valueChanged(int)),
- this,SLOT(Ch1_RevSend(int)));
- connect(ui->Pan_comboBox,SIGNAL(currentIndexChanged(int)),
- this,SLOT(Ch1_Pan(int)));
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- Rxserialport->close();
- Txserialport->close();
- }
- //發射端
- void MainWindow::Ch1_Gain(int Gainvalue)
- {
- Txserialport->write(ui->Gain_spinBox->text().toStdString().data());
- }
- void MainWindow::Ch1_Level(int Levelvalue)
- {
- Txserialport->write(ui->Level_spinBox->text().toStdString().data());
- }
- void MainWindow::Ch1_AuxSend(int AuxSendvalue)
- {
- Txserialport->write(ui->Aux_Send_spinBox->text().toStdString().data());
- }
- void MainWindow::Ch1_RevSend(int RevSendvalue)
- {
- Txserialport->write(ui->Aux_Send_spinBox->text().toStdString().data());
- }
- void MainWindow::Ch1_Pan(int Panvalue)
- {
- Txserialport->write(ui->Pan_comboBox->currentText().toStdString().data());
- }