// 模拟交互过程的函数 unsigned _int64 TestHL::ProtocolFun(const int& tag){ // 获取被选标签的信息 string sql; sql = "select [Id], [Key] from Tags_HL where Num="; sql.append(itostr(tag)); adoConn.GetRecordSet(sql.c_str()); if (adoConn.m_pRecordset->GetState() == adStateClosed || adoConn.m_pRecordset->GetRecordCount() == 0) { cout << endl << "Tag[" << tag << "] isn't in DataBase." << endl; return 0; } // 生成查询信息 Request_Info req; req.id= adoConn.m_pRecordset->GetCollect("Id").uintVal; req.key = adoConn.m_pRecordset->GetCollect("Key").uintVal; adoConn.CloseRecordset(); // 计时器 MyTimer timer; // 初始化随机数生成器 minstd_rand0 minrand(timer.GetBegin()); timer.Start(); // 调用模拟标签的函数 Response_Info res = TagFun(req); // 调用阅读器的函数 Result_Info result = ReaderFun(res); // 计时器终止 timer.Stop(); return timer.GetTime(); }