Lua-скрипти повідомляють про проблему й блокують армування
Що пише ArduPilot:
- Scripting: …
Lua-скрипти — це невеликі програми, що працюють поруч із польотним кодом (SCR_ENABLE 1). Після «Scripting:» іде одне з трьох: «out of memory» (рушій скриптів не отримав своєї пам'яті), «failed to start» (не вдалося створити його потік) або текст останньої помилки скрипта. Будь-яка помилка скрипта запам'ятовується й блокує армування, доки скрипти не перезапустять або плату не перезавантажать, бо скрипт, що зупинився, може бути тим, від якого залежить апарат. Попередження «Required SCR_HEAP_SIZE over N» теж рахується такою помилкою.
Що робити: найімовірніше спершу
Скрипт зупинився з помилкою.
ПеревіртеЗнайдіть у повідомленнях рядок «Lua: …»: він називає файл і номер рядка. Він повторюється кожні 10 секунд, десять разів.
ВиправтеВиправте скрипт або замініть його версією для вашої прошивки («Каталог Lua-аплетів» показує їх за версіями), потім перезавантажте.
Скриптам треба більше пам'яті, ніж дає
SCR_HEAP_SIZE, або плата стільки дати не може.ПеревіртеТекст — «out of memory» або «Required
SCR_HEAP_SIZEover N».ВиправтеДивіться пояснення повідомлень про пам'ять скриптів: збільште
SCR_HEAP_SIZEпонад N або зменште до того, що плата має вільним, і перезавантажте.Скрипти ввімкнено, але ви ними не користуєтеся, а забутий файл на картці дає помилку.
ПеревіртеЗагляньте в APM/scripts на картці.
ВиправтеПриберіть забуті скрипти; якщо не користуєтеся жодним — задайте
SCR_ENABLE0 і перезавантажте.
Біт 4 у SCR_DEBUG_OPTS вимикає цю перевірку. Не користуйтеся ним, щоб злетіти: скрипт, що дав помилку, так і не працює.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
SCR_ENABLE | Enable Scripting |
SCR_HEAP_SIZE | Scripting Heap Size |
SCR_DEBUG_OPTS | Scripting Debug Level |
Де це зробити:Каталог Lua-аплетівНалаштування й тюнінг
Код, який це надсилає
Scripting: …
libraries/AP_Scripting/AP_Scripting.cpp AP_Scripting::arming_checks() · Відкрити в ArduPilot Copter-4.7.1