Pārlūkot izejas kodu

引用U盘强升模块。

sat23 4 gadi atpakaļ
vecāks
revīzija
8e6008be95

+ 4 - 0
SATHelper/SATHelper/Global.cpp

@@ -347,6 +347,10 @@ namespace Global
 		g_Config.usbPort = GetPrivateProfileInt(_T("UsbSwitch"), _T("Com"), 0, szConfigpath);
 		g_Config.enableUSB = GetPrivateProfileInt(_T("SATHelper"), _T("enableUSB"), 0, szConfigpath);
 		g_Config.nPowerLanIndex = GetPrivateProfileInt(_T("PowerCtrl"), _T("LanIndex"), 0, szConfigpath);
+
+		// µçÊÓ´®¿Ú;
+		g_Config.tvPort = GetPrivateProfileInt(_T("SATHelper"), _T("TVPort"), 0, szConfigpath);
+		g_Config.enableTVPort = GetPrivateProfileInt(_T("SATHelper"), _T("enableTVPort"), 0, szConfigpath);
 	}
 
 	BOOL GetOrientation(IN Image* pImg)

+ 4 - 0
SATHelper/SATHelper/Global.h

@@ -64,6 +64,10 @@ namespace Global
 
 		// 电源控制Lan;
 		int nPowerLanIndex;
+
+		// 是否启动TV串口;
+		bool enableTVPort;
+		int tvPort;
 	}STConfig, * pSTConfig;
 
 	// 读取baidu.cfg配置文件内容;

+ 13 - 3
SATHelper/SATHelper/IOCPModel.cpp

@@ -993,6 +993,16 @@ void CIOCPModel::_TestWizardProc(PER_IO_CONTEXT* pIoContext, ProPackage* pak)
 
 		if (_tcsicmp(szType, _T("usb")) == 0 && TW::SendSwitch) 
 			bRet = TW::SendSwitch(_tstoi((char*)&pak->buf[4]));
+
+		// 电视串口;
+		if (_tcsicmp(szType, _T("tv")) == 0 && USBUPGRADE::RTK_USBUpgrade)
+		{
+			bRet = TRUE;
+			if (pak->buf[4] == 0)
+				USBUPGRADE::RTKUpgrade(0x09);	// VK_TAB
+			else
+				USBUPGRADE::RTKUpgrade(0x1B);	// VK_ESC	
+		}
 	}
 
 	char* retdata = bRet ? "1" : "0";
@@ -1007,9 +1017,9 @@ void CIOCPModel::_TestWizardProc(PER_IO_CONTEXT* pIoContext, ProPackage* pak)
 void CIOCPModel::_TVWatchProc(PER_IO_CONTEXT* pIoContext, ProPackage* pak)
 {
 	// 串口启动时,需要同时启动监听功能;
-	// SendCommand:
-	// WatchWord
-	// RTKUpgrade
+	// SendCommand:// 指令,循环次数,每次循环Sleep时间;
+	// WatchWord // 要监听的关键字,监听时长;
+	// RTKUpgrade // 升级方式:VK_TAB、VK_ESC;
 }
 
 /////////////////////////////////////////////////////////////////////

+ 37 - 0
SATHelper/SATHelper/MainFrm.cpp

@@ -112,6 +112,8 @@ BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWndEx)
 	ON_UPDATE_COMMAND_UI(ID_COMBO_POWER, &CMainFrame::OnUpdateComboPower)
 	ON_COMMAND(ID_POWER_CTRL, &CMainFrame::OnPowerCtrl)
 	ON_UPDATE_COMMAND_UI(ID_POWER_CTRL, &CMainFrame::OnUpdatePowerCtrl)
+	ON_COMMAND(ID_CHECK_TVPORT, &CMainFrame::OnCheckTvport)
+	ON_UPDATE_COMMAND_UI(ID_CHECK_TVPORT, &CMainFrame::OnUpdateCheckTvport)
 END_MESSAGE_MAP()
 
 // CMainFrame 构造/析构
