From e45db32957eade99711554437c0836f1002a5c7b Mon Sep 17 00:00:00 2001 From: Randy Mackay Date: Thu, 18 Jul 2019 21:05:39 +0900 Subject: [PATCH] AP_Scripting: add AP_arming binding --- .../generator/description/bindings.desc | 6 +++ .../AP_Scripting/lua_generated_bindings.cpp | 37 +++++++++++++++++++ .../AP_Scripting/lua_generated_bindings.h | 1 + 3 files changed, 44 insertions(+) diff --git a/libraries/AP_Scripting/generator/description/bindings.desc b/libraries/AP_Scripting/generator/description/bindings.desc index c5e8d571d6..0df94e01be 100644 --- a/libraries/AP_Scripting/generator/description/bindings.desc +++ b/libraries/AP_Scripting/generator/description/bindings.desc @@ -31,6 +31,12 @@ singleton AP_AHRS method get_relative_position_NED_home boolean Vector3f'Null singleton AP_AHRS method home_is_set boolean singleton AP_AHRS method prearm_healthy boolean +include AP_Arming/AP_Arming.h + +singleton AP_Arming alias arming +singleton AP_Arming method disarm boolean +singleton AP_Arming method is_armed boolean + include AP_BattMonitor/AP_BattMonitor.h singleton AP_BattMonitor alias battery diff --git a/libraries/AP_Scripting/lua_generated_bindings.cpp b/libraries/AP_Scripting/lua_generated_bindings.cpp index ca96827d74..ab39fecb5f 100644 --- a/libraries/AP_Scripting/lua_generated_bindings.cpp +++ b/libraries/AP_Scripting/lua_generated_bindings.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include @@ -1289,6 +1290,34 @@ static int AP_BattMonitor_num_instances(lua_State *L) { return 1; } +static int AP_Arming_is_armed(lua_State *L) { + AP_Arming * ud = AP_Arming::get_singleton(); + if (ud == nullptr) { + return luaL_argerror(L, 1, "arming not supported on this firmware"); + } + + binding_argcheck(L, 1); + const bool data = ud->is_armed( + ); + + lua_pushboolean(L, data); + return 1; +} + +static int AP_Arming_disarm(lua_State *L) { + AP_Arming * ud = AP_Arming::get_singleton(); + if (ud == nullptr) { + return luaL_argerror(L, 1, "arming not supported on this firmware"); + } + + binding_argcheck(L, 1); + const bool data = ud->disarm( + ); + + lua_pushboolean(L, data); + return 1; +} + static int AP_AHRS_prearm_healthy(lua_State *L) { AP_AHRS * ud = AP_AHRS::get_singleton(); if (ud == nullptr) { @@ -1602,6 +1631,12 @@ const luaL_Reg AP_BattMonitor_meta[] = { {NULL, NULL} }; +const luaL_Reg AP_Arming_meta[] = { + {"is_armed", AP_Arming_is_armed}, + {"disarm", AP_Arming_disarm}, + {NULL, NULL} +}; + const luaL_Reg AP_AHRS_meta[] = { {"prearm_healthy", AP_AHRS_prearm_healthy}, {"home_is_set", AP_AHRS_home_is_set}, @@ -1655,6 +1690,7 @@ const struct userdata_meta singleton_fun[] = { {"notify", notify_meta, NULL}, {"gps", AP_GPS_meta, AP_GPS_enums}, {"battery", AP_BattMonitor_meta, NULL}, + {"arming", AP_Arming_meta, NULL}, {"ahrs", AP_AHRS_meta, NULL}, }; @@ -1705,6 +1741,7 @@ const char *singletons[] = { "notify", "gps", "battery", + "arming", "ahrs", }; diff --git a/libraries/AP_Scripting/lua_generated_bindings.h b/libraries/AP_Scripting/lua_generated_bindings.h index 26b7222b13..d9297425e3 100644 --- a/libraries/AP_Scripting/lua_generated_bindings.h +++ b/libraries/AP_Scripting/lua_generated_bindings.h @@ -8,6 +8,7 @@ #include #include #include +#include #include #include #include "lua/src/lua.hpp"