Один лог заповнив усю вбудовану флеш-пам'ять
Що пише ArduPilot:
- Chip full, logging stopped
Ця плата пише лог у мікросхему флеш-пам'яті по колу: дійшовши до кінця, продовжує з початку, стираючи найстаріші логи. Зупиняється вона лише тоді, коли сам поточний лог виріс до розміру мікросхеми й мав би стерти власний початок. Тоді логування припиняється, повідомлення повторюється приблизно раз на хвилину, а перевірки перед армуванням показують «Logging failed», доки логи не зітруть або плату не перезавантажать.
Що робити: найімовірніше спершу
LOG_DISARMEDувімкнено, і плата довго була під живленням: один нескінченний лог.Перевірте
LOG_DISARMEDдорівнює 1 або 3, а плата довго стояла на столі чи на USB.ВиправтеЗавантажте потрібне й зітріть логи. Поверніть
LOG_DISARMEDна 0, якщо не шукаєте проблему запуску, або задайтеLOG_FILE_DSRMROT1, щоб кожне дизармування закривало лог, а наступний починався з чистого.Політ довший, ніж уміщує мікросхема при такій частоті логування.
ПеревіртеПовідомлення з'являється в польоті, щоразу приблизно через той самий час. На багатьох платах флеш-пам'яті для логів лише 16 МБ.
ВиправтеЛогуйте менше:
LOG_BLK_RATEMAXобмежує, скільки разів на секунду кожне потокове повідомлення пишеться в мікросхему, аLOG_BITMASKбез бітів швидкої орієнтації та сирих даних IMU дає значно менший лог.Плата має ще й гніздо для картки, а мікросхему вибрано скопійованим файлом параметрів.
ВиправтеЗадайте
LOG_BACKEND_TYPE1 (File), вставте картку й перезавантажте: картка вміщує години логів.
Параметри, на які варто глянути
| Параметр | Що це |
|---|---|
LOG_DISARMED | Enable logging while disarmed |
LOG_FILE_DSRMROT | Stop logging to current file on disarm |
LOG_BLK_RATEMAX | Maximum logging rate for block backend |
LOG_BITMASK | Log bitmask |
LOG_BACKEND_TYPE | AP_Logger Backend Storage type |
Де це зробити:Налаштування й тюнінг
Код, який це надсилає
Chip full, logging stopped
libraries/AP_Logger/AP_Logger_Block.cpp AP_Logger_Block::periodic_1Hz() · Відкрити в ArduPilot Copter-4.7.1