ardupilot/libraries/AP_Logger/AP_Logger_SITL.h

34 lines
891 B
C++

/*
block based logging backend for SITL, simulating a flash storage
chip
*/
#pragma once
#include <AP_HAL/AP_HAL.h>
#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