From e8401671e3a477b47ff28db7447c7c68f988082a Mon Sep 17 00:00:00 2001 From: Michael du Breuil Date: Thu, 28 Feb 2019 23:41:05 -0700 Subject: [PATCH] Sub: Allow scripting to run --- ArduSub/Parameters.cpp | 5 +++++ ArduSub/Parameters.h | 9 +++++++++ ArduSub/Sub.h | 4 ++++ ArduSub/system.cpp | 6 ++++++ 4 files changed, 24 insertions(+) diff --git a/ArduSub/Parameters.cpp b/ArduSub/Parameters.cpp index 799d5af6cd..321b56b553 100644 --- a/ArduSub/Parameters.cpp +++ b/ArduSub/Parameters.cpp @@ -634,6 +634,11 @@ const AP_Param::GroupInfo ParametersG2::var_info[] = { // @Path: ../libraries/RC_Channel/RC_Channels_VarInfo.h AP_SUBGROUPINFO(rc_channels, "RC", 17, ParametersG2, RC_Channels), +#ifdef ENABLE_SCRIPTING + // Scripting is intentionally not showing up in the parameter docs until it is a more standard feature + AP_SUBGROUPINFO(scripting, "SCR_", 18, ParametersG2, AP_Scripting), +#endif + AP_GROUPEND }; diff --git a/ArduSub/Parameters.h b/ArduSub/Parameters.h index ac2829d7d1..d835e8423f 100644 --- a/ArduSub/Parameters.h +++ b/ArduSub/Parameters.h @@ -4,6 +4,10 @@ #include +#ifdef ENABLE_SCRIPTING +#include +#endif + // Global parameter class. // class Parameters { @@ -331,6 +335,11 @@ public: // control over servo output ranges SRV_Channels servo_channels; + +#ifdef ENABLE_SCRIPTING + AP_Scripting scripting; +#endif // ENABLE_SCRIPTING + }; extern const AP_Param::Info var_info[]; diff --git a/ArduSub/Sub.h b/ArduSub/Sub.h index 6a1ec12199..c045a33e42 100644 --- a/ArduSub/Sub.h +++ b/ArduSub/Sub.h @@ -119,6 +119,10 @@ #include // Photo or video camera #endif +#ifdef ENABLE_SCRIPTING +#include +#endif + #if CONFIG_HAL_BOARD == HAL_BOARD_SITL #include #endif diff --git a/ArduSub/system.cpp b/ArduSub/system.cpp index 84b7110742..51d95d9cb9 100644 --- a/ArduSub/system.cpp +++ b/ArduSub/system.cpp @@ -190,6 +190,12 @@ void Sub::init_ardupilot() startup_INS_ground(); +#ifdef ENABLE_SCRIPTING + if (!g2.scripting.init()) { + gcs().send_text(MAV_SEVERITY_ERROR, "Scripting failed to start"); + } +#endif // ENABLE_SCRIPTING + // we don't want writes to the serial port to cause us to pause // mid-flight, so set the serial ports non-blocking once we are // ready to fly