Lua-скрипт зупинився з помилкою
Що пише ArduPilot:
- Error: …
- Unable to load the file: …
- Unknown error (N) loading …
- Engine Error: …
- Lua: …
- … did not return a delay (0xN)
Тут пояснено ще: 3
- Panic: …
- … did not return a function (0xN)
- … returned bad result count (N)
Помилки скриптів приходять як «Lua: …», зазвичай з іменем файлу й номером рядка. «Error: …» означає, що файл навіть не вдалося прочитати як Lua (синтаксична помилка); інші тексти — помилки, що сталися під час роботи. «did not return a function», «did not return a delay» і «returned bad result count» означають, що функція update скрипта завершилася не так, як очікує ArduPilot: функцією для наступного виклику й затримкою в мілісекундах. Скрипт із помилкою вилучається й більше не запускається; решта працює далі. Рядок повторюється кожні 10 секунд, десять разів.
Що робити: найімовірніше спершу
Скрипт написано для іншої версії прошивки, і функція, яку він викликає, змінилася або зникла.
ПеревіртеУ тексті є «attempt to call a nil value» або «bad argument» із номером рядка.
ВиправтеВізьміть скрипт тієї самої версії, що й прошивка; «Каталог Lua-аплетів» показує кожен аплет за версіями.
Скрипту потрібне те, чого немає: файл модуля, власні параметри, пристрій.
Перевірте«module … not found» означає, що у APM/scripts/modules бракує файлу. Прочитайте інструкцію самого аплета щодо параметрів, яких він очікує.
ВиправтеСкопіюйте модулі поруч зі скриптом, задайте параметри, яких він просить, і перезавантажте.
Помилка у вашому власному скрипті.
ПеревіртеПерейдіть до номера рядка з повідомлення.
ВиправтеВиправте й перезавантажте або перезапустіть скрипти. Функція update має закінчуватися рядком на кшталт «return update, 100».
«Panic: …» (4.6) і «Engine Error: …» (4.7) — помилки самого рушія, поза будь-яким окремим скриптом. 4.6 викидає всі скрипти й завантажує їх знову від початку; 4.7 завершує рушій, і далі йде «Scripting: stopped».
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
SCR_ENABLE | Enable Scripting |
SCR_DEBUG_OPTS | Scripting Debug Level |
Де це зробити:Каталог Lua-аплетів
Код, який це надсилає
Error: …
libraries/AP_Scripting/lua_scripts.cpp lua_scripts::load_script() · Відкрити в ArduPilot Copter-4.7.1
Unable to load the file: …
libraries/AP_Scripting/lua_scripts.cpp lua_scripts::load_script() · Відкрити в ArduPilot Copter-4.7.1
Unknown error (N) loading …
libraries/AP_Scripting/lua_scripts.cpp lua_scripts::load_script() · Відкрити в ArduPilot Copter-4.7.1
Engine Error: …
libraries/AP_Scripting/lua_scripts.cpp lua_scripts::run() · Відкрити в ArduPilot Copter-4.7.1
І ще 5 повідомлень, що надсилаються з тих самих місць.