
 

// This file is autogenerated. DO NOT EDIT

#pragma once
#include <robotpy_build.h>


#include <../src/include/frc2/command/PIDSubsystem.h>




#include <rpygen/frc2__SubsystemBase.hpp>

namespace rpygen {

using namespace frc2;


template <typename CfgBase>
using PyTrampolineCfgBase_frc2__PIDSubsystem =
    PyTrampolineCfg_frc2__SubsystemBase<
CfgBase
>;

template <typename CfgBase = EmptyTrampolineCfg>
struct PyTrampolineCfg_frc2__PIDSubsystem :
    PyTrampolineCfgBase_frc2__PIDSubsystem< CfgBase>
{
    using Base = frc2::PIDSubsystem;

    using override_base_Periodic_v = frc2::PIDSubsystem;
    using override_base_Enable_v = frc2::PIDSubsystem;
    using override_base_Disable_v = frc2::PIDSubsystem;
    using override_base_GetMeasurement_v = frc2::PIDSubsystem;
    using override_base_UseOutput_d_d = frc2::PIDSubsystem;
};


template <typename PyTrampolineBase, typename PyTrampolineCfg>
using PyTrampolineBase_frc2__PIDSubsystem =
    PyTrampoline_frc2__SubsystemBase<
        PyTrampolineBase
        
        , PyTrampolineCfg
    >
;

template <typename PyTrampolineBase, typename PyTrampolineCfg>
struct PyTrampoline_frc2__PIDSubsystem : PyTrampolineBase_frc2__PIDSubsystem<PyTrampolineBase, PyTrampolineCfg> {
    using PyTrampolineBase_frc2__PIDSubsystem<PyTrampolineBase, PyTrampolineCfg>::PyTrampolineBase_frc2__PIDSubsystem;



#ifndef RPYGEN_DISABLE_Periodic_v
    void Periodic() override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_Periodic_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(void), LookupBase,
            "periodic", );
        return CxxCallBase::Periodic();
    }
#endif

#ifndef RPYGEN_DISABLE_Enable_v
    void Enable() override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_Enable_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(void), LookupBase,
            "enable", );
        return CxxCallBase::Enable();
    }
#endif

#ifndef RPYGEN_DISABLE_Disable_v
    void Disable() override {
        using LookupBase = typename PyTrampolineCfg::Base;
        using CxxCallBase = typename PyTrampolineCfg::override_base_Disable_v;
        PYBIND11_OVERRIDE_IMPL(PYBIND11_TYPE(void), LookupBase,
            "disable", );
        return CxxCallBase::Disable();
    }
#endif

#ifndef RPYGEN_DISABLE_GetMeasurement_v
    double GetMeasurement() override {
        using LookupBase = typename PyTrampolineCfg::Base;
        RPYBUILD_OVERRIDE_PURE_NAME(PIDSubsystem, PYBIND11_TYPE(double), LookupBase,
            "_getMeasurement", GetMeasurement, );
    }
#endif

#ifndef RPYGEN_DISABLE_UseOutput_d_d
    void UseOutput(double output, double setpoint) override {
        using LookupBase = typename PyTrampolineCfg::Base;
        RPYBUILD_OVERRIDE_PURE_NAME(PIDSubsystem, PYBIND11_TYPE(void), LookupBase,
            "_useOutput", UseOutput, output, setpoint);
    }
#endif



    using frc2::PIDSubsystem::m_controller;

};

}; // namespace rpygen
