123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151 |
- // Demo.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include "Demo.h"
- #include "TCLCommand.h"
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- // 唯一的应用程序对象
- CWinApp theApp;
- using namespace std;
- void test();
- void test1();
- 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: 在此处为应用程序的行为编写代码。
- test1();
- system("pause");
- }
- return nRetCode;
- }
- void test()
- {
- #if 0
- TCLCommand tcl(true);
- std::string cmds;
- std::vector<CommandParam> vtCommandParams;
- utils::GetResourceData(BIN_CMD, "BIN", cmds);
- if ( cmds.size() ) {
- tcl.parse_cmds_from_string(cmds, vtCommandParams);
- }
- if (tcl.Open(21, _T("baud=115200 parity=N data=8 stop=1")) )
- {
- tcl.SetTimeouts();
- //tcl.parse_cmds_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};
- tcl.PackingCommand(*it, _T(""), 0);
- if (tcl.WriteSync((void*)it->_cmdContext.c_str(), it->_cmdContext.size()) )
- {
- Sleep(it->read_wait_time);
- int c = tcl.ReadSync(szData, 1024);
- std::string str = utils::BytesToHexString(szData, c, ' ');
- utils::_dprintf("结果:%s", str.c_str());
- str = "";
- str.append((char*)szData, c);
- tcl.ParseResultString(*it, str, str.size());
-
- Sleep(it->cmd_wait_time);
- }
- }
- }
- #else
- TCLCommand tcl(false);
- std::string cmds;
- std::vector<CommandParam> vtCommandParams;
- utils::GetResourceData(BIN_CMD, "BIN", cmds);
- if ( cmds.size() ) {
- tcl.parse_cmds_from_string(cmds, vtCommandParams);
- }
- if ( tcl.Open(21, _T("baud=115200 parity=N data=8 stop=1") ) )
- {
- tcl.SetTimeouts();
- //tcl.parse_cmds_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};
- tcl.PackingCommand(*it, _T(""), 0);
- //sb.Read(szData, 1024, 100);
- if ( tcl.Write((void*)it->_cmdContext.c_str(), it->_cmdContext.size()) )
- {
- Sleep(it->read_wait_time);
- int c = tcl.Read(szData, 1024, 200);
- std::string str = utils::BytesToHexString(szData, c, ' ');
- utils::_dprintf("结果:%s", str.c_str());
- str = "";
- str.append((char*)szData, c);
- tcl.ParseResultString(*it, str, str.size());
- Sleep(it->cmd_wait_time);
- }
- tcl.ClearCommBuffer();
- }
- }
- #endif
- }
- void test1()
- {
- TCLCommand tcl(false);
- tcl.SetInternalCMDParams(BIN_CMD);
- tcl.SetExternalCMDParams(_T("F:\\cmds.bin"));
- if (tcl.Open(21, _T("baud=115200 parity=N data=8 stop=1")) )
- {
- tcl.SetTimeouts();
- tcl.EnterFactory();
- int pid;
- tcl.GetProjectId(pid);
- std::string value;
- tcl.GetSoftVersion(value);
- tcl.GetDeviceId(value);
- tcl.GetClientType(value);
- tcl.GetMAC(value);
- tcl.GetHDCPKey(value);
- tcl.GetHDCPKey22(value);
- tcl.GetWidi(value);
- tcl.GetNetflixESN(value);
- tcl.GetWidevine(value);
- tcl.GetCiKey(value);
- tcl.GetOSDLanguage(value);
- tcl.GetShopLanguage(value);
- tcl.GetChannel(value);
- tcl.LeaveFactory();
- }
- }
|