Program Listing for File IMU.hpp

Return to documentation for file (include/depthai/pipeline/node/IMU.hpp)

#pragma once

#include "depthai/pipeline/Node.hpp"

// shared
#include <depthai-shared/properties/IMUProperties.hpp>

namespace dai {
namespace node {

class IMU : public NodeCRTP<Node, IMU, IMUProperties> {
   public:
    constexpr static const char* NAME = "IMU";

    IMU(const std::shared_ptr<PipelineImpl>& par, int64_t nodeId);
    IMU(const std::shared_ptr<PipelineImpl>& par, int64_t nodeId, std::unique_ptr<Properties> props);

    Output out{*this, "out", Output::Type::MSender, {{DatatypeEnum::IMUData, false}}};

    void enableIMUSensor(IMUSensorConfig sensorConfig);

    void enableIMUSensor(const std::vector<IMUSensorConfig>& sensorConfigs);

    void enableIMUSensor(IMUSensor sensor, uint32_t reportRate);

    void enableIMUSensor(const std::vector<IMUSensor>& sensors, uint32_t reportRate);

    void setBatchReportThreshold(std::int32_t batchReportThreshold);

    std::int32_t getBatchReportThreshold() const;

    void setMaxBatchReports(std::int32_t maxBatchReports);

    std::int32_t getMaxBatchReports() const;

    /*
     * Whether to perform firmware update or not.
     * Default value: false.
     */
    void enableFirmwareUpdate(bool enable);
};

}  // namespace node
}  // namespace dai