Files
CodeRepository/Apps/App_ResistanceMatcher/mainwindow.h

129 lines
3.1 KiB
C
Raw Normal View History

#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