
 

// This file is autogenerated. DO NOT EDIT

#pragma once
#include <robotpy_build.h>


#include <../_impl/include/frc/ADXL345_I2C.h>

#include <networktables/NTSendableBuilder.h>

#define RPYGEN_DISABLE_SetRange_TRange


#include <rpygen/frc__Accelerometer.hpp>
#include <rpygen/nt__NTSendable.hpp>

namespace rpygen {

using namespace frc;


template <typename CfgBase>
using PyTrampolineCfgBase_frc__ADXL345_I2C =
    PyTrampolineCfg_frc__Accelerometer<
    PyTrampolineCfg_nt__NTSendable<
CfgBase
>>;

template <typename CfgBase = EmptyTrampolineCfg>
struct PyTrampolineCfg_frc__ADXL345_I2C :
    PyTrampolineCfgBase_frc__ADXL345_I2C< CfgBase>
{
    using Base = frc::ADXL345_I2C;

    using override_base_GetX_v = frc::ADXL345_I2C;
    using override_base_GetY_v = frc::ADXL345_I2C;
    using override_base_GetZ_v = frc::ADXL345_I2C;
    using override_base_GetAcceleration_TAxes = frc::ADXL345_I2C;
    using override_base_GetAccelerations_v = frc::ADXL345_I2C;
    using override_base_InitSendable_RTNTSendableBuilder = frc::ADXL345_I2C;
};


template <typename PyTrampolineBase, typename PyTrampolineCfg>
using PyTrampolineBase_frc__ADXL345_I2C =
    PyTrampoline_frc__Accelerometer<
    PyTrampoline_nt__NTSendable<
        PyTrampolineBase
        
        , PyTrampolineCfg
    >
        
        , PyTrampolineCfg
    >
;

template <typename PyTrampolineBase, typename PyTrampolineCfg>
struct PyTrampoline_frc__ADXL345_I2C : PyTrampolineBase_frc__ADXL345_I2C<PyTrampolineBase, PyTrampolineCfg> {
    using PyTrampolineBase_frc__ADXL345_I2C<PyTrampolineBase, PyTrampolineCfg>::PyTrampolineBase_frc__ADXL345_I2C;


using Range = frc::Accelerometer::Range;    static constexpr auto kRange_2G = frc::Accelerometer::Range::kRange_2G;

#ifndef RPYGEN_DISABLE_GetX_v
    double GetX() override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_GetX_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(double), LookupBase,
            "getX", );
        return CxxCallBase::GetX();
    }
#endif

#ifndef RPYGEN_DISABLE_GetY_v
    double GetY() override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_GetY_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(double), LookupBase,
            "getY", );
        return CxxCallBase::GetY();
    }
#endif

#ifndef RPYGEN_DISABLE_GetZ_v
    double GetZ() override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_GetZ_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(double), LookupBase,
            "getZ", );
        return CxxCallBase::GetZ();
    }
#endif

#ifndef RPYGEN_DISABLE_GetAcceleration_TAxes
    double GetAcceleration(frc::ADXL345_I2C::Axes axis) override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_GetAcceleration_TAxes;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(double), LookupBase,
            "getAcceleration", axis);
        return CxxCallBase::GetAcceleration(axis);
    }
#endif

#ifndef RPYGEN_DISABLE_GetAccelerations_v
    ADXL345_I2C::AllAxes GetAccelerations() override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_GetAccelerations_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(ADXL345_I2C::AllAxes), LookupBase,
            "getAccelerations", );
        return CxxCallBase::GetAccelerations();
    }
#endif

#ifndef RPYGEN_DISABLE_InitSendable_RTNTSendableBuilder
    void InitSendable(nt::NTSendableBuilder& builder) override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_InitSendable_RTNTSendableBuilder;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(void), LookupBase,
            "initSendable", builder);
        return CxxCallBase::InitSendable(builder);
    }
#endif



    using frc::ADXL345_I2C::m_simDevice;
    using frc::ADXL345_I2C::m_simRange;
    using frc::ADXL345_I2C::m_simX;
    using frc::ADXL345_I2C::m_simY;
    using frc::ADXL345_I2C::m_simZ;
    using frc::ADXL345_I2C::kAddress;
    using frc::ADXL345_I2C::kPowerCtlRegister;
    using frc::ADXL345_I2C::kDataFormatRegister;
    using frc::ADXL345_I2C::kDataRegister;
    using frc::ADXL345_I2C::kGsPerLSB;

};

}; // namespace rpygen
