mirror of https://github.com/ArduPilot/ardupilot
34 lines
891 B
C++
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
|