|
@@ -16,6 +16,7 @@
|
|
#include "Resource.h"
|
|
#include "Resource.h"
|
|
#include "MainFrm.h"
|
|
#include "MainFrm.h"
|
|
#include "VideoCapture.h"
|
|
#include "VideoCapture.h"
|
|
|
|
+#include <filehelper.h>
|
|
|
|
|
|
#ifdef _DEBUG
|
|
#ifdef _DEBUG
|
|
#undef THIS_FILE
|
|
#undef THIS_FILE
|
|
@@ -23,133 +24,6 @@ static char THIS_FILE[] = __FILE__;
|
|
#define new DEBUG_NEW
|
|
#define new DEBUG_NEW
|
|
#endif
|
|
#endif
|
|
|
|
|
|
-//////////////////////////////////////////////////////////////////////////
|
|
|
|
-// dll相关;
|
|
|
|
-HMODULE g_hdll = NULL;
|
|
|
|
-irc_IsAppRunning g_IsAppRunning = NULL;
|
|
|
|
-irc_StartIRApp g_StartIRApp = NULL;
|
|
|
|
-irc_CloseApp g_CloseApp = NULL;
|
|
|
|
-irc_Connect g_Connect = NULL;
|
|
|
|
-irc_loadSignalDataSet g_loadSignalDataSet = NULL;
|
|
|
|
-irc_getDeviceNames g_getDeviceNames = NULL;
|
|
|
|
-irc_getSignalsName g_getSignalsName = NULL;
|
|
|
|
-irc_sendSignal g_sendSignal = NULL;
|
|
|
|
-irc_sendSignals g_sendSignals = NULL;
|
|
|
|
-irc_sendRepeatsSignal g_sendRepeatsSignal = NULL;
|
|
|
|
-int g_nIRControl = 0;
|
|
|
|
-
|
|
|
|
-BOOL LoadLogLibarary()
|
|
|
|
-{
|
|
|
|
- if (g_hdll == NULL)
|
|
|
|
- {
|
|
|
|
- g_hdll = (HMODULE)LoadLibrary(_T("IRControl.dll"));
|
|
|
|
- if (!g_hdll)
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g_sendRepeatsSignal = (irc_sendRepeatsSignal)GetProcAddress(g_hdll, "sendRepeatsSignal");
|
|
|
|
- if (!g_sendRepeatsSignal)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g_sendSignals = (irc_sendSignals)GetProcAddress(g_hdll, "sendSignals");
|
|
|
|
- if (!g_sendSignals)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g_sendSignal = (irc_sendSignal)GetProcAddress(g_hdll, "sendSignal");
|
|
|
|
- if (!g_sendSignal)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g_loadSignalDataSet = (irc_loadSignalDataSet)GetProcAddress(g_hdll, "loadSignalDataSet");
|
|
|
|
- if (!g_loadSignalDataSet)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g_IsAppRunning = (irc_IsAppRunning)GetProcAddress(g_hdll, "IsAppRunning");
|
|
|
|
- if (!g_IsAppRunning)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g_StartIRApp = (irc_StartIRApp)GetProcAddress(g_hdll, "StartIRApp");
|
|
|
|
- if (!g_StartIRApp)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g_CloseApp = (irc_CloseApp)GetProcAddress(g_hdll, "CloseApp");
|
|
|
|
- if (!g_CloseApp)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g_getDeviceNames = (irc_getDeviceNames)GetProcAddress(g_hdll, "getDeviceNames");
|
|
|
|
- if (!g_getDeviceNames)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g_Connect = (irc_Connect)GetProcAddress(g_hdll, "Connect");
|
|
|
|
- if (!g_Connect)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- g_getSignalsName = (irc_getSignalsName)GetProcAddress(g_hdll, "getSignalsName");
|
|
|
|
- if (!g_getSignalsName)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- // 导出全局变量;
|
|
|
|
- g_nIRControl = *(int*)GetProcAddress(g_hdll, "nIRControl");
|
|
|
|
- if (!g_CloseApp)
|
|
|
|
- {
|
|
|
|
- FreeLogLibarary();
|
|
|
|
- return FALSE;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- return TRUE;
|
|
|
|
-}
|
|
|
|
-
|
|
|
|
-void FreeLogLibarary()
|
|
|
|
-{
|
|
|
|
- if (g_hdll)
|
|
|
|
- {
|
|
|
|
- if (FreeLibrary(g_hdll))
|
|
|
|
- {
|
|
|
|
- g_hdll = NULL;
|
|
|
|
- g_IsAppRunning = NULL;
|
|
|
|
- g_StartIRApp = NULL;
|
|
|
|
- g_CloseApp = NULL;
|
|
|
|
- g_Connect = NULL;
|
|
|
|
- g_getDeviceNames = NULL;
|
|
|
|
- g_getSignalsName = NULL;
|
|
|
|
- g_loadSignalDataSet = NULL;
|
|
|
|
- g_sendSignal = NULL;
|
|
|
|
- g_sendSignals = NULL;
|
|
|
|
- g_sendRepeatsSignal = NULL;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|
|
-//////////////////////////////////////////////////////////////////////////
|
|
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CResourceViewBar
|
|
// CResourceViewBar
|
|
@@ -200,8 +74,8 @@ CIRControlWnd::~CIRControlWnd()
|
|
m_vtBtnInfo.clear();
|
|
m_vtBtnInfo.clear();
|
|
}
|
|
}
|
|
|
|
|
|
-// 下拉框控件id;
|
|
|
|
-#define ID_COMBOBOX_DEVICE_TYPE 1
|
|
|
|
|
|
+// 重启进程按钮id;
|
|
|
|
+#define ID_BUTTON_RESTART_PROC 1
|
|
// 复制框控件id;
|
|
// 复制框控件id;
|
|
#define ID_CHECKBOX_SIGNAL_TYPE 2
|
|
#define ID_CHECKBOX_SIGNAL_TYPE 2
|
|
// 下拉框控件id;
|
|
// 下拉框控件id;
|
|
@@ -221,10 +95,16 @@ BEGIN_MESSAGE_MAP(CIRControlWnd, CDockablePane)
|
|
ON_WM_SETFOCUS()
|
|
ON_WM_SETFOCUS()
|
|
ON_WM_SETTINGCHANGE()
|
|
ON_WM_SETTINGCHANGE()
|
|
ON_WM_PAINT()
|
|
ON_WM_PAINT()
|
|
- ON_COMMAND_RANGE(BTNID, BTNID + 100, OnBtnClick)
|
|
|
|
- ON_UPDATE_COMMAND_UI_RANGE(BTNID, BTNID + 100, OnBtnUpdate)
|
|
|
|
|
|
+ // 信号按钮;
|
|
|
|
+ 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_UPDATE_COMMAND_UI(ID_CHECKBOX_SIGNAL_TYPE, OnUpdateCheckBox)
|
|
- ON_CBN_SELCHANGE(ID_COMBOBOX_DEVICE_TYPE, &CIRControlWnd::OnCbnSelchangeDeivceType)
|
|
|
|
|
|
+ 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)
|
|
END_MESSAGE_MAP()
|
|
END_MESSAGE_MAP()
|
|
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
@@ -240,9 +120,10 @@ void CIRControlWnd::AdjustLayout()
|
|
CRect rectClient;
|
|
CRect rectClient;
|
|
GetClientRect(rectClient);
|
|
GetClientRect(rectClient);
|
|
|
|
|
|
- m_wndObjectCombo.SetWindowPos(nullptr, rectClient.left, rectClient.top + 5, 120, m_nComboHeight + 210, SWP_NOACTIVATE | SWP_NOZORDER);
|
|
|
|
- m_wndSignalCheck.SetWindowPos(nullptr, rectClient.left + 125, rectClient.top + 5, 150, m_nComboHeight, SWP_NOACTIVATE | SWP_NOZORDER);
|
|
|
|
- m_wndSignalCombo.SetWindowPos(nullptr, rectClient.left, rectClient.top + m_nComboHeight + 10, rectClient.Width(), m_nComboHeight + 210, SWP_NOACTIVATE | SWP_NOZORDER);
|
|
|
|
|
|
+ m_btnRestart.SetWindowPos(nullptr, rectClient.left + 5, rectClient.top + 5, 180, m_nComboHeight, SWP_NOACTIVATE | SWP_NOZORDER);
|
|
|
|
+ m_wndSignalCheck.SetWindowPos(nullptr, rectClient.left + 190, rectClient.top + 5, 150, m_nComboHeight, SWP_NOACTIVATE | SWP_NOZORDER);
|
|
|
|
+
|
|
|
|
+ m_wndSignalCombo.SetWindowPos(nullptr, rectClient.left + 5, rectClient.top + m_nComboHeight + 10, rectClient.Width() - 10, m_nComboHeight + 210, SWP_NOACTIVATE | SWP_NOZORDER);
|
|
#if __PANE_DLG__
|
|
#if __PANE_DLG__
|
|
m_dlgIRControl.SetWindowPos(nullptr, rectClient.left, rectClient.top + m_nComboHeight, rectClient.Width(), rectClient.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
|
|
m_dlgIRControl.SetWindowPos(nullptr, rectClient.left, rectClient.top + m_nComboHeight, rectClient.Width(), rectClient.Height(), SWP_NOACTIVATE | SWP_NOZORDER);
|
|
#endif
|
|
#endif
|
|
@@ -259,7 +140,7 @@ int CIRControlWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
// 创建组合:
|
|
// 创建组合:
|
|
const DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_BORDER | CBS_SORT | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
|
|
const DWORD dwViewStyle = WS_CHILD | WS_VISIBLE | CBS_DROPDOWNLIST | WS_BORDER | CBS_SORT | WS_CLIPSIBLINGS | WS_CLIPCHILDREN;
|
|
|
|
|
|
- if (!m_wndObjectCombo.Create(dwViewStyle, rectDummy, this, ID_COMBOBOX_DEVICE_TYPE))
|
|
|
|
|
|
+ if (!m_btnRestart.Create(_T("重启遥控器服务端进程"), WS_CHILD | WS_VISIBLE, rectDummy, this, ID_BUTTON_RESTART_PROC))
|
|
{
|
|
{
|
|
TRACE0("未能创建遥控器组合 \n");
|
|
TRACE0("未能创建遥控器组合 \n");
|
|
return -1; // 未能创建
|
|
return -1; // 未能创建
|
|
@@ -280,18 +161,15 @@ int CIRControlWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
m_wndSignalCheck.m_nFlatStyle = CMFCButton::BUTTONSTYLE_FLAT;
|
|
m_wndSignalCheck.m_nFlatStyle = CMFCButton::BUTTONSTYLE_FLAT;
|
|
m_wndSignalCheck.SizeToContent();
|
|
m_wndSignalCheck.SizeToContent();
|
|
|
|
|
|
- if (!m_wndSignalCombo.Create(dwViewStyle, rectDummy, this, ID_COMBOBOX_SIGNAL_FILE))
|
|
|
|
|
|
+ if (!m_wndSignalCombo.Create(dwViewStyle| WS_VSCROLL, rectDummy, this, ID_COMBOBOX_SIGNAL_FILE))
|
|
{
|
|
{
|
|
TRACE0("未能创建信号集下拉框 \n");
|
|
TRACE0("未能创建信号集下拉框 \n");
|
|
return -1; // 未能创建
|
|
return -1; // 未能创建
|
|
}
|
|
}
|
|
-
|
|
|
|
- m_wndObjectCombo.AddString(_T("红老鼠 3.0"));
|
|
|
|
- m_wndObjectCombo.AddString(_T("红老鼠 4.0"));
|
|
|
|
- m_wndObjectCombo.SetCurSel(Global::g_Config.usetype);
|
|
|
|
|
|
+ LoadSignals();
|
|
|
|
|
|
CRect rectCombo;
|
|
CRect rectCombo;
|
|
- m_wndObjectCombo.GetClientRect(&rectCombo);
|
|
|
|
|
|
+ m_wndSignalCombo.GetClientRect(&rectCombo);
|
|
|
|
|
|
m_nComboHeight = rectCombo.Height();
|
|
m_nComboHeight = rectCombo.Height();
|
|
#if __PANE_DLG__
|
|
#if __PANE_DLG__
|
|
@@ -318,14 +196,14 @@ int CIRControlWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
}
|
|
}
|
|
|
|
|
|
// 启动服务;
|
|
// 启动服务;
|
|
- if (g_IsAppRunning(Global::g_Config.usetype ? Global::g_Config.redrat4path.c_str() : Global::g_Config.redrat3path.c_str()))
|
|
|
|
|
|
+ if (g_IsAppRunning(Global::g_Config.redratpath.c_str()))
|
|
{
|
|
{
|
|
TRACE("启动红老鼠进程已运行\r");
|
|
TRACE("启动红老鼠进程已运行\r");
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
TRACE("启动红老鼠进程未运行\r");
|
|
TRACE("启动红老鼠进程未运行\r");
|
|
- if (g_StartIRApp(Global::g_Config.usetype ? Global::g_Config.redrat4path.c_str() : Global::g_Config.redrat3path.c_str(), (Global::g_Config.signaldir + "\\defualt.xml").c_str(), 40000))
|
|
|
|
|
|
+ if (g_StartIRApp(Global::g_Config.redratpath.c_str(), (Global::g_Config.signaldir + "\\defualt.xml").c_str(), 40000))
|
|
{
|
|
{
|
|
TRACE("启动红老鼠进程启动成功\r");
|
|
TRACE("启动红老鼠进程启动成功\r");
|
|
}
|
|
}
|
|
@@ -336,7 +214,7 @@ int CIRControlWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- Sleep(1500); // 等待进程启动完全;
|
|
|
|
|
|
+ Sleep(3500); // 等待进程启动完全;
|
|
// 连接服务器;
|
|
// 连接服务器;
|
|
if (!g_Connect(_T("127.0.0.1"), 40000))
|
|
if (!g_Connect(_T("127.0.0.1"), 40000))
|
|
AfxMessageBox("连接红老鼠服务端失败,请重启设备!");
|
|
AfxMessageBox("连接红老鼠服务端失败,请重启设备!");
|
|
@@ -349,7 +227,7 @@ int CIRControlWnd::OnCreate(LPCREATESTRUCT lpCreateStruct)
|
|
}
|
|
}
|
|
|
|
|
|
std::string signale = Global::g_Config.bGenerics ? Global::g_Config.signaldir + "\\general\\" : Global::g_Config.signaldir + "\\product\\";
|
|
std::string signale = Global::g_Config.bGenerics ? Global::g_Config.signaldir + "\\general\\" : Global::g_Config.signaldir + "\\product\\";
|
|
- signale.append(Global::g_Config.use_signal);
|
|
|
|
|
|
+ signale.append(Global::g_Config.use_signal + ".xml");
|
|
// 加载指定目录的xml信号集文件;
|
|
// 加载指定目录的xml信号集文件;
|
|
if (!g_loadSignalDataSet(signale.c_str()))
|
|
if (!g_loadSignalDataSet(signale.c_str()))
|
|
{
|
|
{
|
|
@@ -423,54 +301,40 @@ void CIRControlWnd::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
|
|
//SetPropListFont();
|
|
//SetPropListFont();
|
|
}
|
|
}
|
|
|
|
|
|
-void CIRControlWnd::OnCbnSelchangeDeivceType()
|
|
|
|
|
|
+void CIRControlWnd::OnCbnSelchangeSignal()
|
|
{
|
|
{
|
|
- int nCurSel = m_wndObjectCombo.GetCurSel();
|
|
|
|
- if (nCurSel != Global::g_Config.usetype)
|
|
|
|
|
|
+ CString strSignal;
|
|
|
|
+ int nCurSel = m_wndSignalCombo.GetCurSel();
|
|
|
|
+ if ( nCurSel != CB_ERR )
|
|
{
|
|
{
|
|
- Global::g_Config.usetype = nCurSel;
|
|
|
|
- // 关闭旧类型进程;
|
|
|
|
- if (g_CloseApp)
|
|
|
|
- g_CloseApp();
|
|
|
|
-
|
|
|
|
- // 新启动类型进程;
|
|
|
|
- if (g_StartIRApp)
|
|
|
|
|
|
+ std::string signalpath;
|
|
|
|
+ m_wndSignalCombo.GetLBText(nCurSel, strSignal);
|
|
|
|
+ if ( Global::g_Config.bGenerics )
|
|
{
|
|
{
|
|
- if (g_StartIRApp(Global::g_Config.usetype ? Global::g_Config.redrat4path.c_str() : Global::g_Config.redrat3path.c_str(), (Global::g_Config.signaldir + "\\defualt.xml").c_str(), 40000))
|
|
|
|
- {
|
|
|
|
- TRACE("启动红老鼠进程启动成功\r");
|
|
|
|
- }
|
|
|
|
- else
|
|
|
|
- {
|
|
|
|
- TRACE("启动红老鼠进程启动失败\r");
|
|
|
|
- AfxMessageBox("启动红老鼠进程启动失败!");
|
|
|
|
- }
|
|
|
|
|
|
+ signalpath = Global::g_Config.signaldir + "\\general\\";
|
|
}
|
|
}
|
|
-
|
|
|
|
- Sleep(1500); // 等待进程启动完全;
|
|
|
|
- // 连接服务器;
|
|
|
|
- if (!g_Connect(_T("127.0.0.1"), 40000))
|
|
|
|
- AfxMessageBox("连接红老鼠服务端失败,请重启设备!");
|
|
|
|
-
|
|
|
|
- // 获取设备列表,以逗号分隔;
|
|
|
|
- std::string devices = g_getDeviceNames();
|
|
|
|
- if (devices.size() == 0)
|
|
|
|
|
|
+ else
|
|
{
|
|
{
|
|
- AfxMessageBox("当前无红老鼠设备连接!");
|
|
|
|
|
|
+ signalpath = Global::g_Config.signaldir + "\\product\\";
|
|
}
|
|
}
|
|
|
|
|
|
- std::string signale = Global::g_Config.bGenerics ? Global::g_Config.signaldir.append("\\general\\") : Global::g_Config.signaldir.append("\\product\\");
|
|
|
|
- signale.append(Global::g_Config.use_signal);
|
|
|
|
|
|
+ signalpath.append(strSignal.GetString());
|
|
|
|
+ signalpath.append(".xml");
|
|
|
|
+
|
|
|
|
+ // 切换信号集文件;
|
|
// 加载指定目录的xml信号集文件;
|
|
// 加载指定目录的xml信号集文件;
|
|
- if (!g_loadSignalDataSet(signale.c_str()))
|
|
|
|
|
|
+ if (!g_loadSignalDataSet(signalpath.c_str()))
|
|
{
|
|
{
|
|
TRACE("加载信号集文件失败\r");
|
|
TRACE("加载信号集文件失败\r");
|
|
- AfxMessageBox("加载信号集文件失败!");
|
|
|
|
}
|
|
}
|
|
else
|
|
else
|
|
{
|
|
{
|
|
TRACE("加载信号集文件成功\r");
|
|
TRACE("加载信号集文件成功\r");
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ // 保存到配置文件中;
|
|
|
|
+ WritePrivateProfileString("ir-device", "use-signal", strSignal.GetString(), Global::g_szConfig);
|
|
|
|
+
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -495,6 +359,45 @@ void CIRControlWnd::SetPropListFont()
|
|
//m_wndObjectCombo.SetFont(&m_fntPropList);
|
|
//m_wndObjectCombo.SetFont(&m_fntPropList);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+void CIRControlWnd::LoadSignals()
|
|
|
|
+{
|
|
|
|
+ filehelper fh;
|
|
|
|
+ fh.getfolderfiles((Global::g_Config.signaldir + "\\general\\").c_str(), NULL, &m_vtsignal_gen);
|
|
|
|
+ fh.getfolderfiles((Global::g_Config.signaldir + "\\product\\").c_str(), NULL, &m_vtsignal_pro);
|
|
|
|
+
|
|
|
|
+ // 添加到combobox中;
|
|
|
|
+ std::string signalpath;
|
|
|
|
+ if (Global::g_Config.bGenerics )
|
|
|
|
+ {
|
|
|
|
+ signalpath = Global::g_Config.signaldir + "\\general\\";
|
|
|
|
+
|
|
|
|
+ m_wndSignalCombo.ResetContent();
|
|
|
|
+ for ( auto it : m_vtsignal_gen)
|
|
|
|
+ {
|
|
|
|
+ m_wndSignalCombo.AddString(fh.getfilename(it).c_str());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ signalpath = Global::g_Config.signaldir + "\\product\\";
|
|
|
|
+ m_wndSignalCombo.ResetContent();
|
|
|
|
+ for (auto it : m_vtsignal_pro)
|
|
|
|
+ {
|
|
|
|
+ m_wndSignalCombo.AddString(fh.getfilename(it).c_str());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ signalpath.append(Global::g_Config.use_signal + ".xml");
|
|
|
|
+ if (!PathFileExists(signalpath.c_str()))
|
|
|
|
+ {
|
|
|
|
+ m_wndSignalCombo.SetCurSel(0);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ m_wndSignalCombo.SelectString(0, Global::g_Config.use_signal.c_str());
|
|
|
|
+ }
|
|
|
|
+}
|
|
|
|
+
|
|
void CIRControlWnd::Loadlayout(std::vector<BtnInfo>& vt)
|
|
void CIRControlWnd::Loadlayout(std::vector<BtnInfo>& vt)
|
|
{
|
|
{
|
|
// 解析xml;
|
|
// 解析xml;
|
|
@@ -599,7 +502,7 @@ void CIRControlWnd::OnPaint()
|
|
#endif
|
|
#endif
|
|
}
|
|
}
|
|
|
|
|
|
-void CIRControlWnd::OnBtnClick(UINT uId)
|
|
|
|
|
|
+void CIRControlWnd::OnSignalBtnClick(UINT uId)
|
|
{
|
|
{
|
|
CWnd* pWnd = GetFocus();
|
|
CWnd* pWnd = GetFocus();
|
|
int id = pWnd->GetDlgCtrlID();
|
|
int id = pWnd->GetDlgCtrlID();
|
|
@@ -620,7 +523,7 @@ void CIRControlWnd::OnBtnClick(UINT uId)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
-void CIRControlWnd::OnBtnUpdate(CCmdUI* pCmdUI)
|
|
|
|
|
|
+void CIRControlWnd::OnUpdateSignalBtn(CCmdUI* pCmdUI)
|
|
{
|
|
{
|
|
pCmdUI->Enable();
|
|
pCmdUI->Enable();
|
|
}
|
|
}
|
|
@@ -629,3 +532,92 @@ void CIRControlWnd::OnUpdateCheckBox(CCmdUI* pCmdUI)
|
|
{
|
|
{
|
|
pCmdUI->Enable();
|
|
pCmdUI->Enable();
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+void CIRControlWnd::OnCheckBoxClicked()
|
|
|
|
+{
|
|
|
|
+ Global::g_Config.bGenerics = m_wndSignalCheck.IsChecked();
|
|
|
|
+ // 添加到combobox中;
|
|
|
|
+ std::string signalpath;
|
|
|
|
+ if (Global::g_Config.bGenerics)
|
|
|
|
+ {
|
|
|
|
+ signalpath = Global::g_Config.signaldir + "\\general\\";
|
|
|
|
+
|
|
|
|
+ m_wndSignalCombo.ResetContent();
|
|
|
|
+ for (auto it : m_vtsignal_gen)
|
|
|
|
+ {
|
|
|
|
+ m_wndSignalCombo.AddString(filehelper::getfilename(it).c_str());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ signalpath = Global::g_Config.signaldir + "\\product\\";
|
|
|
|
+ m_wndSignalCombo.ResetContent();
|
|
|
|
+ for (auto it : m_vtsignal_pro)
|
|
|
|
+ {
|
|
|
|
+ m_wndSignalCombo.AddString(filehelper::getfilename(it).c_str());
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ signalpath.append(Global::g_Config.use_signal + ".xml");
|
|
|
|
+ if (!PathFileExists(signalpath.c_str()))
|
|
|
|
+ {
|
|
|
|
+ m_wndSignalCombo.SetCurSel(0);
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ m_wndSignalCombo.SelectString(0, Global::g_Config.use_signal.c_str());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ WritePrivateProfileString("ir-device", "generics", Global::g_Config.bGenerics ? "1" : "0", Global::g_szConfig);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void CIRControlWnd::OnUpdateBtnRestartProc(CCmdUI* pCmdUI)
|
|
|
|
+{
|
|
|
|
+ pCmdUI->Enable(TRUE);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+void CIRControlWnd::OnBtnRestartProcClicked()
|
|
|
|
+{
|
|
|
|
+ // 关闭旧类型进程;
|
|
|
|
+ if (g_CloseApp)
|
|
|
|
+ g_CloseApp();
|
|
|
|
+
|
|
|
|
+ // 新启动类型进程;
|
|
|
|
+ if (g_StartIRApp)
|
|
|
|
+ {
|
|
|
|
+ if (g_StartIRApp(Global::g_Config.redratpath.c_str(), (Global::g_Config.signaldir + "\\defualt.xml").c_str(), 40000))
|
|
|
|
+ {
|
|
|
|
+ TRACE("启动红老鼠进程启动成功\r");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ TRACE("启动红老鼠进程启动失败\r");
|
|
|
|
+ AfxMessageBox("启动红老鼠进程启动失败!");
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ Sleep(5500); // 等待进程启动完全;
|
|
|
|
+ // 连接服务器;
|
|
|
|
+ if (!g_Connect(_T("127.0.0.1"), 40000))
|
|
|
|
+ AfxMessageBox("连接红老鼠服务端失败,请重启设备!");
|
|
|
|
+
|
|
|
|
+ // 获取设备列表,以逗号分隔;
|
|
|
|
+ std::string devices = g_getDeviceNames();
|
|
|
|
+ if (devices.size() == 0)
|
|
|
|
+ {
|
|
|
|
+ AfxMessageBox("当前无红老鼠设备连接!");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ std::string signale = Global::g_Config.bGenerics ? Global::g_Config.signaldir + "\\general\\" : Global::g_Config.signaldir + "\\product\\";
|
|
|
|
+ signale.append(Global::g_Config.use_signal + ".xml");
|
|
|
|
+ // 加载指定目录的xml信号集文件;
|
|
|
|
+ if (!g_loadSignalDataSet(signale.c_str()))
|
|
|
|
+ {
|
|
|
|
+ TRACE("加载信号集文件失败\r");
|
|
|
|
+ AfxMessageBox("加载信号集文件失败!");
|
|
|
|
+ }
|
|
|
|
+ else
|
|
|
|
+ {
|
|
|
|
+ TRACE("加载信号集文件成功\r");
|
|
|
|
+ }
|
|
|
|
+}
|