Commit Graph

309 Commits

Author SHA1 Message Date
Michael du Breuil a0bfc823b3 AP_Scripting: Support libraries holding the scheduler lock 2020-02-18 09:16:10 +11:00
Randy Mackay 8c227a5a18 AP_Scripting: add esc-usage.lua
example script to retrieve esc usage time
2020-02-12 11:58:34 +09:00
Randy Mackay fb2d7242f4 AP_Scripting: make bindings 2020-02-12 11:58:34 +09:00
Randy Mackay 617b8b45d2 AP_Scripting: add AP_ESC_Telem bindings 2020-02-12 11:58:34 +09:00
Peter Hall d5729236e2 AP_Scripting: update plane-wind-fs battery RTL failsafe example 2020-01-21 10:12:45 +11:00
Michael du Breuil 0e70eabdb9 AP_Scripting: Send lua errors to the console before status_text
This helps SITL where we frequently panic about to long a statustext,
which means a user never sees the intresting part unless they comment
out the sanity check, or run on a real board.
2020-01-16 17:54:30 -07:00
Peter Hall a1fb44b782 AP_Scripting: regenerate bindings 2020-01-14 22:34:37 -07:00
Peter Hall d6689372e3 AP_Scripting: add to AHRS ands vehicle and add baro bindings 2020-01-14 22:34:37 -07:00
Michael du Breuil 2291702473 AP_Scripting: Raise SITL default heap size 2020-01-13 20:06:31 -07:00
Michael du Breuil 51f79c1b10 AP_Scripting: Add support for UART drivers
Also improves the handling of uint32_t arguments
2020-01-13 20:06:31 -07:00
Tatsuya Yamaguchi 2c9e56c4b2 AP_Scripting: allow scripts to get modes 2020-01-14 11:16:29 +11:00
Peter Barker 4c5c5fff72 AP_Scripting: add some pointers on how to work with bindings 2020-01-07 19:29:12 -07:00
Michael du Breuil 5da062b850 AP_Scripting: Forward declare lua_new_uint32_t 2020-01-06 16:02:50 -07:00
Andrew Tridgell b69afff6a7 AP_Scripting: increase heap size (again) 2019-12-20 19:51:46 -07:00
Andrew Tridgell 07415d06ab AP_Scripting: added RCIN example script 2019-12-20 19:51:46 -07:00
Andrew Tridgell e86c6b047a AP_Scripting: regen bindings for Lua 2019-12-20 19:51:46 -07:00
Andrew Tridgell 32215be29f AP_Scripting: added rc input bindings 2019-12-20 19:51:46 -07:00
Randy Mackay a5a1d2812a AP_Scripting: example to check battery cycle count 2019-12-18 15:54:42 +11:00
Randy Mackay fdf8d4b2ee AP_Scripting: add binding for BattMonitor's get_cycle_count method 2019-12-18 15:54:42 +11:00
Peter Hall f9c4c17ff4 AP_Scripting: add rgb notify led example 2019-12-12 21:35:23 -07:00
Peter Hall 6b58501821 AP_Scripting: regenerate bindings 2019-12-12 21:35:23 -07:00
Peter Hall f35ffaddc6 AP_Scripting: add rgb notify binding 2019-12-12 21:35:23 -07:00
Michael du Breuil c836b6221d AP_Scripting: Remove readline link dependency 2019-12-11 00:15:13 -07:00
Peter Barker b0549c7569 AP_Scripting: add example to warn and then RTL based on wind speed
This was written at CubePilot 2019 as part of a workshop.

