/* block based logging backend for SITL, simulating a flash storage chip */ #pragma once #include #if CONFIG_HAL_BOARD == HAL_BOARD_SITL #include "AP_Logger_Block.h" class AP_Logger_SITL : public AP_Logger_Block { public: AP_Logger_SITL(AP_Logger &front, LoggerMessageWriter_DFLogStart *writer) : AP_Logger_Block(front, writer) {} void Init() override; bool CardInserted() const override; static constexpr const char *filename = "dataflash.bin"; private: void BufferToPage(uint32_t PageAdr) override; void PageToBuffer(uint32_t PageAdr) override; void SectorErase(uint32_t SectorAdr) override; void Sector4kErase(uint32_t SectorAdr) override; void StartErase() override; bool InErase() override; int flash_fd; uint32_t erase_started_ms; }; #endif // CONFIG_HAL_BOARD == HAL_BOARD_SITL