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


C++ DataFlash_Class::log_replay方法代码示例

本文整理汇总了C++中DataFlash_Class::log_replay方法的典型用法代码示例。如果您正苦于以下问题:C++ DataFlash_Class::log_replay方法的具体用法?C++ DataFlash_Class::log_replay怎么用?C++ DataFlash_Class::log_replay使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DataFlash_Class的用法示例。


在下文中一共展示了DataFlash_Class::log_replay方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1:

// Initialise the filter
bool NavEKF2::InitialiseFilter(void)
{
    if (_enable == 0) {
        return false;
    }

    imuSampleTime_us = AP_HAL::micros64();

    // see if we will be doing logging
    DataFlash_Class *dataflash = DataFlash_Class::instance();
    if (dataflash != nullptr) {
        logging.enabled = dataflash->log_replay();
    }

    if (core == nullptr) {

        // don't run multiple filters for 1 IMU
        const AP_InertialSensor &ins = _ahrs->get_ins();
        uint8_t mask = (1U<<ins.get_accel_count())-1;
        _imuMask.set(_imuMask.get() & mask);

        // count IMUs from mask
        num_cores = 0;
        for (uint8_t i=0; i<7; i++) {
            if (_imuMask & (1U<<i)) {
                num_cores++;
            }
        }

        if (hal.util->available_memory() < sizeof(NavEKF2_core)*num_cores + 4096) {
            GCS_MAVLINK::send_statustext_all(MAV_SEVERITY_CRITICAL, "NavEKF2: not enough memory");
            _enable.set(0);
            return false;
        }

        core = new NavEKF2_core[num_cores];
        if (core == nullptr) {
            _enable.set(0);
            GCS_MAVLINK::send_statustext_all(MAV_SEVERITY_CRITICAL, "NavEKF2: allocation failed");
            return false;
        }

        // set the IMU index for the cores
        num_cores = 0;
        for (uint8_t i=0; i<7; i++) {
            if (_imuMask & (1U<<i)) {
                if(!core[num_cores].setup_core(this, i, num_cores)) {
                    return false;
                }
                num_cores++;
            }
        }

        // Set the primary initially to be the lowest index
        primary = 0;
    }

    // initialse the cores. We return success only if all cores
    // initialise successfully
    bool ret = true;
    for (uint8_t i=0; i<num_cores; i++) {
        ret &= core[i].InitialiseFilterBootstrap();
    }

    check_log_write();
    return ret;
}
开发者ID:jaxxzer,项目名称:ardupilot,代码行数:68,代码来源:AP_NavEKF2.cpp


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