#ifndef MAINWINDOW_H #define MAINWINDOW_H //#include "AsioWrapper/AsioWrapper.h" //#include "AsioWrapper/NetworkToolset.h" //using namespace network_toolset; #include using namespace std; #include #include #include #include #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 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 m_ptrGuiInvoker_RecvData; std::shared_ptr m_ptrGuiInvoker_Disconnect; }; #endif // MAINWINDOW_H