Thomas Watson
a077e4a3ed
AP_Scripting: introduce serial device simulation support
...
Allows a script to simulate a device attached via any serial protocol.
The script can read and write data and have it handled according to the
protocol as if exchanged over a serial port. The script can then do
protocol translation, data filtering and validation,
hardware-in-the-loop simulation, experimentation, etc., especially in
combination with the scripting protocol which lets the script itself
handle an attached device and so interpose any communication.
2024-06-27 12:00:18 +10:00
Thomas Watson
4df2a1bce7
AP_Scripting/generator: generate depends for manual functions on singletons
2024-06-27 12:00:18 +10:00
Thomas Watson
c18f9f733e
AP_Scripting: add writestring for serial
...
Enables more efficient scripting.
2024-06-27 12:00:18 +10:00
Thomas Watson
d93aa15f2a
AP_Scripting: refactor serial readstring
...
Using `luaL_Buffer` avoids the need for any heap allocation in the
common case (count <= 512 bytes) and avoids stressing out the system
heap for large reads, instead using the script heap.
Zero net flash usage change.
2024-06-27 12:00:18 +10:00
Thomas Watson
e18449b1b8
AP_Scripting: use generic access userdata for serial ports
...
Adding another layer instead of just exposing UARTDriver bindings allows
substitution of the different functions for device simulation later.
Also take the opportunity to rework the docs a little.
2024-06-27 12:00:18 +10:00
Thomas Watson
c37dba60de
AP_Scripting/generator: allow disabling userdata creation from Lua
...
Passing -1 to the argument count for the `creation` tag (name does not
matter) will stop the generator from giving Lua a function to construct
that userdata. The C `new_<name>` function still works.
2024-06-27 12:00:18 +10:00
Andrew Tridgell
d87404adfa
AP_Scripting: added mcu_temperature binding
2024-06-27 10:11:14 +10:00
Iampete1
a322ba4f77
AP_Scripting: add binding for GPS `time_epoch_usec`
2024-06-18 10:37:13 +10:00
Iampete1
1c26c241f1
AP_Scripting: add uint64 userdata
2024-06-18 10:37:13 +10:00
Iampete1
574b9939a5
AP_Scripting: allow auto generation of uint32 operators
2024-06-18 10:37:13 +10:00
Iampete1
cb22a6389d
AP_Scripting: add virtual class in docs to avoid need nil check warning
2024-06-07 06:30:22 +10:00
Iampete1
364419be81
AP_Scripting: docs: allow overload of manual bindings to allow documentation of optional arguments
2024-06-04 09:29:49 +10:00
Andrew Tridgell
d305cb47f8
AP_Scripting: added GPS yaw binding
...
useful for seeing if switching to a GPS yaw source set in EK3 will work
2024-05-29 12:56:57 +10:00
Iampete1
713eda617f
AP_Scripting: allow new flow control type in `set_flow_control` binding
2024-05-28 09:48:19 +10:00
Iampete1
003ccc38c6
AP_Scripting: generator allow more types for uint32 prams and dont add class keyword to globals
2024-05-21 09:42:22 +10:00
Iampete1
a4a8923e1e
AP_Scripting: generator: add return count to manual bindings
2024-05-07 09:51:53 +10:00
Iampete1
6e75f7c80f
AP_Scripting: update docs generator to show ap_objects as possibly nil
2024-05-07 09:51:53 +10:00
Peter Barker
d1de760ee4
AP_Scripting: enable AP_Scheduler for CubeOrange-periph-heavy
...
... we use the scehduler in AP_Motors, which is compiled when making heavy-periph
2024-05-01 17:53:44 +10:00
Andrew Tridgell
bac99dc7ac
AP_Scripting: added bindings for AC_PrecLand
2024-03-06 09:39:51 +11:00
Randy Mackay
f2b66fd179
AP_Scripting: add VisualOdom bindings
2024-02-28 18:52:37 +11:00
Peter Barker
53fd9056d8
AP_Scripting: use AP_ARMING_ENABLED and AP_COMPASS_ENABLED
...
... in place of periph-specific checks
2024-02-27 11:02:48 +11:00
Clyde McQueen
b486c1cb46
AP_Scripting: expose sub rangefinder methods
2024-02-21 18:59:20 -03:00
Iampete1
5907e49cb1
AP_Scripting: ensure that all pass by refence values are initialized
2024-02-20 11:05:36 +11:00
Peter Barker
2263dced74
AP_Scripting use scheduler semaphore only if AP_SCHEDULER_ENABLED
2024-02-15 12:17:07 +11:00
Iampete1
46e4588cf7
AP_Scripting: add file system crc32 binding
2024-02-15 07:36:39 +11:00
Peter Barker
40f0001aea
AP_BattMonitor: fix compilation when scripting in but scripted-battery out
...
Co-authored-by: Peter Hall <33176108+IamPete1@users.noreply.github.com>
2024-02-14 23:43:18 +11:00
Peter Barker
3f34eb12b0
AP_Scripting: include extern-hal line to fix compilation
...
this external line was coming in from a header file somewhere...
2024-02-13 20:57:12 +11:00
Peter Barker
bb8047c026
AP_Scripting: correct compilation with AP_FILESYSTEM_FORMAT_ENABLED is false
...
Co-authored-by: Peter Hall <33176108+IamPete1@users.noreply.github.com>
2024-02-12 09:38:29 +11:00
Hayden Donald
52409d6765
AP_Scripting: Add gyro/accel consistency checks to lua
...
Added the accels_consistent and gyros_consistent methods to the lua bindings
2024-02-09 18:54:43 +11:00
Hayden Donald
c259d11cd6
AP_Scripting: Add getting of gyro/accel values
...
Added the ability to get gyro/accel from LUA
2024-02-08 15:24:12 +11:00
Hayden Donald
baf8958ee0
AP_Scripting: Add send_text to display binding
...
Added a notify:send_text and notify:release_text binding to override the text displayed on a display with custom text
2024-02-07 23:52:30 +00:00
Hayden Donald
14aea255e6
AP_Scripting: Add calibrating method
...
Add the calibrating method to lua so we can see if the device is currently calibrating
2024-02-07 18:36:33 +11:00
Hayden Donald
85a8b6c414
AP_Scripting: Add filesystem format
...
Added the ability to format the SD card from LUA
2024-02-07 18:35:36 +11:00
Peter Barker
bed976a8fc
AP_Scripting: add and use AP_BATTERY_ENABLED
2024-02-06 11:01:02 +11:00
Andrew Tridgell
c84459f518
AP_Scripting: added reboot() binding to AP_Periph
2024-01-21 12:30:08 +11:00
Andrew Tridgell
9202a33ff4
AP_Scripting: added networking bindings and allow uart calls without GCS
...
this allows for useful lua scripts on non-heavy peripherals
2024-01-12 19:06:49 -08:00
Michael du Breuil
ae256b168e
AP_Scripting: Add bindings for jump to landing and abort in the mission
2024-01-09 10:55:06 +11:00
Bob Long
1ffda7ef3c
AP_Scripting: add scripting backend
...
AP_BattMonitor_Scripting: whitespace consistency
2024-01-09 07:53:59 +11:00
Peter Mullen
a83ed6b730
AP_Scripting: Add LUA interface to access Range Finder state
2024-01-02 11:31:02 +11:00
Tom Pittenger
47fdf2295c
AP_Scripting: add bindings for ahrs.wind_alignment and ahrs.head_wind
2023-12-26 10:20:23 +11:00
Peter Barker
22c1019767
AP_Scripting: correct compilation when AP_RTC is compiled out
2023-12-12 14:35:25 +11:00
Iampete1
782605e7ea
AP_Scripting: CANSensor: Add filtering of incoming frames
...
Co-authored-by: Andras Schaffer <eosbandi@gmail.com>
2023-12-12 11:32:04 +11:00
Andrew Tridgell
75217ec1e6
AP_Scripting: added readstring for uarts
...
this is much more efficient than reading a byte at a time
2023-12-12 07:42:15 +11:00
Andrew Tridgell
ffb7328ede
AP_Scripting: review fixes
...
thanks Pete!
2023-12-11 18:00:38 +11:00
Andrew Tridgell
90c12d4db3
AP_Scripting: added stat() binding for filesystem
2023-12-11 18:00:38 +11:00
Andrew Tridgell
1e1255c8f0
AP_Scripting: added sendfile() API on sockets
2023-12-11 18:00:38 +11:00
Andrew Tridgell
f924497194
AP_Scripting: added poll bindings
2023-12-11 18:00:38 +11:00
Andrew Tridgell
3446ff78d7
AP_Scripting: added isdirectory()
2023-12-11 18:00:38 +11:00
Andrew Tridgell
9065baa329
AP_Scripting: added bindings for SocketAPM
2023-12-11 18:00:38 +11:00
Andy Piper
b5ef11797b
AP_Scripting: add success status to serialLED:send and serialLED:set_RGB
2023-11-20 19:22:20 +11:00