Рушій Lua-скриптів зупинився, перезапустився або не зміг стартувати
Що пише ArduPilot:
- Scripting: …
«Scripting: stopped»: рушій скриптів завершився, і жоден скрипт більше не працює; те, що скрипти робили для апарата, більше не відбувається. «restarted»: він стартував знову з нуля — після того, як SCR_ENABLE став 0 і знову 1, або після команди перезапуску з наземної станції. «Unable to allocate memory» і «failed to start»: він не отримав своєї пам'яті (SCR_HEAP_SIZE байтів) або свого потоку. «saved checksums»: біт 5 у SCR_DEBUG_OPTS зберіг контрольні суми наявних скриптів у SCR_LD_CHECKSUM і SCR_RUN_CHECKSUM. «unable to receive mission command»: команду місії, призначену скрипту, не вдалося поставити в чергу.
Що робити: найімовірніше спершу
Ви або наземна станція зупинили чи перезапустили скрипти.
ВиправтеВиправляти нічого. Після «stopped» надішліть команду перезапуску або перезавантажте, щоб скрипти запрацювали знову.
Плата не має
SCR_HEAP_SIZEбайтів вільної пам'яті.Перевірте«Unable to allocate memory» під час запуску й рядок перед армуванням «Scripting: out of memory».
ВиправтеЗменште
SCR_HEAP_SIZEдо того, що плата має вільним (наземна станція показує вільну пам'ять), або звільніть пам'ять, вимкнувши непотрібні функції, і перезавантажте.«stopped» з'явилося саме, у польоті чи на столі: рушій натрапив на помилку, якої не пережив.
ПеревіртеРядок «Lua: …» безпосередньо перед ним називає причину.
ВиправтеЯкщо апарат залежить від скрипта (фейлсейф, корисне навантаження, власний режим) — сідайте й виправте скрипт, перш ніж літати знову.
У лозі рядок, що починається з «SRC=1/191:» або «GCS:», — це текст, який польотному контролеру надіслав інший пристрій MAVLink (бортовий комп'ютер, камера, наземна станція); ArduPilot пише його в лог із цим префіксом. Ця сторінка знімає префікс і пояснює решту, коли це повідомлення ArduPilot.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
SCR_ENABLE | Enable Scripting |
SCR_HEAP_SIZE | Scripting Heap Size |
SCR_DEBUG_OPTS | Scripting Debug Level |
SCR_LD_CHECKSUM | Loaded script checksum |
SCR_RUN_CHECKSUM | Running script checksum |
Де це зробити:Каталог Lua-аплетів
Код, який це надсилає
Scripting: …
libraries/AP_Scripting/AP_Scripting.cpp AP_Scripting::handle_mission_command() · Відкрити в ArduPilot Copter-4.7.1
libraries/AP_Scripting/AP_Scripting.cpp AP_Scripting::init() · Відкрити в ArduPilot Copter-4.7.1
libraries/AP_Scripting/AP_Scripting.cpp AP_Scripting::save_checksum() · Відкрити в ArduPilot Copter-4.7.1