diff --git a/Rover/Parameters.cpp b/Rover/Parameters.cpp index 1863791022..f1addc8ad9 100644 --- a/Rover/Parameters.cpp +++ b/Rover/Parameters.cpp @@ -654,6 +654,12 @@ const AP_Param::GroupInfo ParametersG2::var_info[] = { AP_SUBGROUPINFO(torqeedo, "TRQD_", 49, ParametersG2, AP_Torqeedo), #endif +#if HAL_AIS_ENABLED + // @Group: AIS_ + // @Path: ../libraries/AP_AIS/AP_AIS.cpp + AP_SUBGROUPINFO(ais, "AIS_", 50, ParametersG2, AP_AIS), +#endif + AP_GROUPEND }; diff --git a/Rover/Parameters.h b/Rover/Parameters.h index 71202cbecb..edd24a6f37 100644 --- a/Rover/Parameters.h +++ b/Rover/Parameters.h @@ -409,6 +409,11 @@ public: // torqeedo motor driver AP_Torqeedo torqeedo; #endif + +#if HAL_AIS_ENABLED + // Automatic Identification System - for tracking sea-going vehicles + AP_AIS ais; +#endif }; extern const AP_Param::Info var_info[]; diff --git a/Rover/Rover.cpp b/Rover/Rover.cpp index 6d0684003a..7a81114d8b 100644 --- a/Rover/Rover.cpp +++ b/Rover/Rover.cpp @@ -109,6 +109,9 @@ const AP_Scheduler::Task Rover::scheduler_tasks[] = { SCHED_TASK(afs_fs_check, 10, 200), #endif SCHED_TASK(read_airspeed, 10, 100), +#if HAL_AIS_ENABLED + SCHED_TASK_CLASS(AP_AIS, &rover.g2.ais, update, 5, 100), +#endif }; diff --git a/Rover/Rover.h b/Rover/Rover.h index 6a1ec57f83..c17014d36c 100644 --- a/Rover/Rover.h +++ b/Rover/Rover.h @@ -70,6 +70,7 @@ #include #include #include +#include #ifdef ENABLE_SCRIPTING #include diff --git a/Rover/system.cpp b/Rover/system.cpp index a6e9cf74b5..4a68604bc8 100644 --- a/Rover/system.cpp +++ b/Rover/system.cpp @@ -60,6 +60,10 @@ void Rover::init_ardupilot() log_init(); #endif +#if HAL_AIS_ENABLED + g2.ais.init(); +#endif + // initialise compass AP::compass().set_log_bit(MASK_LOG_COMPASS); AP::compass().init(); diff --git a/Rover/wscript b/Rover/wscript index 318de7b6c2..b564cbbadf 100644 --- a/Rover/wscript +++ b/Rover/wscript @@ -27,6 +27,7 @@ def build(bld): 'AP_WindVane', 'AR_Motors', 'AP_Torqeedo', + 'AP_AIS', ], )