304 lines
7.8 KiB
C
304 lines
7.8 KiB
C
|
|
|||
|
// TouchBoardDlg.h : <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
//
|
|||
|
|
|||
|
#pragma once
|
|||
|
|
|||
|
#include "TouchSetupDlg.h"
|
|||
|
#include "TouchButton.h"
|
|||
|
#include "LogEdit.h"
|
|||
|
#include "afxwin.h"
|
|||
|
#include "ColorButton.h"
|
|||
|
#include "RoundButton2.h"
|
|||
|
#include "RoundButtonStyle.h"
|
|||
|
|
|||
|
#undef PSAPI_VERSION
|
|||
|
#define PSAPI_VERSION 1
|
|||
|
|
|||
|
#include <Psapi.h>
|
|||
|
#pragma comment(lib, "psapi.lib")
|
|||
|
|
|||
|
#define USE_ROUND_BUTTON2 1
|
|||
|
//#define USE_DO_PACKET_DUMP 1
|
|||
|
//#define USE_PACKET_DUMP_FILE 1
|
|||
|
//#define USE_DUMMY_DATA_FOR_UI 1
|
|||
|
|
|||
|
#define TBD_SETTING_FILE "tbd.ini"
|
|||
|
#define TBD_CLIENT_DEFAULT_PORT 17080
|
|||
|
#define TBD_RECV_BUFSIZE (1024 * 512)
|
|||
|
#define TBD_SEND_BUFSIZE (1024 * 512)
|
|||
|
#define TBD_STANDARD_WIDTH 1280
|
|||
|
#define TBD_STANDARD_HEIGHT 1024
|
|||
|
|
|||
|
#if TBD_BUTTON_UI_STYLE == 2
|
|||
|
#define TBD_BTN_WIDTH 152
|
|||
|
#define TBD_BTN_HEIGHT 45
|
|||
|
#define TBD_BTN_ICON_WIDTH 30
|
|||
|
#define TBD_BTN_ICON_HEIGHT 45
|
|||
|
#else
|
|||
|
#define TBD_BTN_WIDTH 152
|
|||
|
#define TBD_BTN_HEIGHT 45
|
|||
|
#define TBD_BTN_ICON_WIDTH 30
|
|||
|
#define TBD_BTN_ICON_HEIGHT 45
|
|||
|
//#define TBD_BTN_HEIGHT 60
|
|||
|
//#define TBD_BTN_ICON_WIDTH 15
|
|||
|
//#define TBD_BTN_ICON_HEIGHT 15
|
|||
|
#endif
|
|||
|
|
|||
|
|
|||
|
#if TBD_BUTTON_UI_STYLE == 2
|
|||
|
#define TBD_BTN_SUB_MARGIN_X 6
|
|||
|
#define TBD_BTN_SUB_MARGIN_Y 6
|
|||
|
#if USE_ROUND_BUTTON2
|
|||
|
#define TBD_BTN_GROUP_START_X 206
|
|||
|
#else
|
|||
|
#define TBD_BTN_GROUP_START_X 235
|
|||
|
#endif
|
|||
|
#define TBD_BTN_GROUP_START_Y 95
|
|||
|
|
|||
|
#define TBD_BTN_SUB_START_X 210
|
|||
|
#if USE_ROUND_BUTTON2
|
|||
|
#define TBD_BTN_SUB_START_Y 230
|
|||
|
#else
|
|||
|
#define TBD_BTN_SUB_START_Y 220
|
|||
|
#endif
|
|||
|
#define TBD_BTN_SUB_COLUMN_SIZE 5
|
|||
|
#define TBD_BTN_GROUP_MARGIN_Y 12
|
|||
|
#else
|
|||
|
#define TBD_BTN_SUB_MARGIN_X 8
|
|||
|
#define TBD_BTN_SUB_MARGIN_Y 8
|
|||
|
#define TBD_BTN_GROUP_START_X 240
|
|||
|
#define TBD_BTN_GROUP_START_Y 110
|
|||
|
#define TBD_BTN_SUB_START_X 210
|
|||
|
#define TBD_BTN_SUB_START_Y 260
|
|||
|
#define TBD_BTN_SUB_COLUMN_SIZE 5
|
|||
|
#define TBD_BTN_GROUP_MARGIN_Y 20
|
|||
|
#endif
|
|||
|
|
|||
|
#define TBD_BTN_GROUP_LINE_BASE_COLOR RGB(150, 150, 150)
|
|||
|
#define TBD_BTN_GROUP_LINE_CHECK_COLOR RGB(200, 0, 0)
|
|||
|
|
|||
|
//#define ACT_BTN_REGION_BACK_COLOR RGB(0, 50, 150)
|
|||
|
//#define ACT_BTN_REGION_BACK_COLOR RGB(20, 40, 65)
|
|||
|
#define ACT_BTN_REGION_BACK_COLOR RGB(58, 58, 67)
|
|||
|
#define STATUS_BTN_GOOD_BACK_COLOR RGB(57, 119, 206)
|
|||
|
|
|||
|
#define TOPBAR_BACK_COLOR RGB(58, 58, 67)
|
|||
|
#define GLOBAL_BACK_COLOR RGB(232, 242, 247)
|
|||
|
|
|||
|
#define TBD_MAX_STATION_COUNT 1000
|
|||
|
#define TBD_MAX_GROUP_COUNT 30
|
|||
|
|
|||
|
#define TBD_SERVER_COMMAND_STATION_INFORM 10000
|
|||
|
#define TBD_SERVER_COMMAND_STATION_NOTIFY 10001
|
|||
|
#define TBD_SERVER_COMMAND_CAST_STATUS 10002
|
|||
|
#define TBD_SERVER_COMMAND_DEVICE_STATUS 10003
|
|||
|
|
|||
|
#define TBD_REQUEST_CAST_TYPE_ALL 100
|
|||
|
#define TBD_REQUEST_CAST_TYPE_FIRE 101
|
|||
|
#define TBD_REQUEST_CAST_TYPE_RESQUE 102
|
|||
|
#define TBD_REQUEST_CAST_TYPE_EMERGENCY 103
|
|||
|
#define TBD_REQUEST_CAST_TYPE_GENERAL 104
|
|||
|
#define TBD_REQUEST_CAST_TYPE_WHOLE 105
|
|||
|
|
|||
|
#define TBD_TIMER_EVENT_SOCKET 1000
|
|||
|
|
|||
|
typedef struct _tMonitor
|
|||
|
{
|
|||
|
int nWidth; // Width
|
|||
|
int nHeight; // Height
|
|||
|
int nWidthVirtual; // Width Virtual
|
|||
|
int nHeightVirtual; // Height Virtual
|
|||
|
int nBitPerPixel; // BitPerPixel
|
|||
|
int nRefresh; // Refresh
|
|||
|
int nMonitor; // Monitors
|
|||
|
int nMegaPixel; // MegaPixel
|
|||
|
BOOL bSameDisplayFormat; // SameDisplayFormat
|
|||
|
RECT rcVirtual;
|
|||
|
CArray< MONITORINFOEX, MONITORINFOEX > aryMonitors;
|
|||
|
} TMONITOR;
|
|||
|
|
|||
|
class CStationInfo
|
|||
|
{
|
|||
|
public:
|
|||
|
int mGroupIdx;
|
|||
|
int mSubGroupId;
|
|||
|
int mWardId; // <20><>ID
|
|||
|
int mUpWardId; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD> ID
|
|||
|
int mStationId; // <20><><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD> ID
|
|||
|
int mLevel;
|
|||
|
int mSubCount; // <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD>̼<EFBFBD> <20><><EFBFBD><EFBFBD>
|
|||
|
|
|||
|
int mCallerNo; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><>ȣ
|
|||
|
int mCallerCviNo; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> CT CVI <20><>ȣ
|
|||
|
|
|||
|
int mNickIndex; // <20><>ġ <20><EFBFBD> <20><><EFBFBD><EFBFBD> <20>ε<EFBFBD><CEB5><EFBFBD>
|
|||
|
boolean mIsHeader;
|
|||
|
CString mNickName;
|
|||
|
CString mIpAddr;
|
|||
|
|
|||
|
int mBtnPosX;
|
|||
|
int mBtnPosY;
|
|||
|
int mBtnGroupRow; // added by ritoseo - 2022-02-03
|
|||
|
int mBtnShiftRow; // added by ritoseo - 2022-02-03
|
|||
|
boolean mGrouping;
|
|||
|
RECT mGroupBox;
|
|||
|
CTouchButton* m_pButton;
|
|||
|
};
|
|||
|
|
|||
|
|
|||
|
// CTouchBoardDlg <20><>ȭ <20><><EFBFBD><EFBFBD>
|
|||
|
class CTouchBoardDlg : public CDialogEx
|
|||
|
{
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
|||
|
public:
|
|||
|
CTouchBoardDlg(CWnd* pParent = NULL); // ǥ<><C7A5> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
|||
|
|
|||
|
// <20><>ȭ <20><><EFBFBD><EFBFBD> <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
|||
|
enum { IDD = IDD_TOUCHBOARD_DIALOG };
|
|||
|
|
|||
|
protected:
|
|||
|
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
|||
|
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD>Դϴ<D4B4>.
|
|||
|
protected:
|
|||
|
HICON m_hIcon;
|
|||
|
|
|||
|
CString m_strServerAddr;
|
|||
|
CString m_strESAddr;
|
|||
|
CString m_strPSAddr;
|
|||
|
SOCKET m_sock;
|
|||
|
INT32 m_port;
|
|||
|
TMONITOR m_infoMonitor;
|
|||
|
CString m_strDeviceName;
|
|||
|
CString m_strCviNo;
|
|||
|
CString m_strWardId;
|
|||
|
CMutex m_infoMutex;
|
|||
|
|
|||
|
char m_sendBuffer[TBD_SEND_BUFSIZE];
|
|||
|
char m_recvBuffer[TBD_RECV_BUFSIZE];
|
|||
|
INT32 m_sendSize;
|
|||
|
INT32 m_recvSize;
|
|||
|
INT32 m_iRequestWaitFlag;
|
|||
|
BOOL m_bIsActive;
|
|||
|
CMutex m_sockMutex;
|
|||
|
CWinThread *m_pReceiveThread;
|
|||
|
CWinThread *m_pPingThread;
|
|||
|
CTouchSetupDlg m_setupDlg;
|
|||
|
|
|||
|
CxImage m_ciSymbol;
|
|||
|
CxImage m_ciBackground;
|
|||
|
CDC* m_pMemDC;
|
|||
|
CBitmap* m_pDCBitmap;
|
|||
|
CPen* m_pDidLinePen;
|
|||
|
|
|||
|
INT32 m_iSelectGroup;
|
|||
|
CStationInfo *m_pStationList[TBD_MAX_STATION_COUNT];
|
|||
|
INT32 m_stationCount;
|
|||
|
|
|||
|
INT32 m_iGroupBtnCount;
|
|||
|
CTouchButton *m_pGroupBtn[TBD_MAX_GROUP_COUNT];
|
|||
|
|
|||
|
INT32 m_iScreenWidth;
|
|||
|
INT32 m_iScreenHeight;
|
|||
|
BOOL m_bIsFullHD;
|
|||
|
|
|||
|
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD> <20><EFBFBD><DEBD><EFBFBD> <20><> <20>Լ<EFBFBD>
|
|||
|
virtual BOOL OnInitDialog();
|
|||
|
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
|
|||
|
afx_msg void OnPaint();
|
|||
|
afx_msg HCURSOR OnQueryDragIcon();
|
|||
|
DECLARE_MESSAGE_MAP()
|
|||
|
|
|||
|
void WideToMultiByte(const wchar_t *src, char* dest);
|
|||
|
void MultiByteToWide(const char* src, wchar_t *dest, int buffersize);
|
|||
|
in_addr* atoaddr(char *address);
|
|||
|
SOCKET ConnectRequest(char *pAddress, int port);
|
|||
|
INT32 SocketSend(char *sendData, int datasize);
|
|||
|
INT32 PacketDizest(char *pBuffer);
|
|||
|
int GetMonitorInformation(void);
|
|||
|
void UpdateSettingToVariable();
|
|||
|
void UpdateSubGroupList();
|
|||
|
void UpdateTouchButtonList();
|
|||
|
void CalcButtonPositioning();
|
|||
|
void RequestCastOrder(INT32 iCastType);
|
|||
|
ULONG ProcIDFromWnd(HWND hwnd);
|
|||
|
HWND GetWinHandle(ULONG pid);
|
|||
|
void PrintProcessNameAndID(DWORD processID, CString& strPath);
|
|||
|
BOOL EnumProcessAndFocus(CString processPath);
|
|||
|
void MoveWindowDirection(CWnd *pWnd, INT32 xpos, INT32 ypos);
|
|||
|
|
|||
|
static UINT SocketReceiveThread(LPVOID aParam);
|
|||
|
static UINT SocketConnectionThread(LPVOID aParam);
|
|||
|
static UINT PingCheckThread(LPVOID aParam);
|
|||
|
public:
|
|||
|
CFont m_titleFont;
|
|||
|
CFont m_topFont;
|
|||
|
CFont m_castFont;
|
|||
|
CFont m_btnFont;
|
|||
|
CFont m_btnSmallFont;
|
|||
|
CFont m_logFont;
|
|||
|
CFont m_btnUnderFont;
|
|||
|
CLogEdit m_logEdit;
|
|||
|
|
|||
|
#if USE_ROUND_BUTTON2
|
|||
|
CRoundButtonStyle m_tButtonStyle;
|
|||
|
CRoundButtonStyle m_tTopStyle[5];
|
|||
|
CRoundButtonStyle m_tActStyle[8];
|
|||
|
CRoundButton2 *m_pTopButton[5];
|
|||
|
CRoundButton2 *m_pActButton[8];
|
|||
|
#else
|
|||
|
CColorButton *m_pTopButton[5];
|
|||
|
CColorButton *m_pActButton[8];
|
|||
|
#endif
|
|||
|
CColorButton *m_pStatusButton[3];
|
|||
|
|
|||
|
CString getStrWardId() {
|
|||
|
CString strResult;
|
|||
|
m_infoMutex.Lock();
|
|||
|
strResult = m_strWardId;
|
|||
|
m_infoMutex.Unlock();
|
|||
|
|
|||
|
return strResult;
|
|||
|
}
|
|||
|
|
|||
|
CString getStrDeviceName() {
|
|||
|
CString strResult;
|
|||
|
m_infoMutex.Lock();
|
|||
|
strResult = m_strDeviceName;
|
|||
|
m_infoMutex.Unlock();
|
|||
|
|
|||
|
return strResult;
|
|||
|
}
|
|||
|
|
|||
|
INT32 SocketSendExceptionHandle(char *sendData, int datasize);
|
|||
|
|
|||
|
afx_msg void OnBnClickedButtonSetup();
|
|||
|
afx_msg void OnDestroy();
|
|||
|
afx_msg LRESULT OnTbdSetupSave(WPARAM wParam, LPARAM lParam);
|
|||
|
afx_msg LRESULT OnTbdUpdateLevel2(WPARAM wParam, LPARAM lParam);
|
|||
|
afx_msg LRESULT OnTbdLevel2Push(WPARAM wParam, LPARAM lParam);
|
|||
|
afx_msg LRESULT OnTbdLogUpdate(WPARAM wParam, LPARAM lParam);
|
|||
|
afx_msg LRESULT OnTbdSubGrouping(WPARAM wParam, LPARAM lParam);
|
|||
|
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
|
|||
|
|
|||
|
afx_msg void OnBnClickedButtonCastAll();
|
|||
|
afx_msg void OnBnClickedButtonCastFire();
|
|||
|
afx_msg void OnBnClickedButtonCastRescue();
|
|||
|
afx_msg void OnBnClickedButtonCastEmergency();
|
|||
|
afx_msg void OnBnClickedButtonCastNormal();
|
|||
|
afx_msg void OnBnClickedButtonRestore();
|
|||
|
afx_msg void OnBnClickedButtonWireless();
|
|||
|
afx_msg void OnBnClickedButtonCall();
|
|||
|
afx_msg void OnClose();
|
|||
|
afx_msg void OnBnClickedButtonCastWhole();
|
|||
|
|
|||
|
afx_msg void OnTimer(UINT_PTR nIDEvent);
|
|||
|
afx_msg void OnBnClickedButtonMicvolMinus();
|
|||
|
afx_msg void OnBnClickedButtonMicvolPlus();
|
|||
|
afx_msg void OnBnClickedButtonSpkvolMinus();
|
|||
|
afx_msg void OnBnClickedButtonSpkvolPlus();
|
|||
|
afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
|
|||
|
};
|