当前位置: 首页>>代码示例>>C++>>正文


C++ InterfaceGCMFunctionType::GetAbsoluteTimeInSeconds方法代码示例

本文整理汇总了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;
    }
}
开发者ID:Shuyoung,项目名称:cisst,代码行数:48,代码来源:mtsManagerComponentServer.cpp


注:本文中的InterfaceGCMFunctionType::GetAbsoluteTimeInSeconds方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。