|
@@ -19,6 +19,7 @@ bool g_bEnableLoad = false;
|
|
|
std::string g_strXMLPath;
|
|
|
std::vector<KeyItem> g_vtKeyItem;
|
|
|
CSynSerial g_synSerial;
|
|
|
+CSynSerial g_usbSwitch;
|
|
|
CSerialPort g_serialPort;
|
|
|
|
|
|
|
|
@@ -47,29 +48,35 @@ int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
|
|
|
{
|
|
|
std::string a = tolower("FFDFDFfdfdfdDDA");
|
|
|
// TODO: 在此处为应用程序的行为编写代码。
|
|
|
- if ( OpenDevice(7, 115200, 8, 0, 0) )
|
|
|
+ if ( OpenDevice(16, 115200, 8, 0, 0) )
|
|
|
{
|
|
|
- OpenXML("D:\\SAT\\resource\\RCU\\TW\\demo.xml");
|
|
|
- std::string data = GetSignalsName();
|
|
|
+ //OpenXML("D:\\SAT\\resource\\RCU\\TW\\demo.xml");
|
|
|
+ //std::string data = GetSignalsName();
|
|
|
|
|
|
int time = 200;
|
|
|
//SendKey("POWER");
|
|
|
//Sleep(time);
|
|
|
- SendKey("SETTING");
|
|
|
- Sleep(time);
|
|
|
- SendKey("OK");
|
|
|
- Sleep(time);
|
|
|
- SendKey("DOWN");
|
|
|
- Sleep(time);
|
|
|
- SendKey("DOWN");
|
|
|
- Sleep(time);
|
|
|
- SendKey("UP");
|
|
|
+ //SendKey("SETTING");
|
|
|
+ //Sleep(time);
|
|
|
+ //SendKey("OK");
|
|
|
+ //Sleep(time);
|
|
|
+ //SendKey("DOWN");
|
|
|
+ //Sleep(time);
|
|
|
+ //SendKey("DOWN");
|
|
|
+ //Sleep(time);
|
|
|
+ //SendKey("UP");
|
|
|
+ //Sleep(time);
|
|
|
+ //SendKey("LEFT");
|
|
|
+ //Sleep(time);
|
|
|
+ //SendKey("RIGHT");
|
|
|
+ //Sleep(time);
|
|
|
+ sendCmd("*INPUT BLEKEY 07004F");
|
|
|
+ sendCmd("*INPUT BLEKEY 07004F");
|
|
|
Sleep(time);
|
|
|
- SendKey("LEFT");
|
|
|
+ sendCmd("*INPUT BLEKEY 070050");
|
|
|
Sleep(time);
|
|
|
- SendKey("RIGHT");
|
|
|
+ sendCmd("*INPUT BLEKEY 0C0223");
|
|
|
Sleep(time);
|
|
|
-
|
|
|
CloseDevice();
|
|
|
}
|
|
|
}
|
|
@@ -388,7 +395,6 @@ TESTWIZARD_API int Save2XML(LPCTSTR lpXMLPath)
|
|
|
// 打开串口;
|
|
|
TESTWIZARD_API BOOL OpenDevice(int nPort, DWORD dwBaudrate, BYTE ByteSize, BYTE Parity, BYTE StopBits)
|
|
|
{
|
|
|
-#if 1
|
|
|
// 关闭打开的;
|
|
|
if ( g_synSerial.IsOpen() )
|
|
|
g_synSerial.CloseSerialPort();
|
|
@@ -396,50 +402,32 @@ TESTWIZARD_API BOOL OpenDevice(int nPort, DWORD dwBaudrate, BYTE ByteSize, BYTE
|
|
|
g_synSerial.OpenSerialPort(nPort, dwBaudrate, ByteSize, Parity, StopBits, 0, 1000);
|
|
|
|
|
|
return g_synSerial.IsOpen();
|
|
|
-#else
|
|
|
- if ( g_serialPort.IsOpen())
|
|
|
- g_serialPort.Close();
|
|
|
-
|
|
|
- g_serialPort.Open(nPort, dwBaudrate, static_cast<CSerialPort::Parity>(Parity), ByteSize, static_cast<CSerialPort::StopBits>(StopBits));
|
|
|
-
|
|
|
- return g_serialPort.IsOpen();
|
|
|
-#endif
|
|
|
}
|
|
|
|
|
|
// 关闭串口;
|
|
|
TESTWIZARD_API void CloseDevice()
|
|
|
{
|
|
|
-#if 1
|
|
|
if ( g_synSerial.IsOpen() )
|
|
|
g_synSerial.CloseSerialPort();
|
|
|
-#else
|
|
|
- if ( g_serialPort.IsOpen() )
|
|
|
- g_serialPort.Close();
|
|
|
-#endif
|
|
|
}
|
|
|
|
|
|
-TESTWIZARD_API bool SendKey(LPCTSTR lpKeyName)
|
|
|
+TESTWIZARD_API bool sendCmd(LPCTSTR cmdStr)
|
|
|
{
|
|
|
-#if 1
|
|
|
- if ( !g_synSerial.IsOpen() )
|
|
|
- return false;
|
|
|
-
|
|
|
- KeyItem *pkeyItem = FindItem(lpKeyName);
|
|
|
- if ( pkeyItem == NULL )
|
|
|
- return false;
|
|
|
-
|
|
|
// 封装发送包;
|
|
|
byte szSendData[MAX_PATH] = {0};
|
|
|
- _stprintf_s((TCHAR*)szSendData, MAX_PATH, _T("*INPUT %s %s\r"), pkeyItem->keyType.c_str(), pkeyItem->keyCode.c_str());
|
|
|
+ _stprintf_s((TCHAR*)szSendData, MAX_PATH, _T("%s\r"), cmdStr);
|
|
|
|
|
|
DWORD dwNumberOfBytesWritten = g_synSerial.WriteComm(szSendData, _tcslen((TCHAR*)szSendData));
|
|
|
- if ( dwNumberOfBytesWritten != _tcslen((TCHAR*)szSendData) )
|
|
|
- return false;
|
|
|
+ //if ( dwNumberOfBytesWritten != _tcslen((TCHAR*)szSendData) )
|
|
|
+ //return false;
|
|
|
|
|
|
DWORD dwNumberOfBytesRead = g_synSerial.ReadComm(szSendData, MAX_PATH);
|
|
|
- return dwNumberOfBytesRead ? true : false;
|
|
|
-#else
|
|
|
- if ( !g_serialPort.IsOpen() )
|
|
|
+ return true;
|
|
|
+}
|
|
|
+
|
|
|
+TESTWIZARD_API bool SendKey(LPCTSTR lpKeyName)
|
|
|
+{
|
|
|
+ if ( !g_synSerial.IsOpen() )
|
|
|
return false;
|
|
|
|
|
|
KeyItem *pkeyItem = FindItem(lpKeyName);
|
|
@@ -450,18 +438,16 @@ TESTWIZARD_API bool SendKey(LPCTSTR lpKeyName)
|
|
|
byte szSendData[MAX_PATH] = {0};
|
|
|
_stprintf_s((TCHAR*)szSendData, MAX_PATH, _T("*INPUT %s %s\r"), pkeyItem->keyType.c_str(), pkeyItem->keyCode.c_str());
|
|
|
|
|
|
- DWORD dwNumberOfBytesWritten = g_serialPort.Write(szSendData, _tcslen((TCHAR*)szSendData));
|
|
|
+ DWORD dwNumberOfBytesWritten = g_synSerial.WriteComm(szSendData, _tcslen((TCHAR*)szSendData));
|
|
|
if ( dwNumberOfBytesWritten != _tcslen((TCHAR*)szSendData) )
|
|
|
return false;
|
|
|
|
|
|
- DWORD dwNumberOfBytesRead = g_serialPort.Read(szSendData, MAX_PATH);
|
|
|
+ DWORD dwNumberOfBytesRead = g_synSerial.ReadComm(szSendData, MAX_PATH);
|
|
|
return dwNumberOfBytesRead ? true : false;
|
|
|
-#endif
|
|
|
}
|
|
|
|
|
|
TESTWIZARD_API bool ReadKey()
|
|
|
{
|
|
|
-#if 1
|
|
|
if ( !g_synSerial.IsOpen() )
|
|
|
return false;
|
|
|
|
|
@@ -496,46 +482,6 @@ TESTWIZARD_API bool ReadKey()
|
|
|
keyItem.keyCode.append((char*)(&szKeyData[pos+1]), dwNumberOfBytesRead-pos-4);
|
|
|
|
|
|
return true;
|
|
|
-#else
|
|
|
- if ( !g_serialPort.IsOpen() )
|
|
|
- return false;
|
|
|
-
|
|
|
- byte szKeyData[MAX_PATH] = {0};
|
|
|
- COMMTIMEOUTS Timeouts;
|
|
|
- Timeouts.WriteTotalTimeoutMultiplier = 100;
|
|
|
- Timeouts.WriteTotalTimeoutConstant = 15000;
|
|
|
- g_serialPort.SetTimeouts(Timeouts);
|
|
|
- DWORD dwNumberOfBytesRead = g_serialPort.Read(szKeyData, MAX_PATH);
|
|
|
- if ( dwNumberOfBytesRead <= 0 )
|
|
|
- return false;
|
|
|
-
|
|
|
- // 如果是C++11,使用std正则;[码类型]<码内容>0D 0A;
|
|
|
- // 不是 "[" 开头;
|
|
|
- if ( szKeyData[0] != 0x5B )
|
|
|
- return false;
|
|
|
-
|
|
|
- // 查找 "]" 的位置;
|
|
|
- int pos = 0;
|
|
|
- byte *p = szKeyData;
|
|
|
- while ( p++, pos++ )
|
|
|
- if (*p == 0x5D)
|
|
|
- break;
|
|
|
-
|
|
|
- // 不在有效范围内;
|
|
|
- if ( pos >= dwNumberOfBytesRead - 2 )
|
|
|
- return false;
|
|
|
-
|
|
|
-
|
|
|
- // 不是0d 0a结束;
|
|
|
- if ( szKeyData[dwNumberOfBytesRead-2] != 0x0D && szKeyData[dwNumberOfBytesRead-1] != 0x0A)
|
|
|
- return false;
|
|
|
-
|
|
|
- KeyItem keyItem;
|
|
|
- keyItem.keyType.append((char*)(&szKeyData[1]), pos-2);
|
|
|
- keyItem.keyCode.append((char*)(&szKeyData[pos+1]), dwNumberOfBytesRead-pos-4);
|
|
|
-
|
|
|
- return true;
|
|
|
-#endif
|
|
|
}
|
|
|
|
|
|
|
|
@@ -551,4 +497,40 @@ TESTWIZARD_API LPCTSTR GetSignalsName()
|
|
|
return signals.c_str();
|
|
|
}
|
|
|
|
|
|
+//////////////////////////////////////////////////////////////////////////
|
|
|
+TESTWIZARD_API BOOL OpenUsbSwitch(int nPort, DWORD dwBaudrate, BYTE ByteSize, BYTE Parity, BYTE StopBits)
|
|
|
+{
|
|
|
+ // 关闭打开的;
|
|
|
+ if ( g_usbSwitch.IsOpen() )
|
|
|
+ g_usbSwitch.CloseSerialPort();
|
|
|
+
|
|
|
+ g_usbSwitch.OpenSerialPort(nPort, dwBaudrate, ByteSize, Parity, StopBits, 0, 1000);
|
|
|
+
|
|
|
+ return g_usbSwitch.IsOpen();
|
|
|
+}
|
|
|
+
|
|
|
+TESTWIZARD_API bool SendSwitch(int nIndex /*=0*/)
|
|
|
+{
|
|
|
+ if ( !g_usbSwitch.IsOpen() )
|
|
|
+ return false;
|
|
|
+
|
|
|
+ // 封装发送包;
|
|
|
+ byte szSendData[MAX_PATH] = {0};
|
|
|
+ _stprintf_s((TCHAR*)szSendData, MAX_PATH, _T("*SET PORT %c\r"), nIndex == 0 ? 'A' : 'B');
|
|
|
+
|
|
|
+ DWORD dwNumberOfBytesWritten = g_usbSwitch.WriteComm(szSendData, _tcslen((TCHAR*)szSendData));
|
|
|
+ if ( dwNumberOfBytesWritten != _tcslen((TCHAR*)szSendData) )
|
|
|
+ return false;
|
|
|
+
|
|
|
+ DWORD dwNumberOfBytesRead = g_usbSwitch.ReadComm(szSendData, MAX_PATH);
|
|
|
+ return dwNumberOfBytesRead ? true : false;
|
|
|
+}
|
|
|
+
|
|
|
+// 关闭串口;
|
|
|
+TESTWIZARD_API void CloseUsbSwitch()
|
|
|
+{
|
|
|
+ if ( g_usbSwitch.IsOpen() )
|
|
|
+ g_usbSwitch.CloseSerialPort();
|
|
|
+}
|
|
|
+
|
|
|
#endif
|