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
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
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
a4a8923e1e
AP_Scripting: generator: add return count to manual bindings
2024-05-07 09:51:53 +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
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
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
Andrew Tridgell
3e0e32a409
AP_Scripting: support 2nd cylinder in EFI
2023-11-17 13:09:02 +11:00
Iampete1
ae2ab08b1f
AP_Scripting: add bindings for fence
2023-11-07 07:52:14 +11:00
Andrew Tridgell
96f5a1cb2b
AP_Scripting: added bindings for telemetry data for ESCs
...
allows more complete ESC protocol implementation in scripting
2023-11-06 07:12:35 +11:00
Iampete1
66b8fd95ad
AP_Scripting: add binding for GCS last seen time
2023-11-04 19:10:36 +11:00
Andrew Tridgell
a190dfe24a
AP_Scripting: added get_cell_voltage() API and arming check example
...
this allows for cell imbalance to be checked as an arming check using
a lua script
2023-10-25 07:31:24 +11:00
Iampete1
105801c5b0
AP_Scripting: add support for dependencty on manual methods, remove handling of mission commands without AP_Mission
2023-10-17 10:23:20 +11:00
Iampete1
77e2d07979
AP_Scripting: add lots off missing binding dependencies
2023-10-17 10:23:20 +11:00
Iampete1
fc68bf8979
AP_Scripting: don't include CAN support on periph if there is only one CAN port
2023-10-17 10:23:20 +11:00