1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- // Demo.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include "Demo.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- // 唯一的应用程序对象
- CWinApp theApp;
- using namespace std;
- extern VOID _dprintf(CHAR* pszStr, ...);
- int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
- {
- int nRetCode = 0;
- // 初始化 MFC 并在失败时显示错误
- if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
- {
- // TODO: 更改错误代码以符合您的需要
- _tprintf(_T("错误: MFC 初始化失败\n"));
- nRetCode = 1;
- }
- else
- {
- // TODO: 在此处为应用程序的行为编写代码。
- #if 1
- CBaseSerial sb(0);
- if ( sb.Open(23, _T("baud=115200 parity=N data=8 stop=1") ) )
- {
- sb.SetTimeouts();
- std::vector<CommandParam> vtCommandParams;
- parse_cmd_param_from_file("F:\\source\\scbc_repos\\Serail-Demo\\Demo\\command.data", vtCommandParams);
- for ( std::vector<CommandParam>::iterator it = vtCommandParams.begin(); it != vtCommandParams.end(); it++ )
- {
- if ( !_tcsicmp(it->name.c_str(), _T("LeaveFactory")) )
- break;
- byte szData[1024] = {0};
- std::string cmd = PackingCommand(*it, _T(""), 0);
- //sb.Read(szData, 1024, 100);
- if ( sb.WriteSync((void*)cmd.c_str(), cmd.size()) )
- {
- Sleep(it->read_wait_time);
- int c = sb.ReadSync(szData, 1024);
- std::string str = BytesToHexString(szData, c, ' ');
- _dprintf("结果:%s", str.c_str());
-
- Sleep(it->cmd_wait_time);
- }
- sb.ClearCommBuffer();
- }
- }
- #else
- CBaseSerial sb;
- if ( sb.Open(23, _T("baud=115200 parity=N data=8 stop=1") ) )
- {
- sb.SetTimeouts();
- std::vector<CommandParam> vtCommandParams;
- parse_cmd_param_from_file("F:\\source\\scbc_repos\\Serail-Demo\\Demo\\command.data", vtCommandParams);
- for ( std::vector<CommandParam>::iterator it = vtCommandParams.begin(); it != vtCommandParams.end(); it++ )
- {
- if ( !_tcsicmp(it->name.c_str(), _T("LeaveFactory")) )
- break;
- byte szData[1024] = {0};
- std::string cmd = PackingCommand(*it, _T(""), 0);
- //sb.Read(szData, 1024, 100);
- if ( sb.Write((void*)cmd.c_str(), cmd.size()) )
- {
- Sleep(it->read_wait_time);
- int c = sb.Read(szData, 1024, 200);
- std::string str = BytesToHexString(szData, c, ' ');
- _dprintf("结果:%s", str.c_str());
- Sleep(it->cmd_wait_time);
- }
- sb.ClearCommBuffer();
- }
- }
- #endif
- system("pause");
- }
- return nRetCode;
- }
|