|  | @@ -63,7 +63,7 @@ CIRControlWnd::CIRControlWnd() noexcept
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  CIRControlWnd::~CIRControlWnd()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	FreeLogLibarary();
 | 
	
		
			
				|  |  | +	RedRat::UnloadLibrary();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	for (std::vector<BtnInfo>::iterator it = m_vtBtnInfo.begin(); it != m_vtBtnInfo.end(); it++)
 | 
	
		
			
				|  |  |  	{
 | 
	
	
		
			
				|  | @@ -98,16 +98,17 @@ BEGIN_MESSAGE_MAP(CIRControlWnd, CDockablePane)
 | 
	
		
			
				|  |  |  	ON_WM_SETTINGCHANGE()
 | 
	
		
			
				|  |  |  	ON_WM_PAINT()
 | 
	
		
			
				|  |  |  	ON_MESSAGE(WM_IR_SHOT_IMG, OnIRShotImg)
 | 
	
		
			
				|  |  | +	ON_CBN_SELCHANGE(ID_COMBOBOX_SIGNAL_FILE, &CIRControlWnd::OnCbnSelchangeSignal)
 | 
	
		
			
				|  |  |  	// 信号按钮;
 | 
	
		
			
				|  |  |  	ON_COMMAND_RANGE(BTNID, BTNID + 100, OnSignalBtnClick)
 | 
	
		
			
				|  |  |  	ON_UPDATE_COMMAND_UI_RANGE(BTNID, BTNID + 100, OnUpdateSignalBtn)
 | 
	
		
			
				|  |  |  	// checkbox
 | 
	
		
			
				|  |  |  	ON_UPDATE_COMMAND_UI(ID_CHECKBOX_SIGNAL_TYPE, OnUpdateCheckBox)
 | 
	
		
			
				|  |  |  	ON_COMMAND(ID_CHECKBOX_SIGNAL_TYPE, OnCheckBoxClicked)
 | 
	
		
			
				|  |  | -	//
 | 
	
		
			
				|  |  | -	ON_CBN_SELCHANGE(ID_COMBOBOX_SIGNAL_FILE, &CIRControlWnd::OnCbnSelchangeSignal)
 | 
	
		
			
				|  |  | +	// 重启按钮;
 | 
	
		
			
				|  |  |  	ON_UPDATE_COMMAND_UI(ID_BUTTON_RESTART_PROC, OnUpdateBtnRestartProc)
 | 
	
		
			
				|  |  |  	ON_COMMAND(ID_BUTTON_RESTART_PROC, OnBtnRestartProcClicked)
 | 
	
		
			
				|  |  | +	//ON_UPDATE_COMMAND_UI(ID_BUTTON_RESTART_PROC, OnUpdateReStartBtn)
 | 
	
		
			
				|  |  |  END_MESSAGE_MAP()
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /////////////////////////////////////////////////////////////////////////////
 | 
	
	
		
			
				|  | @@ -169,6 +170,7 @@ int CIRControlWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
 | 
	
		
			
				|  |  |  		TRACE0("未能创建信号集下拉框 \n");
 | 
	
		
			
				|  |  |  		return -1;      // 未能创建
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  	LoadSignals();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	CRect rectCombo;
 | 
	
	
		
			
				|  | @@ -193,7 +195,7 @@ int CIRControlWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	//////////////////////////////////////////////////////////////////////////
 | 
	
		
			
				|  |  |  	// 启动红老鼠;
 | 
	
		
			
				|  |  | -	if (!LoadLogLibarary())
 | 
	
		
			
				|  |  | +	if (!RedRat::LoadLibrary())
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  		AfxMessageBox("加载遥控dll失败,请检测dll是否正常!");
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -285,14 +287,21 @@ void CIRControlWnd::OnCbnSelchangeSignal()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	CString strSignal;
 | 
	
		
			
				|  |  |  	int nCurSel = m_wndSignalCombo.GetCurSel();
 | 
	
		
			
				|  |  | -	if ( nCurSel != CB_ERR )
 | 
	
		
			
				|  |  | +	if (nCurSel != CB_ERR)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  		std::string signalpath;
 | 
	
		
			
				|  |  |  		m_wndSignalCombo.GetLBText(nCurSel, strSignal);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		// 保存到配置文件中;
 | 
	
		
			
				|  |  | -		Global::g_Config.use_signal = strSignal.GetString();
 | 
	
		
			
				|  |  | -		WritePrivateProfileString("ir-device", "use-signal", strSignal.GetString(), Global::g_szConfig);
 | 
	
		
			
				|  |  | +		if (Global::g_Config.enableTW)
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			Global::g_Config.twUseSignal = strSignal.GetString();
 | 
	
		
			
				|  |  | +			WritePrivateProfileString("TestWizard", "useSignal", strSignal.GetString(), Global::g_szConfig);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		else {
 | 
	
		
			
				|  |  | +			Global::g_Config.use_signal = strSignal.GetString();
 | 
	
		
			
				|  |  | +			WritePrivateProfileString("ir-device", "use-signal", strSignal.GetString(), Global::g_szConfig);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	DisableSignalBtn();
 | 
	
	
		
			
				|  | @@ -324,8 +333,8 @@ void CIRControlWnd::StartIRDevice(BOOL bReStart)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  |  	std::thread t([&](BOOL _bReStart_) {
 | 
	
		
			
				|  |  |  		// 结束进程;
 | 
	
		
			
				|  |  | -		if (_bReStart_ && g_CloseApp)
 | 
	
		
			
				|  |  | -			g_CloseApp();
 | 
	
		
			
				|  |  | +		if (_bReStart_ && RedRat::g_CloseApp)
 | 
	
		
			
				|  |  | +			RedRat::g_CloseApp();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  		// 默认加载配置的信号集文件;
 | 
	
		
			
				|  |  |  		std::string signale = Global::g_Config.bGenerics ? Global::g_Config.signaldir + "\\general\\" : Global::g_Config.signaldir + "\\product\\";
 | 
	
	
		
			
				|  | @@ -340,9 +349,9 @@ void CIRControlWnd::StartIRDevice(BOOL bReStart)
 | 
	
		
			
				|  |  |  			m_wndSignalCombo.SelectString(0, Global::g_Config.use_signal.c_str());
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		if ( !g_IsAppRunning(Global::g_Config.redratpath.c_str()) )
 | 
	
		
			
				|  |  | +		if ( !RedRat::g_IsAppRunning(Global::g_Config.redratpath.c_str()) )
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			if (g_StartIRApp(Global::g_Config.redratpath.c_str(), signale.c_str(), 40000))
 | 
	
		
			
				|  |  | +			if (RedRat::g_StartIRApp(Global::g_Config.redratpath.c_str(), signale.c_str(), 40000))
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  |  				TRACE("启动红老鼠进程启动成功\r");
 | 
	
		
			
				|  |  |  			}
 | 
	
	
		
			
				|  | @@ -358,7 +367,7 @@ void CIRControlWnd::StartIRDevice(BOOL bReStart)
 | 
	
		
			
				|  |  |  		// 连接服务器;
 | 
	
		
			
				|  |  |  		for (int i = 0; i < 5; i++)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			if ((bRet = g_Connect(_T("127.0.0.1"), 40000)))
 | 
	
		
			
				|  |  | +			if ((bRet = RedRat::g_Connect(_T("127.0.0.1"), 40000)))
 | 
	
		
			
				|  |  |  				break;
 | 
	
		
			
				|  |  |  			Sleep(1000);
 | 
	
		
			
				|  |  |  		}
 | 
	
	
		
			
				|  | @@ -369,7 +378,7 @@ void CIRControlWnd::StartIRDevice(BOOL bReStart)
 | 
	
		
			
				|  |  |  		// 更新按钮状态;
 | 
	
		
			
				|  |  |  		UpdateSignalBtnStatus();
 | 
	
		
			
				|  |  |  		// 获取设备列表,以逗号分隔;
 | 
	
		
			
				|  |  | -		std::string devices = g_getDeviceNames();
 | 
	
		
			
				|  |  | +		std::string devices = RedRat::g_getDeviceNames();
 | 
	
		
			
				|  |  |  		if (devices.size() == 0)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  |  			AfxMessageBox("当前无红老鼠设备连接!");
 | 
	
	
		
			
				|  | @@ -382,74 +391,128 @@ void CIRControlWnd::StartIRDevice(BOOL bReStart)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CIRControlWnd::ReLoadSignalXml()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	std::string signaldir,signalpath;
 | 
	
		
			
				|  |  | -	if (Global::g_Config.bGenerics)
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -		signaldir = Global::g_Config.signaldir + "\\general\\";
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	else
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -		signaldir = Global::g_Config.signaldir + "\\product\\";
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	signalpath = signaldir;
 | 
	
		
			
				|  |  | -	signalpath.append(Global::g_Config.use_signal + ".xml");
 | 
	
		
			
				|  |  | -	if (!PathFileExists(signalpath.c_str()))
 | 
	
		
			
				|  |  | +	if (Global::g_Config.enableTW)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  | -		AfxMessageBox(_T("该信号文件不存在!"));
 | 
	
		
			
				|  |  | -		// 设置默认的;
 | 
	
		
			
				|  |  | -		CString strSignal;
 | 
	
		
			
				|  |  | -		m_wndSignalCombo.SetCurSel(0);
 | 
	
		
			
				|  |  | -		m_wndSignalCombo.GetLBText(0, strSignal);
 | 
	
		
			
				|  |  | +		std::string signaldir = Global::g_Config.twSignaldir;
 | 
	
		
			
				|  |  | +		std::string signalpath = signaldir;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		signalpath = signaldir;
 | 
	
		
			
				|  |  | -		signalpath.append(strSignal.GetString());
 | 
	
		
			
				|  |  | -		signalpath.append(".xml");
 | 
	
		
			
				|  |  | +		signalpath.append(Global::g_Config.twUseSignal + ".xml");
 | 
	
		
			
				|  |  | +		if (!PathFileExists(signalpath.c_str()))
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			AfxMessageBox(_T("该信号文件不存在!"));
 | 
	
		
			
				|  |  | +			// 设置默认的;
 | 
	
		
			
				|  |  | +			CString strSignal;
 | 
	
		
			
				|  |  | +			m_wndSignalCombo.SetCurSel(0);
 | 
	
		
			
				|  |  | +			m_wndSignalCombo.GetLBText(0, strSignal);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			signalpath = signaldir;
 | 
	
		
			
				|  |  | +			signalpath.append(strSignal.GetString());
 | 
	
		
			
				|  |  | +			signalpath.append(".xml");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			// 保存到配置文件中;
 | 
	
		
			
				|  |  | +			Global::g_Config.twUseSignal = strSignal.GetString();
 | 
	
		
			
				|  |  | +			WritePrivateProfileString("TestWizard", "useSignal", strSignal.GetString(), Global::g_szConfig);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		else // 切换通用类型时用到;
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			m_wndSignalCombo.SelectString(0, Global::g_Config.twUseSignal.c_str());
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -		// 保存到配置文件中;
 | 
	
		
			
				|  |  | -		Global::g_Config.use_signal = strSignal.GetString();
 | 
	
		
			
				|  |  | -		WritePrivateProfileString("ir-device", "use-signal", strSignal.GetString(), Global::g_szConfig);
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	else // 切换通用类型时用到;
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -		m_wndSignalCombo.SelectString(0, Global::g_Config.use_signal.c_str());
 | 
	
		
			
				|  |  | +		// 加载指定目录的xml信号集文件;
 | 
	
		
			
				|  |  | +		if (!TW::LoadXml(signalpath.c_str()))
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			TRACE("加载信号集文件失败\r");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		else
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			TRACE("加载信号集文件成功\r");
 | 
	
		
			
				|  |  | +			UpdateSignalBtnStatus();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | +	else {
 | 
	
		
			
				|  |  | +		std::string signaldir, signalpath;
 | 
	
		
			
				|  |  | +		if (Global::g_Config.bGenerics)
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			signaldir = Global::g_Config.signaldir + "\\general\\";
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		else
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			signaldir = Global::g_Config.signaldir + "\\product\\";
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	// 加载指定目录的xml信号集文件;
 | 
	
		
			
				|  |  | -	if (!g_loadSignalDataSet(signalpath.c_str()))
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -		TRACE("加载信号集文件失败\r");
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	else
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -		TRACE("加载信号集文件成功\r");
 | 
	
		
			
				|  |  | -		UpdateSignalBtnStatus();
 | 
	
		
			
				|  |  | +		signalpath = signaldir;
 | 
	
		
			
				|  |  | +		signalpath.append(Global::g_Config.use_signal + ".xml");
 | 
	
		
			
				|  |  | +		if (!PathFileExists(signalpath.c_str()))
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			AfxMessageBox(_T("该信号文件不存在!"));
 | 
	
		
			
				|  |  | +			// 设置默认的;
 | 
	
		
			
				|  |  | +			CString strSignal;
 | 
	
		
			
				|  |  | +			m_wndSignalCombo.SetCurSel(0);
 | 
	
		
			
				|  |  | +			m_wndSignalCombo.GetLBText(0, strSignal);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			signalpath = signaldir;
 | 
	
		
			
				|  |  | +			signalpath.append(strSignal.GetString());
 | 
	
		
			
				|  |  | +			signalpath.append(".xml");
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +			// 保存到配置文件中;
 | 
	
		
			
				|  |  | +			Global::g_Config.use_signal = strSignal.GetString();
 | 
	
		
			
				|  |  | +			WritePrivateProfileString("ir-device", "use-signal", strSignal.GetString(), Global::g_szConfig);
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		else // 切换通用类型时用到;
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			m_wndSignalCombo.SelectString(0, Global::g_Config.use_signal.c_str());
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 加载指定目录的xml信号集文件;
 | 
	
		
			
				|  |  | +		if (!RedRat::g_loadSignalDataSet(signalpath.c_str()))
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			TRACE("加载信号集文件失败\r");
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		else
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			TRACE("加载信号集文件成功\r");
 | 
	
		
			
				|  |  | +			UpdateSignalBtnStatus();
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CIRControlWnd::LoadSignals()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	filehelper fh;
 | 
	
		
			
				|  |  | -	fh.getfiles_findout_subfolder((Global::g_Config.signaldir + "\\general\\").c_str(), NULL, &m_vtsignal_gen);
 | 
	
		
			
				|  |  | -	fh.getfiles_findout_subfolder((Global::g_Config.signaldir + "\\product\\").c_str(), NULL, &m_vtsignal_pro);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	// 添加到combobox中;
 | 
	
		
			
				|  |  | -	if (Global::g_Config.bGenerics )
 | 
	
		
			
				|  |  | +	if (Global::g_Config.enableTW)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  | +		filehelper fh;
 | 
	
		
			
				|  |  | +		fh.getfiles_findout_subfolder(Global::g_Config.signaldir.c_str(), NULL, &m_vtsignal_tw);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  		m_wndSignalCombo.ResetContent();
 | 
	
		
			
				|  |  | -		for ( auto it : m_vtsignal_gen)
 | 
	
		
			
				|  |  | +		for (auto it : m_vtsignal_tw)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  |  			m_wndSignalCombo.AddString(fh.getfilename(it).c_str());
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  	else
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  | -		m_wndSignalCombo.ResetContent();
 | 
	
		
			
				|  |  | -		for (auto it : m_vtsignal_pro)
 | 
	
		
			
				|  |  | +		filehelper fh;
 | 
	
		
			
				|  |  | +		fh.getfiles_findout_subfolder((Global::g_Config.signaldir + "\\general\\").c_str(), NULL, &m_vtsignal_gen);
 | 
	
		
			
				|  |  | +		fh.getfiles_findout_subfolder((Global::g_Config.signaldir + "\\product\\").c_str(), NULL, &m_vtsignal_pro);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 添加到combobox中;
 | 
	
		
			
				|  |  | +		if (Global::g_Config.bGenerics)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			m_wndSignalCombo.AddString(fh.getfilename(it).c_str());
 | 
	
		
			
				|  |  | +			m_wndSignalCombo.ResetContent();
 | 
	
		
			
				|  |  | +			for (auto it : m_vtsignal_gen)
 | 
	
		
			
				|  |  | +			{
 | 
	
		
			
				|  |  | +				m_wndSignalCombo.AddString(fh.getfilename(it).c_str());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +		}
 | 
	
		
			
				|  |  | +		else
 | 
	
		
			
				|  |  | +		{
 | 
	
		
			
				|  |  | +			m_wndSignalCombo.ResetContent();
 | 
	
		
			
				|  |  | +			for (auto it : m_vtsignal_pro)
 | 
	
		
			
				|  |  | +			{
 | 
	
		
			
				|  |  | +				m_wndSignalCombo.AddString(fh.getfilename(it).c_str());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -	}	
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  	AutoSetDroppedWidth();
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -568,15 +631,21 @@ void CIRControlWnd::OnSignalBtnClick(UINT uId) // 发送遥控信号;
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  |  		CString text;
 | 
	
		
			
				|  |  |  		pWnd->GetWindowText(text);
 | 
	
		
			
				|  |  | -		// 发送单信号;
 | 
	
		
			
				|  |  | -		if (g_sendSignal(text.GetString(), 1, 20))
 | 
	
		
			
				|  |  | +		if (Global::g_Config.enableTW)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			m_bSendKey = TRUE;
 | 
	
		
			
				|  |  | -			TRACE("发送单信号成功\n");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -		else
 | 
	
		
			
				|  |  | +		else 
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			TRACE("发送单信号失败\n");
 | 
	
		
			
				|  |  | +			// 发送单信号;
 | 
	
		
			
				|  |  | +			if (RedRat::g_sendSignal(text.GetString(), 1, 20))
 | 
	
		
			
				|  |  | +			{
 | 
	
		
			
				|  |  | +				m_bSendKey = TRUE;
 | 
	
		
			
				|  |  | +				TRACE("发送单信号成功\n");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  | +			else
 | 
	
		
			
				|  |  | +			{
 | 
	
		
			
				|  |  | +				TRACE("发送单信号失败\n");
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  }
 | 
	
	
		
			
				|  | @@ -588,40 +657,46 @@ void CIRControlWnd::OnUpdateSignalBtn(CCmdUI* pCmdUI)
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CIRControlWnd::OnUpdateCheckBox(CCmdUI* pCmdUI)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	pCmdUI->Enable();
 | 
	
		
			
				|  |  | +	pCmdUI->Enable(!Global::g_Config.enableTW);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CIRControlWnd::OnCheckBoxClicked()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	Global::g_Config.bGenerics = m_wndSignalCheck.IsChecked();
 | 
	
		
			
				|  |  | -	// 保存到配置文件中;
 | 
	
		
			
				|  |  | -	WritePrivateProfileString("ir-device", "generics", Global::g_Config.bGenerics ? "1" : "0", Global::g_szConfig);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -	// 添加到combobox中;
 | 
	
		
			
				|  |  | -	if (Global::g_Config.bGenerics)
 | 
	
		
			
				|  |  | +	if (Global::g_Config.enableTW)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  | -		m_wndSignalCombo.ResetContent();
 | 
	
		
			
				|  |  | -		for (auto it : m_vtsignal_gen)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	else {
 | 
	
		
			
				|  |  | +		Global::g_Config.bGenerics = m_wndSignalCheck.IsChecked();
 | 
	
		
			
				|  |  | +		// 保存到配置文件中;
 | 
	
		
			
				|  |  | +		WritePrivateProfileString("ir-device", "generics", Global::g_Config.bGenerics ? "1" : "0", Global::g_szConfig);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +		// 添加到combobox中;
 | 
	
		
			
				|  |  | +		if (Global::g_Config.bGenerics)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			m_wndSignalCombo.AddString(filehelper::getfilename(it).c_str());
 | 
	
		
			
				|  |  | +			m_wndSignalCombo.ResetContent();
 | 
	
		
			
				|  |  | +			for (auto it : m_vtsignal_gen)
 | 
	
		
			
				|  |  | +			{
 | 
	
		
			
				|  |  | +				m_wndSignalCombo.AddString(filehelper::getfilename(it).c_str());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | -	}
 | 
	
		
			
				|  |  | -	else
 | 
	
		
			
				|  |  | -	{
 | 
	
		
			
				|  |  | -		m_wndSignalCombo.ResetContent();
 | 
	
		
			
				|  |  | -		for (auto it : m_vtsignal_pro)
 | 
	
		
			
				|  |  | +		else
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			m_wndSignalCombo.AddString(filehelper::getfilename(it).c_str());
 | 
	
		
			
				|  |  | +			m_wndSignalCombo.ResetContent();
 | 
	
		
			
				|  |  | +			for (auto it : m_vtsignal_pro)
 | 
	
		
			
				|  |  | +			{
 | 
	
		
			
				|  |  | +				m_wndSignalCombo.AddString(filehelper::getfilename(it).c_str());
 | 
	
		
			
				|  |  | +			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  | +		AutoSetDroppedWidth();
 | 
	
		
			
				|  |  | +		DisableSignalBtn();
 | 
	
		
			
				|  |  | +		ReLoadSignalXml();
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  | -	AutoSetDroppedWidth();
 | 
	
		
			
				|  |  | -	DisableSignalBtn();
 | 
	
		
			
				|  |  | -	ReLoadSignalXml();	
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CIRControlWnd::OnUpdateBtnRestartProc(CCmdUI* pCmdUI)
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	pCmdUI->Enable(TRUE);
 | 
	
		
			
				|  |  | +	pCmdUI->Enable(!Global::g_Config.enableTW);
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CIRControlWnd::OnBtnRestartProcClicked() // 重启红老鼠;
 | 
	
	
		
			
				|  | @@ -632,22 +707,28 @@ void CIRControlWnd::OnBtnRestartProcClicked() // 重启红老鼠;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  void CIRControlWnd::UpdateSignalBtnStatus()
 | 
	
		
			
				|  |  |  {
 | 
	
		
			
				|  |  | -	// 获取信号集;
 | 
	
		
			
				|  |  | -	if (g_getSignalsName )
 | 
	
		
			
				|  |  | +	if (Global::g_Config.enableTW)
 | 
	
		
			
				|  |  |  	{
 | 
	
		
			
				|  |  | -		// 获取信号数据集,以\n分隔;
 | 
	
		
			
				|  |  | -		std::string data = g_getSignalsName();
 | 
	
		
			
				|  |  | -		CString signals = data.append(1, '\n').c_str();
 | 
	
		
			
				|  |  | -		signals.MakeUpper();
 | 
	
		
			
				|  |  | -		for ( std::vector<BtnInfo>::iterator it = m_vtBtnInfo.begin(); it != m_vtBtnInfo.end(); it++)
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +	}
 | 
	
		
			
				|  |  | +	else{
 | 
	
		
			
				|  |  | +		// 获取信号集;
 | 
	
		
			
				|  |  | +		if (RedRat::g_getSignalsName)
 | 
	
		
			
				|  |  |  		{
 | 
	
		
			
				|  |  | -			if ( signals.Find((it->name+'\n').c_str()) == -1 )
 | 
	
		
			
				|  |  | -			{
 | 
	
		
			
				|  |  | -				it->bEnable = false;
 | 
	
		
			
				|  |  | -			}
 | 
	
		
			
				|  |  | -			else
 | 
	
		
			
				|  |  | +			// 获取信号数据集,以\n分隔;
 | 
	
		
			
				|  |  | +			std::string data = RedRat::g_getSignalsName();
 | 
	
		
			
				|  |  | +			CString signals = data.append(1, '\n').c_str();
 | 
	
		
			
				|  |  | +			signals.MakeUpper();
 | 
	
		
			
				|  |  | +			for (std::vector<BtnInfo>::iterator it = m_vtBtnInfo.begin(); it != m_vtBtnInfo.end(); it++)
 | 
	
		
			
				|  |  |  			{
 | 
	
		
			
				|  |  | -				it->bEnable = true;
 | 
	
		
			
				|  |  | +				if (signals.Find((it->name + '\n').c_str()) == -1)
 | 
	
		
			
				|  |  | +				{
 | 
	
		
			
				|  |  | +					it->bEnable = false;
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  | +				else
 | 
	
		
			
				|  |  | +				{
 | 
	
		
			
				|  |  | +					it->bEnable = true;
 | 
	
		
			
				|  |  | +				}
 | 
	
		
			
				|  |  |  			}
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
	
		
			
				|  | @@ -725,3 +806,4 @@ LRESULT CIRControlWnd::OnIRShotImg(WPARAM wparam, LPARAM lparam)
 | 
	
		
			
				|  |  |  	
 | 
	
		
			
				|  |  |  	return LRESULT();
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  | +
 |