浏览代码

1、新增tcp处理测试精灵按键请求;
2、修复默认使用测试精灵时,没有加载xml文件的问题;

scbc.sat2 5 年之前
父节点
当前提交
12974a8c78

+ 13 - 0
SATHelper/SATHelper/IOCPModel.cpp

@@ -900,6 +900,11 @@ void CIOCPModel::_TaskProcess(PER_IO_CONTEXT* pIoContext, ProPackage* pak)
 	{
 		_CaptureProc(pIoContext, pak);
 	}
+	else if (pak->header.version == 0xAC)
+	{
+		// 测试精灵;
+		_TestWizardProc(pIoContext, pak);
+	}
 }
 
 void CIOCPModel::_DeviceProc(PER_IO_CONTEXT* pIoContext, ProPackage* pak)
@@ -968,6 +973,14 @@ void CIOCPModel::_CaptureProc(PER_IO_CONTEXT* pIoContext, ProPackage* pak)
 
 }
 
+void CIOCPModel::_TestWizardProc(PER_IO_CONTEXT* pIoContext, ProPackage* pak)
+{
+	if (TW::SendKey) {
+		std::string key = (char*)&pak->buf;
+		TW::SendKey(key.c_str());
+	}
+}
+
 /////////////////////////////////////////////////////////////////////
 // 判断客户端Socket是否已经断开,否则在一个无效的Socket上投递WSARecv操作会出现异常
 // 使用的方法是尝试向这个socket发送数据,判断这个socket调用的返回值

+ 2 - 0
SATHelper/SATHelper/IOCPModel.h

@@ -49,6 +49,7 @@ typedef struct _RESPONSE_JSON_
 }ResponseJson;
 
 
+
 //////////////////////////////////////////////////////////////////
 // 在完成端口上投递的I/O操作的类型
 typedef enum _OPERATION_TYPE  
@@ -271,6 +272,7 @@ protected:
 	// 具体处理;
 	void _DeviceProc(PER_IO_CONTEXT* pIoContext, ProPackage*pak);
 	void _CaptureProc(PER_IO_CONTEXT* pIoContext, ProPackage* pak);
+	void _TestWizardProc(PER_IO_CONTEXT* pIoContext, ProPackage* pak);
 private:
 
 	HANDLE                       m_hShutdownEvent;              // 用来通知线程系统退出的事件,为了能够更好的退出线程

+ 7 - 0
SATHelper/SATHelper/IRControlWnd.cpp

@@ -202,7 +202,14 @@ int CIRControlWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
 
 	StartIRDevice(FALSE);
 	if (Global::g_Config.enableTW)
+	{
+		std::string signaldir = Global::g_Config.twSignaldir;
+		std::string signalpath = signaldir + "\\";
+		signalpath.append(Global::g_Config.twUseSignal + ".xml");
+
 		TW::OpenDevice(Global::g_Config.twPort, 115200, 8, 0, 0);
+		TW::LoadXml(signalpath.c_str());
+	}
 
 	std::thread t([](CIRControlWnd *pWnd) {
 		//while (true)

+ 2 - 1
SATHelper/SATHelper/MainFrm.cpp

@@ -1198,7 +1198,8 @@ void CMainFrame::InitDevicePanel()
 		_stprintf_s(m_szCurMenuTreeDir, _T("%s%s%s\\%s\\"), m_rscfg.sat_home.c_str(), _T("resource\\MenuTree\\"), strCurChip.GetString(), strCurStyle.GetString());
 	}
 
-
+// 	if (Global::g_Config.enableTW)
+// 		TW::OpenDevice(Global::g_Config.twPort, 115200, 8, 0, 0);
 
 	// 启动设备;
 	Global::GetSysSerialPort(m_vtCOM);