本文整理汇总了C++中InterfaceGCMFunctionType::GetAbsoluteTimeInSeconds方法的典型用法代码示例。如果您正苦于以下问题:C++ InterfaceGCMFunctionType::GetAbsoluteTimeInSeconds方法的具体用法?C++ InterfaceGCMFunctionType::GetAbsoluteTimeInSeconds怎么用?C++ InterfaceGCMFunctionType::GetAbsoluteTimeInSeconds使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类InterfaceGCMFunctionType
的用法示例。
在下文中一共展示了InterfaceGCMFunctionType::GetAbsoluteTimeInSeconds方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InterfaceGCMCommands_GetAbsoluteTimeDiffs
void mtsManagerComponentServer::InterfaceGCMCommands_GetAbsoluteTimeDiffs(const std::vector<std::string> & processNames,
std::vector<double> & processTimes) const
{
double sleepTime = 0.1;
unsigned int numOfTrials = 10;
vctDynamicVector<double> trialTimes(numOfTrials);
double time;
mtsExecutionResult result;
// Make sure return vector has correct size
processTimes.resize(processNames.size());
mtsManagerLocal * LCM = mtsManagerLocal::GetInstance();
const std::string thisProcess = LCM->GetProcessName();
for (unsigned int i = 0; i < processNames.size(); i++) {
processTimes[i] = 0.0;
if (processNames[i] == thisProcess)
continue;
InterfaceGCMFunctionType * functionSet = InterfaceGCMFunctionMap.GetItem(processNames[i], CMN_LOG_LEVEL_NONE);
if (!functionSet) {
CMN_LOG_CLASS_RUN_ERROR << "GetAbsoluteTimeDiffs: could not find functions for process " << processNames[i] << std::endl;
continue;
}
trialTimes.Zeros();
for (unsigned int t = 0; t < numOfTrials; t++) {
double tic = LCM->GetTimeServer().GetAbsoluteTimeInSeconds();
result = functionSet->GetAbsoluteTimeInSeconds(time);
double roundTripTime = LCM->GetTimeServer().GetAbsoluteTimeInSeconds() - tic;
if (result.IsOK()) {
trialTimes[i] = (tic + roundTripTime/2.0) - time;
}
else {
CMN_LOG_CLASS_RUN_ERROR << "GetAbsoluteTimeDiffs: could not execute command for process " << processNames[i]
<< ", result = " << result << std::endl;
trialTimes.Zeros();
break;
}
osaSleep(sleepTime);
}
processTimes[i] = trialTimes.SumOfElements()/numOfTrials;
}
}