Commit Graph

24 Commits

Author SHA1 Message Date
Ian Burwell 9d34fa2a5e AP_Scripting: Add I2C transfer bindings
This adds bindings for an I2CDevice's transfer() function, an example,
and removes the nil return hint from the get_device() docs as it never
actually returns nil.
2024-07-30 09:40:10 +10:00
Andrew Tridgell 38ca478178 AP_Scripting: added gcs:run_command_int() binding 2024-07-01 20:08:29 +10:00
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
Peter Mullen a83ed6b730 AP_Scripting: Add LUA interface to access Range Finder state 2024-01-02 11:31:02 +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 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 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
Iampete1 a068569f8a AP_Scripting: add basic print 2023-10-04 18:34:08 +11:00
Iampete1 1c5f3c708a AP_Scripting: add new mavlink binding to block commands 2023-07-04 10:20:42 +10:00
bugobliterator d056a33dca AP_Scripting: use _chan to mark the methods that are mavlink channel based 2023-05-24 19:03:28 +10:00
bugobliterator 076d00fd1e AP_Scripting: add mavlink support to scripting 2023-05-24 19:03:28 +10:00
Iampete1 54a9239e62 AP_Scripting: fix PWMSource deletion crash 2023-03-05 09:42:05 +11:00
Iampete1 c5c7863829 AP_Scripting: add bindings for E-stop, Interlock and Safety state 2023-02-07 10:24:18 +11:00
Andrew Tridgell ea89f04a56 AP_Scripting: script switching system
Co-authored-by:Henry Wurzburg (hwurzburg@yahoo.com)
2023-01-04 16:20:12 +11:00
Iampete1 cb34895cfa AP_Scripting: add maunal i2c binding allowing read of sequentual registers 2022-09-15 12:40:04 +10:00
Andrew Tridgell d8b98789e6 AP_Scripting: add support for scripting2 protocol 2022-07-03 08:21:55 +10:00
Iampete1 9da80b45e9 AP_Scripting: load manual bindings via generator 2022-05-04 17:49:14 +10: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 68576eff32 AP_Scripting: Initial test script 2018-10-09 10:08:52 +11:00