TCL Copy ToolDlg.h 9.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345
  1. 
  2. // TCL ToolsDlg.h: 头文件
  3. //
  4. #pragma once
  5. #include "SubLabel.h"
  6. #include "BtnST.h"
  7. #include "CritSection.h"
  8. #define STATUS_DEFAULT_COLOR RGB(128, 64, 64)
  9. #define STATUS_WARN_COLOR RGB(255, 64, 64)
  10. #define STATUS_ERROR_COLOR RGB(255, 0, 0)
  11. #define STATUS_OK_COLOR RGB(34, 177, 76)
  12. // 默认文本色;
  13. #define BLACK_TEXT_COLOR RGB(0, 0, 0)
  14. #define DEFAULT_TEXT_COLOR RGB(0, 0, 0)
  15. #define NORMAL_TEXT_COLOR RGB(0, 0, 255)
  16. #define OK_TEXT_COLOR RGB(0, 255, 0)
  17. #define WARN_TEXT_COLOR RGB(255, 64, 64)
  18. // 默认背景色;
  19. #define DEFAULT_BG_COLOR RGB(155, 194, 230)
  20. // 对话框颜色 ;
  21. #define DEFAULT_DLG_COLOR RGB(239,228,176)
  22. // 消息;
  23. #define WM_GET_ORDERNUM (WM_USER + 1)
  24. #define WM_GET_BARCODE (WM_USER + 3)
  25. // 白平衡数据定义
  26. #define WB_OFFSET 0x100 // 冷暖色温偏移量计算
  27. enum { R = 0, G, B, WB_MAX }; // R/G/B通道定义
  28. ////////////////////////////////////////////////////////////////////////
  29. //enum LOG_ENUM
  30. //{
  31. // NORMAL_LOG = 0,
  32. // ERROR_LOG,
  33. // OK_LOG,
  34. // INFO_LOG
  35. //};
  36. // CTCLCopyToolDlg 对话框
  37. class CTCLCopyToolDlg : public CDialogEx
  38. {
  39. // 构造
  40. public:
  41. CTCLCopyToolDlg(CWnd* pParent = nullptr); // 标准构造函数
  42. // 对话框数据
  43. #ifdef AFX_DESIGN_TIME
  44. enum { IDD = IDD_TCLCOPYTOOL_DIALOG };
  45. #endif
  46. protected:
  47. virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
  48. public:
  49. BOOL m_bRunning;
  50. CRect m_rcWind;
  51. DWORD m_dwTickCount;
  52. Global::TChassis* m_pCurChassis;
  53. std::vector<std::string> m_vtCOM;
  54. void InitCtrl();
  55. void InitColumn();
  56. void InitCombobox_port();
  57. void InitCombobox_baudrate();
  58. void InitCombobox_Chassis();
  59. void InitKeyCountLabel();
  60. void InitWriteStatusLabel();
  61. void InitReadStatusLabel();
  62. void InitCheckStatusLabel();
  63. void RetSetSiacpStatus();
  64. BOOL IsPortInserted(LPCTSTR lpPort);
  65. void EnableChassisCheckbox();
  66. void UpdateKeyCount(BOOL bUseThread = TRUE);
  67. void SetLabelKeyCount(std::string count, CLabel *pLabel);
  68. void SetLabelKeyCount(std::string key_type, int mode = 0);
  69. void UpdateChassisCheckBoxStatus();
  70. void SaveChange2Config();
  71. void UpdateAutoOnlineMode();
  72. void RetSetChassisCheckBox();
  73. void SetLabelResult(int nStatus = -1, BOOL bWriteLog = FALSE);
  74. void SetSiacpStatus(CLabel& label, BOOL bOK = TRUE);
  75. void SetWindowTitle(std::string client_type);
  76. std::string GetFileCount(std::string key_type);
  77. BOOL ReadKeyFile(std::string dir, std::string& data);
  78. BOOL ReadKeyFile(std::string dir, std::string& data, std::string &file);
  79. // 串口操作;
  80. BOOL Siacp_MTKInit();
  81. BOOL Siacp_EnterFactoryMode();
  82. BOOL Siacp_GetClientType(std::string &client_type);
  83. BOOL Siacp_GetSofteVersion(std::string &soft_version);
  84. BOOL Siacp_SetProjectId();
  85. BOOL Siacp_GetProjectId();
  86. BOOL Siacp_SetWB();
  87. BOOL Siacp_SetChannel(std::string &channel);
  88. BOOL Siacp_GetChannel(std::string channel);
  89. BOOL Siacp_SetOSDLanguage(std::string& language);
  90. BOOL Siacp_GetOSDLanguage(std::string language);
  91. BOOL Siacp_SetShopLanguage(std::string& language);
  92. BOOL Siacp_GetShopLanguage(std::string language);
  93. BOOL Siacp_SetDeviceId(std::string &deviceid);
  94. BOOL Siacp_CheckDeviceId();
  95. BOOL Siacp_GetDeviceId(std::string deviceid);
  96. BOOL Siacp_SetMac(std::string &mac);
  97. BOOL Siacp_CheckMac();
  98. BOOL Siacp_GetMac(std::string mac);
  99. BOOL Siacp_SetHDCP(std::string& hdcp);
  100. BOOL Siacp_CheckHDCP();
  101. BOOL Siacp_GetHDCP(std::string hdcp);
  102. BOOL Siacp_SetHDCP22(std::string& hdcp22);
  103. BOOL Siacp_CheckHDCP22();
  104. BOOL Siacp_GetHDCP22(std::string hdcp22);
  105. BOOL Siacp_SetWidi(std::string& widi);
  106. BOOL Siacp_CheckWidi();
  107. BOOL Siacp_GetWidi(std::string widi);
  108. BOOL Siacp_SetWidevine(std::string& widevine);
  109. BOOL Siacp_CheckWidevine();
  110. BOOL Siacp_GetWidevine(std::string widevine);
  111. BOOL Siacp_SetESN(std::string& esn);
  112. BOOL Siacp_CheckESN();
  113. BOOL Siacp_GetESN(std::string esn);
  114. BOOL Siacp_SetCikey(std::string& cikey);
  115. BOOL Siacp_CheckCikey();
  116. BOOL Siacp_GetCikey(std::string cikey);
  117. std::vector<std::string> m_vt_key_files;
  118. inline void DeleteKeyFiles()
  119. {
  120. for ( auto file:m_vt_key_files)
  121. {
  122. DeleteFile(file.c_str());
  123. }
  124. m_vt_key_files.clear();
  125. }
  126. CHARFORMAT m_cf_normal;
  127. CHARFORMAT m_cf_error;
  128. CHARFORMAT m_cf_ok;
  129. CHARFORMAT m_cf_info;
  130. void InitLogCharFormat();
  131. inline void SetOptionLog(CString strLogs, LOG_ENUM logtype = NORMAL_LOG)
  132. {
  133. m_edit_log.SetSel(-1, -1);
  134. if ( logtype == NORMAL_LOG )
  135. m_edit_log.SetSelectionCharFormat(m_cf_normal);
  136. else if ( logtype == ERROR_LOG )
  137. m_edit_log.SetSelectionCharFormat(m_cf_error);
  138. else if (logtype == OK_LOG)
  139. m_edit_log.SetSelectionCharFormat(m_cf_ok);
  140. else if (logtype == INFO_LOG)
  141. m_edit_log.SetSelectionCharFormat(m_cf_info);
  142. if (strLogs.GetLength() > 59)
  143. strLogs = strLogs.Left(59) + _T("...\r");
  144. m_edit_log.ReplaceSel(strLogs);
  145. m_edit_log.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
  146. }
  147. inline void SetOptionLog(std::string strLogs, LOG_ENUM logtype = NORMAL_LOG)
  148. {
  149. m_edit_log.SetSel(-1, -1);
  150. if (logtype == NORMAL_LOG)
  151. m_edit_log.SetSelectionCharFormat(m_cf_normal);
  152. else if (logtype == ERROR_LOG)
  153. m_edit_log.SetSelectionCharFormat(m_cf_error);
  154. else if (logtype == OK_LOG)
  155. m_edit_log.SetSelectionCharFormat(m_cf_ok);
  156. else if (logtype == INFO_LOG)
  157. m_edit_log.SetSelectionCharFormat(m_cf_info);
  158. if (strLogs.size() > 59)
  159. strLogs = strLogs.substr(0, 59) + _T("...\r");
  160. m_edit_log.ReplaceSel(strLogs.c_str());
  161. m_edit_log.PostMessage(WM_VSCROLL, SB_BOTTOM, 0);
  162. }
  163. //////////////////////////////////////////////////////////////////////////
  164. #if 1
  165. BOOL m_bAutofocus;
  166. BOOL m_bGetBarCode;
  167. BOOL m_bGetOrderNum;
  168. HANDLE m_hThread;
  169. DWORD m_dwThreadId;
  170. static DWORD WINAPI ThreadGetMessage(LPVOID lpParam);
  171. #endif
  172. static HHOOK m_hHook;
  173. static LRESULT WINAPI CBTHookProc(long nCode, WPARAM wparam, LPARAM lparam);
  174. // 实现
  175. protected:
  176. HICON m_hIcon;
  177. // 生成的消息映射函数
  178. virtual BOOL OnInitDialog();
  179. afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
  180. afx_msg void OnPaint();
  181. afx_msg HCURSOR OnQueryDragIcon();
  182. afx_msg BOOL OnDeviceChange(UINT nEventType, DWORD_PTR dwData);
  183. DECLARE_MESSAGE_MAP()
  184. public:
  185. CString m_strLastBid;
  186. afx_msg void OnTimer(UINT_PTR nIDEvent);
  187. CComboBox m_cb_com;
  188. CComboBox m_cb_baudrate;
  189. CComboBox m_cb_mode;
  190. CComboBox m_cb_chassis;
  191. afx_msg void OnBnClickedHide();
  192. afx_msg void OnCbnSelchangeMode();
  193. // check box控件;
  194. CButton m_check_mtk_init;
  195. CButton m_check_wb_init;
  196. CButton m_check_pid;
  197. CButton m_check_channel;
  198. CButton m_check_osd_lang;
  199. CButton m_check_shop_lang;
  200. CButton m_check_did;
  201. CButton m_check_mac;
  202. CButton m_check_hdcp;
  203. CButton m_check_hdcp22;
  204. CButton m_check_widi;
  205. CButton m_check_widevine;
  206. CButton m_check_esn;
  207. CButton m_check_cikey;
  208. CButton m_check_wb_write;
  209. // combobox;
  210. CComboBox m_cb_channel;
  211. CComboBox m_cb_osd_lang;
  212. CComboBox m_cb_shop_lang;
  213. // 余量显示控件;
  214. CLabel m_lb_did_count;
  215. CLabel m_lb_mac_count;
  216. CLabel m_lb_hdcp_count;
  217. CLabel m_lb_hdcp22_count;
  218. CLabel m_lb_widi_count;
  219. CLabel m_lb_widevine_count;
  220. CLabel m_lb_esn_count;
  221. CLabel m_lb_cikey_count;
  222. // wb init;
  223. CLabel m_lb_wb_init;
  224. // 写状态控件;
  225. CLabel m_lb_wb_write;
  226. CLabel m_lb_pid_write;
  227. CLabel m_lb_channel_write;
  228. CLabel m_lb_osd_lang_write;
  229. CLabel m_lb_shop_lang_write;
  230. CLabel m_lb_did_write;
  231. CLabel m_lb_mac_write;
  232. CLabel m_lb_hdcp_write;
  233. CLabel m_lb_hdcp22_write;
  234. CLabel m_lb_widi_write;
  235. CLabel m_lb_widevine_write;
  236. CLabel m_lb_esn_write;
  237. CLabel m_lb_cikey_write;
  238. // check状态控件;
  239. CLabel m_lb_pid_check;
  240. CLabel m_lb_channel_check;
  241. CLabel m_lb_osd_lang_check;
  242. CLabel m_lb_shop_lang_check;
  243. CLabel m_lb_did_check;
  244. CLabel m_lb_mac_check;
  245. CLabel m_lb_hdcp_check;
  246. CLabel m_lb_hdcp22_check;
  247. CLabel m_lb_widi_check;
  248. CLabel m_lb_widevine_check;
  249. CLabel m_lb_esn_check;
  250. CLabel m_lb_cikey_check;
  251. // 读状态控件;
  252. CLabel m_lb_pid_read;
  253. CLabel m_lb_channel_read;
  254. CLabel m_lb_osd_lang_read;
  255. CLabel m_lb_shop_lang_read;
  256. CLabel m_lb_did_read;
  257. CLabel m_lb_mac_read;
  258. CLabel m_lb_hdcp_read;
  259. CLabel m_lb_hdcp22_read;
  260. CLabel m_lb_widi_read;
  261. CLabel m_lb_widevine_read;
  262. CLabel m_lb_esn_read;
  263. CLabel m_lb_cikey_read;
  264. afx_msg void OnCbnSelchangeChassis();
  265. CString m_str_pid; // 控件关联的pid值;
  266. afx_msg void OnBnClickedStart();
  267. CLabel m_lb_enter_factory_mode;
  268. CLabel m_lb_enter_factory_mode_status;
  269. // 列标题;
  270. CLabel m_lb_column_a1;
  271. CLabel m_lb_column_a2;
  272. CLabel m_lb_column_a3;
  273. CLabel m_lb_column_a4;
  274. CLabel m_lb_column_a5;
  275. CLabel m_lb_column_b1;
  276. CLabel m_lb_column_b2;
  277. CLabel m_lb_column_b3;
  278. CLabel m_lb_column_b4;
  279. CLabel m_lb_column_b5;
  280. CLabel m_lb_result;// 结果;
  281. // 隐藏界面按钮;
  282. CButtonST m_btn_hide;
  283. // 条码;
  284. CString m_str_sn;
  285. // 批次号;
  286. CString m_str_bid;
  287. afx_msg HBRUSH OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor);
  288. afx_msg void OnEnChangeSn();
  289. // wb内容;
  290. byte m_chWBNormalBuffer[WB_MAX];
  291. byte m_chWBWarmBuffer[WB_MAX];
  292. byte m_chWBCoolBuffer[WB_MAX];
  293. afx_msg void OnBnClickedWbFile();
  294. virtual void OnCancel();
  295. virtual void OnOK();
  296. afx_msg void OnBnClickedLock();
  297. afx_msg void OnBnClickedFocus();
  298. afx_msg void OnEnChangeOrder();
  299. afx_msg void OnGetKeyCountClicked(UINT id);
  300. CRichEditCtrl m_edit_log;
  301. CButton m_check_verify_pid;
  302. CButton m_check_verify_client_type;
  303. CButton m_check_verify_soft_version;
  304. afx_msg void OnBnClickedConfig();
  305. virtual BOOL PreTranslateMessage(MSG* pMsg);
  306. afx_msg void OnCbnSelchangeCom();
  307. afx_msg void OnCbnSelchangeBd();
  308. CButton m_check_set;
  309. CButtonST m_btn_cancel;
  310. CButtonST m_btn_manual_start;
  311. CButton m_check_focus;
  312. CButton m_check_lock;
  313. CLabel m_lb_test_mode;
  314. afx_msg void OnBnClickedWbWrite();
  315. };