Blame MdB
2019-12-05 18:31:53 -07:00
Michael du Breuil 1c3287160e AP_Scripting: Simplify the LED_roll example 2019-12-06 08:03:26 +08:00
Michael du Breuil 9fe2c02079 AP_Scripting: Don't restart scripts if it panic'd during the initial VM creation 2019-12-05 15:08:43 -07:00
Randy Mackay c78112564c AP_Scripting: init sends failure message 2019-12-03 12:48:32 +08:00
Randy Mackay 09d75cff3b AP_Scripting: add init failure check 2019-12-03 12:48:32 +08:00
Andrew Tridgell 381af923c5 AP_Scripting: re-gen 2019-11-04 13:06:45 +11:00
Andrew Tridgell bc7651cfcb AP_Scripting: fixed chan check in LED bindings 2019-11-04 13:05:52 +11:00
Andrew Tridgell 48ba63ba11 AP_Scripting: added example script for LEDs
show LED values based on roll
2019-11-04 13:01:59 +11:00
Andrew Tridgell 7caac67487 AP_Scripting: re-gen bindings 2019-11-04 13:01:59 +11:00
Andrew Tridgell ea681c7a1e AP_Scripting: added bindings for LEDs 2019-11-04 13:01:59 +11:00
Andrew Tridgell 38ba08e0ce AP_Scripting: increase default heap size
we will need a better fix than this. Adding a couple of bindings costs
us nearly 1k of ram even if unused
2019-11-04 13:01:59 +11:00
Michael du Breuil 38e17e2068 AP_Scripting: Add Location get_distance_NED and get_distance_NE
Fixes a regression with nil punning which broke Location:offset() and
adds a test script that is suitable for CI to test this sort of thing
2019-10-31 07:10:55 +11:00
Michael du Breuil 0edc8a55a0 AP_Scripting: Add plane failsafe example script 2019-10-25 08:48:22 +08:00
Michael du Breuil 610dff61d8 AP_Scripting: Fix nullable arguments numbering, add location bearing 2019-10-25 08:48:22 +08:00
Michael du Breuil 82a7116142 AP_Scripting: Allow scripts to set the mode 2019-10-25 08:48:22 +08:00
Andrew Tridgell 83eeca2586 AP_Scripting: fixes for modified AP_ROMFS API
need to use AP_ROMFS::free()
2019-10-24 22:03:43 +11:00
Peter Barker f6b6aa68ed AP_Scripting: add a hello world example 2019-10-24 13:50:51 +11:00
Peter Barker 099379713c AP_Scripting: add simple example of a loop 2019-10-24 13:50:51 +11:00
Michael du Breuil 3274398bc2 AP_Scripting: Fix up uint32_t manipulation, fix AP_Notify
This also adds a touched up version of the foxhunt demo that was done at
the 2019 developer unconf
2019-10-16 21:57:41 -07:00
Michael du Breuil e54acb8bde AP_Scripting: Add an example message interval script 2019-10-16 09:48:55 +09:00
Michael du Breuil 076cf0bdc8 AP_Scripting: Add a one arg variant of uint32_t, and expose table unpack 2019-10-16 09:48:55 +09:00
Michael du Breuil df8c9e5825 AP_Scripting: Raise default heap size 2019-10-15 15:35:12 -06:00
Michael du Breuil cf94a02207 AP_Scripting: Stop running scripts if the enable flag ever goes false 2019-10-15 15:35:12 -06:00
Michael du Breuil f0e742caa3 AP_Scripting: Fix generation of uint32_t arguments
This also fixes the message interval description not generating
correctly, it must have been manually edited before
2019-10-14 17:51:54 -06:00
Tatsuya Yamaguchi 5039bdc8ea AP_Scripting: add set_message_interval binding 2019-10-02 16:09:44 +09:00
Andrew Tridgell b577787f68 AP_Scripting: use AP_Filesystem API 2019-08-27 15:40:43 +10:00
Michael du Breuil 7fdc9fef12 AP_Scripting: Garbage collect after each run of a script
For some reason this resolves a memory leak in a tight loop of file
open, close. This also extends the memory debug printing to be a bit
more useful.
2019-08-27 13:54:54 +10:00
Michael du Breuil 1e66457755 AP_Scripting: Allow the bindings to descirbe any build dependencies needed
Scripting has a hard requirement on AP_Terrain being available, this
allows us to emit a cleaner error message if you have disabled terrain
but not scripting
2019-08-27 09:45:35 +10:00
Michael du Breuil e05047bb0b AP_Scripting: Remove unneeded function, add some more enums 2019-08-17 10:41:27 +09:00
Michael du Breuil 1677c11855 AP_Scripting: Cope with new AP_GPS::first_unconfigured_gps 2019-07-30 10:12:43 +10:00
Randy Mackay 0e9688a4e1 AP_Scripting: resolve gcs::send_text compiler warning 2019-07-29 09:23:13 +09:00
Michael du Breuil 852f85ec10 AP_Scripting: Fix bad return types on is_nan, is_inf, is_zero 2019-07-24 16:03:46 +10:00
Michael du Breuil 9e04939adf AP_Scripting: Protect send_text from reading the stack
Also fixes small alignment problem in generated code
2019-07-24 16:03:46 +10:00
Michael du Breuil 6caa700c09 AP_Scripting: Add literal support to the binding layer 2019-07-23 10:05:29 +09:00
Michael du Breuil f79a3100d0 AP_Scripting: Add arming call, improve range check casting 2019-07-22 14:32:54 +09:00
Randy Mackay e45db32957 AP_Scripting: add AP_arming binding 2019-07-19 19:44:13 -07:00
Michael du Breuil 0054544bd3 AP_Scripting: Add support for enums to be passed through 2019-07-19 09:34:05 +09:00
Michael du Breuil 6e7367b86f AP_Scripting: Reduce lua stack usage 2019-07-19 09:34:05 +09:00
Michael du Breuil ed584313bd AP_Scripting: Remove unneeded debug output, fix the index for singleton errors 2019-07-14 00:28:00 -07:00
Michael du Breuil be25a703c0 AP_Scripting: Update battery interface 2019-07-14 00:28:00 -07:00
Michael du Breuil d58783664d AP_Scripting: Update generator to not use readline 2019-07-12 16:55:12 -07:00
Randy Mackay 27e802eaa6 AP_Scripting: add AP_AHRS method get_roll, pitch, yaw 2019-07-12 13:57:28 +09:00
Michael du Breuil 104164d2e4 AP_Scripting: Tighten range checks on library calls 2019-07-06 09:01:13 -07:00
Michael du Breuil 0ed3c547fd AP_Scripting: Disable by default, fix a nullable type, update README 2019-06-18 00:06:32 -07:00
Michael du Breuil 8db8dcd2d2 AP_Scripting: Fix up some warnings
-Remove some non forward declared issues
  -Remove forced min/max values from the enum range check
