harold00124 |
2016-11-22 11:37 |
求思路 PC端UI控制
小弟刚学QT未满一个月很多东西都还不是很熟 而且自己也不算本科生 因为工作关系才开始接触QT 要写一个由PC端控制连结USB转Rs232port的硬体设备 硬体设备端一个介面有大概23个左右的变数,总共有7个操控介面要切换 开启程式的的时候抓取硬体设备的资料并且依相应的DSP Address的值放到对应的控件内 然后UI修改值之后发送修改值到到硬体相对应的DSP Address内 之前有用过Serialport简单控制一个模拟器过 但是DSP Address我没碰过 要怎么写这样的通信协定 自己拉了UI写了一下代码但是实在没有头绪怎么继续写下去了 [attachment=16090] 頭文件
- #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()); }
|
|