Commit Graph

65 Commits

Author SHA1 Message Date
Thomas Watson
46e204dd6c AP_Scripting: clear serial device sim buffers appropriately
Ensures the script won't process data created before it started, and
that the protocol won't process data created after the script stopped.
2024-06-27 12:00:18 +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
Andrew Tridgell
a2459c6e61 AP_Scripting: use NEW_NOTHROW for new(std::nothrow) 2024-06-04 09:20:21 +10:00
Iampete1
f5e7bfcc48 AP_Scripting: remove support for REPL 2024-05-28 10:10:14 +10:00
Iampete1
90ad109047 AP_Scripting: Only try to make scripts directory if file write and directory is enabled 2024-03-12 08:52:38 +11:00
Andrew Tridgell
efac52136b AP_Scripting: fixed memory leak in sendfile()
this leaked the SocketAPM on each sendfile() call, we now rely on the
script calling close(). The net_webserver.lua is already using close()
correctly, this change just makes close able to find the socket
2024-01-08 13:01:02 +11:00
Andrew Tridgell
61b3ad326d AP_Scripting: added SCR_THD_PRIORITY parameter
this makes it possible to run lua scripts at higher priorities, which
makes real time lua scripts (such as IMU drivers) possible
2023-12-15 10:38:07 +11:00
Andrew Tridgell
9065baa329 AP_Scripting: added bindings for SocketAPM 2023-12-11 18:00:38 +11:00
Iampete1
2a3a5b2804 AP_Scripting: add checksum of running and loaded scripts with arming check 2023-12-05 11:03:58 +11:00
Tom Pittenger
b5e2f9aa0a AP_Scripting: change some _INFO msgs to _CRITICAL/ERROR 2023-11-22 00:07:05 -08: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
7bbd4a7c7d AP_Scripting: add some missing dependencies 2023-09-26 11:29:42 +10:00
bugobliterator
a497c06e83 AP_Scripting: stash and restore FPU register context in LUAI_TRY
this fixes an issue where a lua library function triggers an exception
after it does a math operation which changes the floating point
registers on M7 MCUs (such as STM32H7). An example is math.random()
which calls math_random(), which pre-calculates a double value before
checking if the arguments to the call are valid. When it then checks
and finds invalid values the exception longjmp does not restore the
floating point registers.
2023-07-07 07:51:02 +10:00
Iampete1
1c5f3c708a AP_Scripting: add new mavlink binding to block commands 2023-07-04 10:20:42 +10:00
Peter Barker
d519ab604e AP_Scripting: allow AP_SCRIPTING_ENABLED to come from hwdef files 2023-06-09 16:10:52 +10:00
bugobliterator
06b5400d0b AP_Scripting: use get_uint32 instead of luaL_checkinteger 2023-05-24 19:03:28 +10:00
bugobliterator
f9edc1c37b AP_Scripting: set timestamp for received messages 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
Michael du Breuil
598919d8ad AP_Scripting: Support sending MAVLink buffers from scripts 2023-05-24 19:03:28 +10:00
Tom Pittenger
10f7a363ed AP_Scripting: bump up SCR HEAP SIZE for large RAM devices 2023-03-14 06:57:21 -07:00
Iampete1
54a9239e62 AP_Scripting: fix PWMSource deletion crash 2023-03-05 09:42:05 +11:00
Andrew Tridgell
db45682b3d AP_Scripting: check for alloc failure of ObjectBuffer 2023-01-08 15:11:32 +11:00
Henry Wurzburg
8de4195ffc AP_Scripting: add readme.md file and completion 2023-01-04 16:20:12 +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
da0ee9a8cb AP_Scripting: set lua nullptr after delete 2022-10-17 08:29:53 +11:00
Iampete1
7b0f74cc7e AP_Scripting: clear alocated i2c devices on scripting stop 2022-09-15 12:40:04 +10:00
Iampete1
da5ec973c5 AP_Scripting: add error message buffer semaphore 2022-08-31 17:04:24 +10:00
Iampete1
e3931a6f56 AP_Scripting: add debug option to disable pre-arm 2022-08-31 17:04:24 +10:00
Iampete1
bbcb7b5827 AP_Scripting: move to common status text "Scripting:" prefix to save flash 2022-08-31 17:04:24 +10:00
Iampete1
e2c29b09ab AP_Scripting: add arming check for failed scripts 2022-08-31 17:04:24 +10:00
Peter Barker
55517450bc AP_Scripting: correct script restart send_text message 2022-04-18 12:50:18 +01:00
Andrew Tridgell
0f230eec5a AP_Scripting: increase default heap size in SITL and on F7/H7
if we have 500k or more memory then use 100k heap for Lua, making
setup easier
2022-04-11 17:02:04 +10:00
Andrew Tridgell
140adc126a AP_Scripting: expand to 6 SCR_USER parameters 2021-12-07 10:33:13 +11:00
Iampete1
58ef0d0137 AP_Scripting: log files and runtime stats 2021-11-17 19:16:46 +11:00
Iampete1
817864ce74 AP_Scripting: convert DEBUG_LVL to DEBUG_OPTS bitmask 2021-11-17 19:16:46 +11:00
Iampete1
b047ea5c02 AP_Scripting: stop and restart scripting via command int 2021-11-02 17:33:34 +11:00
bugobliterator
027d8b4aea AP_Scripting: add support for controlling onvif camera using lua script 2021-07-07 18:57:25 +10:00
Iampete1
0b8cdaf392 AP_Scripting: add mission command receve function, binding and example 2021-03-31 19:23:13 +11:00
Andrew Tridgell
35149ae8b2 AP_Scripting: allow scripting startup with no sdcard
as scripts can be in ROMFS we should still create the thread without
the scripts directory
2021-02-25 11:34:39 -07:00
Iampete1
97b44dfe71 AP_Scripting: add DIR_DISABLE param 2020-10-28 19:22:45 +11:00
Henry Wurzburg
8bfda973db AP_Scripting: Add user accessable script parameters 2020-07-19 14:18:39 +10:00
Rishabh
c53d42e665 AP_Scripting: Remove send_text if directory is created 2020-06-23 10:42:41 +10:00
Rishabh
bd7190767e AP_Scripting: Create scripts folder automatically 2020-06-20 21:39:06 +10:00
Michael du Breuil
d50e9865bd AP_Scripting: Delete the lua object if we failed to allocate the required memory 2020-03-28 21:16:09 +11:00
Michael du Breuil
d7a59bc449 AP_Scripting: Reduce the sleep time with no scripts
Lowering the sleep time when no scripts are pending, causes starting a
REPL session to respond much faster (this cuts the latency from up to 10
seconds to 1 second before the session is ready to start).

Also lowers the default scripting debug level to hide the statustext
from users, as in the general case this is just a spammy message if it
occurs, and we should be finding better reporting bits to get this to
the user.
2020-02-19 13:24:23 -07:00
Michael du Breuil
cf06beb1e6 AP_Scripting: Add support for REPL over MAVLink 2020-02-18 17:23:22 -07:00
Peter Barker
d24d1c587a AP_Scripting: add documentation for DEBUG_LVL parameter 2020-02-18 20:25:58 +09:00
Michael du Breuil
2291702473 AP_Scripting: Raise SITL default heap size 2020-01-13 20:06:31 -07:00
Andrew Tridgell
b69afff6a7 AP_Scripting: increase heap size (again) 2019-12-20 19:51:46 -07:00
Randy Mackay
c78112564c AP_Scripting: init sends failure message 2019-12-03 12:48:32 +08:00