@@ -1288,6 +1290,11 @@ void CMainFrame::InitDevicePanel()
  	if (Global::g_Config.enableUSB)
 		TW::OpenSwitch(Global::g_Config.usbPort, 115200, 8, 0, 0);
 
+	if (Global::g_Config.enableTVPort) {
+		USBUPGRADE::OpenTVPort(Global::g_Config.tvPort, 115200, 8, 0, 0);
+		USBUPGRADE::StartMonitor();
+	}
+
 	// 启动设备;
 	Global::GetSysSerialPort(m_vtCOM);
 	InitCombobox_port();
@@ -1733,6 +1740,10 @@ void CMainFrame::OnCombo2Tv()
 		CString strTVPort = pCombobxTV->GetEditText();
 		WritePrivateProfileString(_T("COMM"), _T("serial_communicator_port"), strTVPort, m_szRsCfgPath);
 		Global::g_rscfg.tv_port = strTVPort.GetString();
+		
+		
+		Global::g_Config.tvPort = atoi(strTVPort.Mid(3));
+		WritePrivateProfileString(_T("SATHelper"), _T("TVPort"), strTVPort.Mid(3), Global::g_szConfig);
 	}
 }
 
@@ -2009,3 +2020,29 @@ void CMainFrame::OnUpdatePowerCtrl(CCmdUI* pCmdUI)
 	// TODO: 在此添加命令更新用户界面处理程序代码
 	pCmdUI->Enable(Global::g_Config.enableTW);
 }
+
+
+void CMainFrame::OnCheckTvport()
+{
+	// TODO: 在此添加命令处理程序代码
+	CMFCRibbonBar* pRibbon = g_pMainFrame->GetRibbonBar();
+	ASSERT_VALID(pRibbon);
+	CMFCRibbonButton* pCheckEnableTV = DYNAMIC_DOWNCAST(CMFCRibbonButton, pRibbon->FindByID(ID_CHECK_TVPORT));
+	Global::g_Config.enableTVPort = !pCheckEnableTV->IsChecked();
+	WritePrivateProfileString(_T("SATHelper"), _T("enableTVPort"), Global::g_Config.enableTVPort ? _T("1") : _T("0"), Global::g_szConfig);
+
+	if (Global::g_Config.enableTVPort)
+	{
+		USBUPGRADE::OpenTVPort(Global::g_Config.tvPort, 115200, 8, 0, 0);
+		USBUPGRADE::StartMonitor();
+	}
+	else
+		USBUPGRADE::CloseTVPort();
+}
+
+
+void CMainFrame::OnUpdateCheckTvport(CCmdUI* pCmdUI)
+{
+	// TODO: 在此添加命令更新用户界面处理程序代码
+	pCmdUI->SetCheck(Global::g_Config.enableTVPort);
+}

+ 2 - 0
SATHelper/SATHelper/MainFrm.h

@@ -273,6 +273,8 @@ public:
 	afx_msg void OnUpdateComboPower(CCmdUI* pCmdUI);
 	afx_msg void OnPowerCtrl();
 	afx_msg void OnUpdatePowerCtrl(CCmdUI* pCmdUI);
+	afx_msg void OnCheckTvport();
+	afx_msg void OnUpdateCheckTvport(CCmdUI* pCmdUI);
 };
 
 

+ 1 - 0
SATHelper/SATHelper/SATHelper.cpp

@@ -161,6 +161,7 @@ BOOL CSATHelperApp::InitInstance()
 
 	TW::LoadLibrary();
 	RedRat::LoadLibrary();
+	USBUPGRADE::LoadLibrary();
 
 	// 启动TCP客户端;
 	if (CSATClient::GetInstance()->Start())

+ 10 - 0
SATHelper/SATHelper/USBUpgradeDLL.cpp

@@ -97,4 +97,14 @@ namespace USBUPGRADE {
 			}
 		}
 	}
+
+	void RTKUpgrade(int nKeyType)
+	{
+		std::thread t([](int keyType) {
+			if (RTK_USBUpgrade)
+				RTK_USBUpgrade(keyType);
+			OutputDebugString("Í˳öË¢ÐÂÉ豸Ïß³Ì\n");
+		}, nKeyType);
+		t.detach();
+	}
 }

