129 lines
3.1 KiB
C
129 lines
3.1 KiB
C
|
|
#ifndef MAINWINDOW_H
|
|||
|
|
#define MAINWINDOW_H
|
|||
|
|
|
|||
|
|
//#include "AsioWrapper/AsioWrapper.h"
|
|||
|
|
//#include "AsioWrapper/NetworkToolset.h"
|
|||
|
|
//using namespace network_toolset;
|
|||
|
|
|
|||
|
|
#include <thread>
|
|||
|
|
using namespace std;
|
|||
|
|
|
|||
|
|
#include <QMainWindow>
|
|||
|
|
#include <QComboBox>
|
|||
|
|
#include <QTimer>
|
|||
|
|
#include <QStandardItemModel>
|
|||
|
|
|
|||
|
|
#include "StatusFrame.h"
|
|||
|
|
#include "GuiInvoker.h"
|
|||
|
|
|
|||
|
|
namespace Ui
|
|||
|
|
{
|
|||
|
|
class MainWindow;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
#ifndef __byte_def__
|
|||
|
|
#define __byte_def__
|
|||
|
|
typedef unsigned char BYTE, Byte, byte;
|
|||
|
|
#endif
|
|||
|
|
|
|||
|
|
/*
|
|||
|
|
* 并联电阻结构体
|
|||
|
|
*/
|
|||
|
|
typedef struct tagResistance_UnifiedNode
|
|||
|
|
{
|
|||
|
|
double dResistance_R_0; // 并联电阻0
|
|||
|
|
double dResistance_R_1; // 并联电阻1
|
|||
|
|
bool bUnified; // 是否为并联电阻节点
|
|||
|
|
} Resistance_UnifiedNode;
|
|||
|
|
|
|||
|
|
enum eMatchMode
|
|||
|
|
{
|
|||
|
|
eMatchMode1 = 1, // 匹配模式1(分压电阻模式)
|
|||
|
|
eMatchMode2 = 2, // 匹配模式2(电源输出模式)
|
|||
|
|
eMatchMode3 = 3, // 匹配模式3(并联电阻模式)
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
class MainWindow : public QMainWindow
|
|||
|
|
{
|
|||
|
|
Q_OBJECT
|
|||
|
|
|
|||
|
|
public:
|
|||
|
|
explicit MainWindow(QWidget* parent = 0);
|
|||
|
|
~MainWindow();
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
void Connect();
|
|||
|
|
void Disconnect();
|
|||
|
|
|
|||
|
|
void DoMatchMode1_NonUnified();
|
|||
|
|
void DoMatchMode1_Unified();
|
|||
|
|
void DoMatchMode2_NonUnified();
|
|||
|
|
void DoMatchMode2_Unified();
|
|||
|
|
void DoMatchMode3();
|
|||
|
|
|
|||
|
|
void ResetItemData();
|
|||
|
|
void SetItemData(int nItemIndex,
|
|||
|
|
const QString& strModeType_R1_0, double dValue_R1_0,
|
|||
|
|
const QString& strModeType_R1_1, double dValue_R1_1,
|
|||
|
|
const QString& strModeType_R2_0, double dValue_R2_0,
|
|||
|
|
const QString& strModeType_R2_1, double dValue_R2_1,
|
|||
|
|
double dMatchResult);
|
|||
|
|
|
|||
|
|
void UpdateTableViewHeader(eMatchMode eMode);
|
|||
|
|
|
|||
|
|
static void OnUpdateUI(void* pParams, void* pOwner);
|
|||
|
|
void DoUpdateUI(void* pParams);
|
|||
|
|
|
|||
|
|
protected:
|
|||
|
|
virtual void resizeEvent(QResizeEvent* event);
|
|||
|
|
virtual bool eventFilter(QObject* obj, QEvent* event);
|
|||
|
|
|
|||
|
|
private slots:
|
|||
|
|
void OnButtonClicked();
|
|||
|
|
void OnCurrentIndexChanged(int nIndex);
|
|||
|
|
|
|||
|
|
void OnResetItemData();
|
|||
|
|
|
|||
|
|
void OnTimer();
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
void InitStyle();
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
typedef bool (MainWindow::* pCallback_ThreadFun)();
|
|||
|
|
|
|||
|
|
static void ThreadEntry(pCallback_ThreadFun pThreadFun, void* pOwner);
|
|||
|
|
|
|||
|
|
private:
|
|||
|
|
Ui::MainWindow* ui;
|
|||
|
|
|
|||
|
|
QPoint m_ptMouse;
|
|||
|
|
bool m_bMousePressed;
|
|||
|
|
|
|||
|
|
const int m_nDisplayCount_Max = 200;
|
|||
|
|
|
|||
|
|
eMatchMode m_eMatchMode;
|
|||
|
|
|
|||
|
|
///
|
|||
|
|
std::shared_ptr<QStandardItemModel> m_pDataModel_MatchResult;
|
|||
|
|
|
|||
|
|
bool m_bThreadRunning_RecvCmd;
|
|||
|
|
std::thread* m_pThread_RecvCmd;
|
|||
|
|
|
|||
|
|
//std::mutex m_mutex_IPAddr;
|
|||
|
|
|
|||
|
|
//
|
|||
|
|
QTimer m_varTimer_UpdateStatus;
|
|||
|
|
bool m_bUpdateStatus;
|
|||
|
|
int m_nTryCount_UpdateStatus;
|
|||
|
|
|
|||
|
|
///
|
|||
|
|
StatusFrame* m_pStatusFrame;
|
|||
|
|
|
|||
|
|
QByteArrayList m_listMsgData;
|
|||
|
|
std::shared_ptr<GuiInvoker> m_ptrGuiInvoker_RecvData;
|
|||
|
|
std::shared_ptr<GuiInvoker> m_ptrGuiInvoker_Disconnect;
|
|||
|
|
};
|
|||
|
|
|
|||
|
|
#endif // MAINWINDOW_H
|