2019-05-11 18:25:43 -07:00
Michael du Breuil bd256afee4 AP_Scripting: extract a common argument check helper
Allows an easy additional flag for saving flash space
2019-05-11 18:25:43 -07:00
Michael du Breuil 84c2b18e43 AP_Scripting: Support enum types, add millis() remove manual GCS wrapper
This introduces enum types for range checking/returns, adds a millis(() call
(this returns a uint32_t), and moves over to an auto generated version of the GCS binding
2019-05-11 18:25:43 -07:00
Michael du Breuil eddf926433 AP_Scripting: Add support for semaphore protection around singletons
This makes the assumption that the semaphore is available via reference, not pointer
For a singleton object this seems like a reasonable API restriction
2019-05-11 18:25:43 -07:00
Michael du Breuil 17e258d347 AP_Scripting: Reenable file IO 2019-04-26 08:07:19 +10:00
Michael du Breuil 066dc9d12b AP_Scripting: Add support for terrain 2019-04-26 08:07:19 +10:00
Michael du Breuil 50b76a27aa AP_Scripting: Add uint32_t support to generator 2019-04-26 08:07:19 +10:00
Michael du Breuil 7690df1d69 AP_Scripting: Add boxed numerics for uint32_t types
Also fixes bad check in send_text that could seg fault in send_text

And fixes the fact that all freshly allocated userdata's need to be
memset
2019-04-26 08:07:19 +10:00
Michael du Breuil 8e50ca9ae4 AP_Scripting: Add stack checking to allocators 2019-04-26 08:07:19 +10:00
Michael du Breuil 56b8741c3e AP_Scripting: Add more bindings 2019-04-26 08:07:19 +10:00
Michael du Breuil 1b48ce57f0 AP_Scripting: Add operator overloading
Also introduces battmonitor wrappers, and removes an unneeded checkdata
2019-04-26 08:07:19 +10:00
Michael du Breuil 6bcc6d85e7 AP_Scripting: Nullable primitive arguments do not recieve a range check 2019-04-26 08:07:19 +10:00
Michael du Breuil 893779fbcd AP_Scripting: Introduce fixed minimum range type checking on primitives 2019-04-26 08:07:19 +10:00
Michael du Breuil 1895178285 AP_Scripting: Add support for nullable types
This adds nil punning to the generator. It also unifies the emitter for
both singletons and userdata, as they were almost identical to begin
with. This should ease the maintenance burden of adding new types.
2019-04-26 08:07:19 +10:00
Michael du Breuil e4035bd7e8 AP_Scripting: Add alias suppport to the scripting generator 2019-04-26 08:07:19 +10:00
Michael du Breuil 746240ebe3 AP_Scripting: Add more primitive types 2019-04-26 08:07:19 +10:00
Michael du Breuil f1d5269f9e AP_Scritping: remove more libraries from the sandbox 2019-04-11 23:03:20 -07:00
Michael du Breuil d7e71f85b8 AP_Scripting: Add a debug level param 2019-04-11 23:03:20 -07:00
Michael du Breuil e7d59514d9 AP_Scripting: Add an initial generator 2019-04-11 23:03:20 -07:00
Pierre Kancir ad75b1e56f AP_Scripting: update locations_are_same to same_latlon_as 2019-04-08 08:05:05 -07:00
Pierre Kancir 3e122c19f3 AP_Scripting: move location_update to Location and rename to offset_bearing 2019-04-06 09:10:28 +11:00
Michael du Breuil 7183b504a7 AP_Scripting: Fix bad location changes 2019-03-05 08:45:54 +11:00
Dr.-Ing. Amilcar do Carmo Lucas 67bbc6962a AP_Scripting: replace location_offset() and get_distance() function calls with Location object member function calls
This allows removing duplicated code
2019-02-28 11:44:09 +11:00
Michael du Breuil c3e11fd34d AP_Scripting: Reduce stack allocated buffer size to reduce warnings
about large frame size
2019-02-01 14:31:05 -07:00
Michael du Breuil b45970fded AP_Scripting: Add location and ahrs user data 2019-02-01 14:31:05 -07:00
Michael du Breuil 9dd36ba511 AP_Scripting: Factor out common range constraints 2019-02-01 14:31:05 -07:00
Michael du Breuil d38dde82fe Lua: revert including lmem 2018-12-31 19:25:23 -07:00
Michael du Breuil c191789651 AP_Scripting: Use dedicated heap 2018-12-31 19:25:23 -07:00
Michael du Breuil 0ede7b7d39 AP_Scripting: Catch lua panics 2018-11-26 22:32:56 +00:00
Michael du Breuil 2afe72d79f AP_Scripting: Swap reschedule to be callback, delay 2018-11-14 01:41:35 +00:00
Michael du Breuil ecb1a433b1 AP_Scripting: Add more runtime sanity checks 2018-11-14 01:41:35 +00:00
Michael du Breuil 40d5e233d4 AP_Scripting: Autostart all scripts in a given folder 2018-11-14 01:41:35 +00:00
Michael du Breuil 19a8c5a6ed AP_Scripting: Run multiple scripts at once 2018-11-14 01:41:35 +00:00
Michael du Breuil b0a84ab7cf AP_Scripting: Enforce a time limit for a script 2018-11-14 01:41:35 +00:00
Michael du Breuil a2a8ac15b3 AP_Scripting: Add access to SRV_Channels::set_output_pwm
This also provides a more intresting function, with range checking. We
could choose to ignore this range checking and leave the script author
responsible for managing this, but it's probably better to protect the
author from themselves as much as possible, even if it makes the API
binding harder to automate
2018-10-30 16:17:03 -07:00
Michael du Breuil 2c3fe0cbcf AP_Scripting: Load a sandbox enviorment 2018-10-30 16:17:03 -07:00
Michael du Breuil beaa069082 AP_Scripting: Disable lua coroutines 2018-10-30 16:17:03 -07:00
Michael du Breuil 68576eff32 AP_Scripting: Initial test script 2018-10-09 10:08:52 +11:00
Michael du Breuil e421599e4f AP_Scripting: Hide lua IO for now 2018-10-09 10:08:52 +11:00
Michael du Breuil 513e5946bb AP_Scripting: Add Lua 5.3.5 source 2018-10-09 10:08:52 +11:00
Michael du Breuil 8049c64a5b AP_Scripting: Create a thread and spin 2018-10-09 10:08:52 +11:00
Michael du Breuil f2a31866aa AP_Scripting: Initial scripting framework 2018-10-09 10:08:52 +11:00