+ 3 - 3
SATHelper/SATHelper/USBUpgradeDLL.h

@@ -14,8 +14,8 @@ namespace USBUPGRADE {
 	typedef void(*START_MONITOR)();
 	typedef void(*SEND_COMMAND)(LPCTSTR lpCommand, int nSendCount, int nSleep);
 	typedef void(*CLEARBUFFER)();
-	typedef BOOL(*WATCH_WORD)(LPCTSTR lpWatchWord, int nWatchTime);
-	typedef void(*RTK_UPBUPGRADE)(BYTE byKey);
+	typedef bool(*WATCH_WORD)(LPCTSTR lpWatchWord, int nWatchTime);
+	typedef bool(*RTK_UPBUPGRADE)(BYTE byKey);
 
 	//////////////////////////////////////////////////////////////////////////
 	// ÉùÃ÷º¯ÊýÖ¸Õë;
@@ -27,7 +27,7 @@ namespace USBUPGRADE {
 	extern CLEARBUFFER ClearBuffer;
 	extern WATCH_WORD WatchWord;
 	extern RTK_UPBUPGRADE RTK_USBUpgrade;
-	
+	extern void RTKUpgrade(int nKeyType);
 };
 
 

+ 16 - 3
SATHelper/SATHelper/res/ribbon.mfcribbon-ms

@@ -928,10 +928,10 @@
                                     <ELEMENT>
                                         <ELEMENT_NAME>Button_Check</ELEMENT_NAME>
                                         <ID>
-                                            <NAME>ID_CHECK_WATCHTV</NAME>
-                                            <VALUE>32809</VALUE>
+                                            <NAME>ID_CHECK_TVPORT</NAME>
+                                            <VALUE>32835</VALUE>
                                         </ID>
-                                        <TEXT>宕机监听</TEXT>
+                                        <TEXT>电视串口</TEXT>
                                         <PALETTE_TOP>FALSE</PALETTE_TOP>
                                         <ALWAYS_LARGE>FALSE</ALWAYS_LARGE>
                                         <INDEX_SMALL>-1</INDEX_SMALL>
@@ -957,6 +957,19 @@
                                         <DROPDOWN_LIST>TRUE</DROPDOWN_LIST>
                                         <DROPDOWN_LIST_RESIZE>TRUE</DROPDOWN_LIST_RESIZE>
                                     </ELEMENT>
+                                    <ELEMENT>
+                                        <ELEMENT_NAME>Button_Check</ELEMENT_NAME>
+                                        <ID>
+                                            <NAME>ID_CHECK_WATCHTV</NAME>
+                                            <VALUE>32809</VALUE>
+                                        </ID>
+                                        <TEXT>监听</TEXT>
+                                        <PALETTE_TOP>FALSE</PALETTE_TOP>
+                                        <ALWAYS_LARGE>FALSE</ALWAYS_LARGE>
+                                        <INDEX_SMALL>-1</INDEX_SMALL>
+                                        <INDEX_LARGE>-1</INDEX_LARGE>
+                                        <DEFAULT_COMMAND>TRUE</DEFAULT_COMMAND>
+                                    </ELEMENT>
                                 </ELEMENTS>
                             </ELEMENT>
                              <ELEMENT>

+ 1 - 0
SATHelper/SATHelper/resource.h

@@ -200,6 +200,7 @@
 #define ID_SWITCH_USB                   32832
 #define ID_COMBO_POWER                  32833
 #define ID_POWER_CTRL                   32834
+#define ID_CHECK_TVPORT                 32835
 
 // Next default values for new objects
 // 

+ 1 - 1
SATHelper/SATHelper/stdafx.h

@@ -88,6 +88,6 @@ typedef struct __CAPTURE_INFO__
 #include "RedRatDLL.h"
 #include "TestWizardDLL.h"
 #include "CallPython.h"
-
+#include "USBUpgradeDLL.h"
 
 #endif //PCH_H