diff --git a/libraries/AC_PrecLand/AC_PrecLand_IRLock.h b/libraries/AC_PrecLand/AC_PrecLand_IRLock.h index b54d3d53d5..a1c321d27c 100644 --- a/libraries/AC_PrecLand/AC_PrecLand_IRLock.h +++ b/libraries/AC_PrecLand/AC_PrecLand_IRLock.h @@ -6,12 +6,13 @@ #include #include +#include -#if CONFIG_HAL_BOARD == HAL_BOARD_SITL - #include -#else - #include -#endif +#if AP_IRLOCK_SITL_ENABLED +#include +#elif AP_IRLOCK_I2C_ENABLED +#include +#endif // AP_IRLOCK_I2C_ENABLED /* * AC_PrecLand_IRLock - implements precision landing using target vectors provided @@ -32,9 +33,9 @@ public: void update() override; private: -#if CONFIG_HAL_BOARD == HAL_BOARD_SITL +#if AP_IRLOCK_SITL_ENABLED AP_IRLock_SITL irlock; -#else +#elif AP_IRLOCK_I2C_ENABLED AP_IRLock_I2C irlock; #endif }; diff --git a/libraries/AP_IRLock/AP_IRLock.cpp b/libraries/AP_IRLock/AP_IRLock.cpp index cd75491ed4..83962cab0c 100644 --- a/libraries/AP_IRLock/AP_IRLock.cpp +++ b/libraries/AP_IRLock/AP_IRLock.cpp @@ -5,6 +5,10 @@ * Author: MLandes */ +#include "AP_IRLock_config.h" + +#if AP_IRLOCK_ENABLED + #include "AP_IRLock.h" // retrieve body frame unit vector in direction of target @@ -23,3 +27,5 @@ bool AP_IRLock::get_unit_vector_body(Vector3f& ret) const ret /= ret.length(); return true; } + +#endif // AP_IRLOCK_ENABLED diff --git a/libraries/AP_IRLock/AP_IRLock.h b/libraries/AP_IRLock/AP_IRLock.h index 5dbea076fb..187d19e63d 100644 --- a/libraries/AP_IRLock/AP_IRLock.h +++ b/libraries/AP_IRLock/AP_IRLock.h @@ -21,6 +21,10 @@ */ #pragma once +#include "AP_IRLock_config.h" + +#if AP_IRLOCK_ENABLED + #include class AP_IRLock @@ -65,3 +69,5 @@ protected: irlock_target_info _target_info; }; + +#endif // AP_IRLOCK_ENABLED diff --git a/libraries/AP_IRLock/AP_IRLock_I2C.cpp b/libraries/AP_IRLock/AP_IRLock_I2C.cpp index 977c1e37d9..d170771bea 100644 --- a/libraries/AP_IRLock/AP_IRLock_I2C.cpp +++ b/libraries/AP_IRLock/AP_IRLock_I2C.cpp @@ -20,6 +20,10 @@ * * See: http://irlock.com/pages/serial-communication-protocol */ +#include "AP_IRLock_config.h" + +#if AP_IRLOCK_I2C_ENABLED + #include #include "AP_IRLock_I2C.h" #include @@ -171,3 +175,5 @@ bool AP_IRLock_I2C::update() // return true if new data found return new_data; } + +#endif // AP_IRLOCK_I2C_ENABLED diff --git a/libraries/AP_IRLock/AP_IRLock_I2C.h b/libraries/AP_IRLock/AP_IRLock_I2C.h index 9bb318fca8..b03598bee0 100644 --- a/libraries/AP_IRLock/AP_IRLock_I2C.h +++ b/libraries/AP_IRLock/AP_IRLock_I2C.h @@ -4,6 +4,10 @@ */ #pragma once +#include "AP_IRLock_config.h" + +#if AP_IRLOCK_I2C_ENABLED + #include "AP_IRLock.h" #include @@ -39,3 +43,5 @@ private: HAL_Semaphore sem; uint32_t _last_read_ms; }; + +#endif // AP_IRLOCK_I2C_ENABLED diff --git a/libraries/AP_IRLock/AP_IRLock_SITL.cpp b/libraries/AP_IRLock/AP_IRLock_SITL.cpp index 954bc62e6f..9eeaead277 100644 --- a/libraries/AP_IRLock/AP_IRLock_SITL.cpp +++ b/libraries/AP_IRLock/AP_IRLock_SITL.cpp @@ -19,9 +19,10 @@ * Created on: June 09, 2016 * Author: Ian Chen */ -#include +#include "AP_IRLock_config.h" + +#if AP_IRLOCK_SITL_ENABLED -#if CONFIG_HAL_BOARD == HAL_BOARD_SITL #include "AP_IRLock_SITL.h" #include "AP_AHRS/AP_AHRS.h" @@ -55,4 +56,4 @@ bool AP_IRLock_SITL::update() return false; } -#endif // CONFIG_HAL_BOARD == HAL_BOARD_SITL +#endif // AP_IRLOCK_SITL_ENABLED diff --git a/libraries/AP_IRLock/AP_IRLock_SITL.h b/libraries/AP_IRLock/AP_IRLock_SITL.h index 135417d9b0..0940319866 100644 --- a/libraries/AP_IRLock/AP_IRLock_SITL.h +++ b/libraries/AP_IRLock/AP_IRLock_SITL.h @@ -6,7 +6,10 @@ */ #pragma once -#if CONFIG_HAL_BOARD == HAL_BOARD_SITL +#include "AP_IRLock_config.h" + +#if AP_IRLOCK_SITL_ENABLED + #include "AP_IRLock.h" #include @@ -23,4 +26,5 @@ private: SITL::SIM *_sitl; // sitl instance pointer uint32_t _last_timestamp = 0; }; -#endif // CONFIG_HAL_BOARD + +#endif // AP_IRLOCK_SITL_ENABLED diff --git a/libraries/AP_IRLock/AP_IRLock_SITL_Gazebo.cpp b/libraries/AP_IRLock/AP_IRLock_SITL_Gazebo.cpp index 15e728612d..842cd7d633 100644 --- a/libraries/AP_IRLock/AP_IRLock_SITL_Gazebo.cpp +++ b/libraries/AP_IRLock/AP_IRLock_SITL_Gazebo.cpp @@ -19,9 +19,10 @@ * Created on: June 09, 2016 * Author: Ian Chen */ -#include +#include "AP_IRLock_config.h" + +#if AP_IRLOCK_SITL_GAZEBO_ENABLED -#if CONFIG_HAL_BOARD == HAL_BOARD_SITL #include "AP_IRLock_SITL_Gazebo.h" #include #include @@ -92,4 +93,4 @@ bool AP_IRLock_SITL_Gazebo::update() return new_data; } -#endif // CONFIG_HAL_BOARD == HAL_BOARD_SITL +#endif // AP_IRLOCK_SITL_GAZEBO_ENABLED diff --git a/libraries/AP_IRLock/AP_IRLock_SITL_Gazebo.h b/libraries/AP_IRLock/AP_IRLock_SITL_Gazebo.h index ceaa78fdba..fe1ea8ecba 100644 --- a/libraries/AP_IRLock/AP_IRLock_SITL_Gazebo.h +++ b/libraries/AP_IRLock/AP_IRLock_SITL_Gazebo.h @@ -6,8 +6,11 @@ */ #pragma once +#include "AP_IRLock_config.h" + +#if AP_IRLOCK_SITL_GAZEBO_ENABLED + #include -#if CONFIG_HAL_BOARD == HAL_BOARD_SITL #include "AP_IRLock.h" class AP_IRLock_SITL_Gazebo : public AP_IRLock @@ -26,4 +29,5 @@ private: uint32_t _last_timestamp; SocketAPM_native sock; }; -#endif // CONFIG_HAL_BOARD + +#endif // AP_IRLOCK_SITL_GAZEBO_ENABLED diff --git a/libraries/AP_IRLock/AP_IRLock_config.h b/libraries/AP_IRLock/AP_IRLock_config.h new file mode 100644 index 0000000000..d8d96ab4bc --- /dev/null +++ b/libraries/AP_IRLock/AP_IRLock_config.h @@ -0,0 +1,23 @@ +#pragma once + +#include + +#ifndef AP_IRLOCK_ENABLED +#define AP_IRLOCK_ENABLED 1 +#endif // AP_IRLOCK_ENABLED + +#ifndef AP_IRLOCK_BACKEND_DEFAULT_ENABLED +#define AP_IRLOCK_BACKEND_DEFAULT_ENABLED AP_IRLOCK_ENABLED +#endif // AP_IRLOCK_BACKEND_DEFAULT_ENABLED + +#ifndef AP_IRLOCK_I2C_ENABLED +#define AP_IRLOCK_I2C_ENABLED AP_IRLOCK_BACKEND_DEFAULT_ENABLED +#endif // AP_IRLOCK_I2C_ENABLED + +#ifndef AP_IRLOCK_SITL_ENABLED +#define AP_IRLOCK_SITL_ENABLED AP_IRLOCK_BACKEND_DEFAULT_ENABLED && (CONFIG_HAL_BOARD == HAL_BOARD_SITL) +#endif // AP_IRLOCK_SITL_ENABLED + +#ifndef AP_IRLOCK_SITL_GAZEBO_ENABLED +#define AP_IRLOCK_SITL_GAZEBO_ENABLED AP_IRLOCK_BACKEND_DEFAULT_ENABLED && (CONFIG_HAL_BOARD == HAL_BOARD_SITL) +#endif // AP_IRLOCK_SITL_GAZEBO_ENABLED