APM:Libraries
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | Static Private Member Functions | Private Attributes | Static Private Attributes | List of all members
DataFlash_Revo Class Reference

#include <DataFlash_Revo.h>

Inheritance diagram for DataFlash_Revo:
[legend]
Collaboration diagram for DataFlash_Revo:
[legend]

Classes

struct  PageHeader
 

Public Member Functions

 DataFlash_Revo (DataFlash_Class &front, DFMessageWriter_DFLogStart *writer)
 
void Init () override
 
void ReadManufacturerID ()
 
bool CardInserted (void) const
 
uint8_t ReadStatus ()
 
bool logging_enabled () const
 
bool logging_failed () const
 
void stop_logging (void)
 
void EraseAll ()
 
bool NeedPrep (void)
 
void Prep ()
 
bool _WritePrioritisedBlock (const void *pBuffer, uint16_t size, bool is_critical)
 
uint16_t get_num_logs () override
 
uint16_t start_new_log (void)
 
void get_log_boundaries (uint16_t log_num, uint16_t &start_page, uint16_t &end_page)
 
uint16_t find_last_log () override
 
void get_log_info (uint16_t log_num, uint32_t &size, uint32_t &time_utc)
 
int16_t get_log_data_raw (uint16_t log_num, uint16_t page, uint32_t offset, uint16_t len, uint8_t *data)
 
int16_t get_log_data (uint16_t log_num, uint16_t page, uint32_t offset, uint16_t len, uint8_t *data)
 
uint32_t bufferspace_available ()
 
bool logging_started (void) const
 
- Public Member Functions inherited from DataFlash_Backend
 FUNCTOR_TYPEDEF (vehicle_startup_message_Log_Writer, void)
 
 DataFlash_Backend (DataFlash_Class &front, class DFMessageWriter_DFLogStart *writer)
 
vehicle_startup_message_Log_Writer vehicle_message_writer ()
 
void internal_error ()
 
bool WriteBlock (const void *pBuffer, uint16_t size)
 
bool WriteCriticalBlock (const void *pBuffer, uint16_t size)
 
bool WritePrioritisedBlock (const void *pBuffer, uint16_t size, bool is_critical)
 
void set_mission (const AP_Mission *mission)
 
virtual void PrepForArming ()
 
void Log_Fill_Format (const struct LogStructure *structure, struct log_Format &pkt)
 
void Log_Fill_Format_Units (const struct LogStructure *s, struct log_Format_Units &pkt)
 
virtual void flush (void)
 
virtual void remote_log_block_status_msg (mavlink_channel_t chan, mavlink_message_t *msg)
 
virtual void periodic_tasks ()
 
uint8_t num_types () const
 
const struct LogStructurestructure (uint8_t structure) const
 
uint8_t num_units () const
 
const struct UnitStructureunit (uint8_t unit) const
 
uint8_t num_multipliers () const
 
const struct MultiplierStructuremultiplier (uint8_t multiplier) const
 
void Log_Write_EntireMission (const AP_Mission &mission)
 
bool Log_Write_Format (const struct LogStructure *structure)
 
bool Log_Write_MavCmd (uint16_t cmd_total, const mavlink_mission_item_t &mav_cmd)
 
bool Log_Write_Message (const char *message)
 
bool Log_Write_Mission_Cmd (const AP_Mission &mission, const AP_Mission::Mission_Command &cmd)
 
bool Log_Write_Mode (uint8_t mode, uint8_t reason=0)
 
bool Log_Write_Parameter (const char *name, float value)
 
bool Log_Write_Parameter (const AP_Param *ap, const AP_Param::ParamToken &token, enum ap_var_type type)
 
uint32_t num_dropped (void) const
 
bool Log_Write_Emit_FMT (uint8_t msg_type)
 
bool Log_Write (uint8_t msg_type, va_list arg_list, bool is_critical=false)
 
virtual void vehicle_was_disarmed ()
 
bool Log_Write_Unit (const struct UnitStructure *s)
 
bool Log_Write_Multiplier (const struct MultiplierStructure *s)
 
bool Log_Write_Format_Units (const struct LogStructure *structure)
 

Protected Member Functions

bool WritesOK () const override
 
- Protected Member Functions inherited from DataFlash_Backend
virtual void periodic_10Hz (const uint32_t now)
 
virtual void periodic_1Hz (const uint32_t now)
 
virtual void periodic_fullrate (const uint32_t now)
 
bool ShouldLog (bool is_critical)
 
virtual bool StartNewLogOK () const
 
virtual bool WriteBlockCheckStartupMessages ()
 
virtual void WriteMoreStartupMessages ()
 
virtual void push_log_blocks ()
 
virtual void start_new_log_reset_variables ()
 

Protected Attributes

uint8_t df_manufacturer
 
uint16_t df_device
 
uint16_t df_PageSize
 
uint32_t df_NumPages
 
- Protected Attributes inherited from DataFlash_Backend
DataFlash_Class_front
 
DFMessageWriter_DFLogStart_startup_messagewriter
 
bool _writing_startup_messages
 
uint8_t _internal_errors
 
uint32_t _dropped
 
bool _initialised
 

Private Member Functions

void BufferWrite (uint8_t BufferNum, uint16_t IntPageAdr, uint8_t Data)
 
void BufferToPage (uint8_t BufferNum, uint16_t PageAdr, uint8_t wait)
 
void PageToBuffer (uint8_t BufferNum, uint16_t PageAdr)
 
void WaitReady ()
 
uint8_t ReadStatusReg ()
 
uint16_t PageSize ()
 
void PageErase (uint16_t PageAdr)
 
void BlockErase (uint16_t BlockAdr)
 
void ChipErase ()
 
void Flash_Jedec_WriteEnable ()
 
void Flash_Jedec_EraseSector (uint32_t chip_offset)
 
void BlockWrite (uint8_t BufferNum, uint16_t IntPageAdr, const void *pHeader, uint8_t hdr_size, const void *pBuffer, uint16_t size)
 
bool BlockRead (uint8_t BufferNum, uint16_t IntPageAdr, void *pBuffer, uint16_t size)
 
bool cs_assert ()
 
void cs_release ()
 
void spi_write (uint8_t b)
 
void spi_write (int data)
 
bool NeedErase (void)
 
void StartRead (uint16_t PageAdr)
 
uint16_t find_last_page (void)
 
uint16_t find_last_page_of_log (uint16_t log_number)
 
bool check_wrapped (void)
 
uint16_t GetPage (void)
 
uint16_t GetWritePage (void)
 
void StartWrite (uint16_t PageAdr)
 
void FinishWrite (void)
 
bool getSectorCount (uint32_t *ptr)
 
bool ReadBlock (void *pBuffer, uint16_t size)
 
void SetFileNumber (uint16_t FileNumber)
 
uint16_t GetFilePage ()
 
uint16_t GetFileNumber ()
 

Static Private Member Functions

static bool _sem_take (uint8_t timeout)
 

Private Attributes

uint8_t df_BufferNum
 
uint8_t df_Read_BufferNum
 
uint16_t df_BufferIdx
 
uint16_t df_Read_BufferIdx
 
uint16_t df_PageAdr
 
uint16_t df_Read_PageAdr
 
uint16_t df_FileNumber
 
uint16_t df_FilePage
 
bool adding_fmt_headers
 
uint8_t erase_cmd
 
uint32_t erase_size
 
uint16_t last_block_num
 

Static Private Attributes

static AP_HAL::OwnPtr< AP_HAL::SPIDevice_spi
 
static AP_HAL::Semaphore_spi_sem
 
static bool log_write_started
 
static bool flash_died
 

Detailed Description

Definition at line 46 of file DataFlash_Revo.h.

Constructor & Destructor Documentation

◆ DataFlash_Revo()

DataFlash_Revo::DataFlash_Revo ( DataFlash_Class front,
DFMessageWriter_DFLogStart writer 
)
inline

Definition at line 153 of file DataFlash_Revo.h.

Member Function Documentation

◆ _sem_take()

static bool DataFlash_Revo::_sem_take ( uint8_t  timeout)
staticprivate

◆ _WritePrioritisedBlock()

bool DataFlash_Revo::_WritePrioritisedBlock ( const void *  pBuffer,
uint16_t  size,
bool  is_critical 
)
virtual

Implements DataFlash_Backend.

◆ BlockErase()

void DataFlash_Revo::BlockErase ( uint16_t  BlockAdr)
private

◆ BlockRead()

bool DataFlash_Revo::BlockRead ( uint8_t  BufferNum,
uint16_t  IntPageAdr,
void *  pBuffer,
uint16_t  size 
)
private

◆ BlockWrite()

void DataFlash_Revo::BlockWrite ( uint8_t  BufferNum,
uint16_t  IntPageAdr,
const void *  pHeader,
uint8_t  hdr_size,
const void *  pBuffer,
uint16_t  size 
)
private

◆ bufferspace_available()

uint32_t DataFlash_Revo::bufferspace_available ( )
virtual

Implements DataFlash_Backend.

◆ BufferToPage()

void DataFlash_Revo::BufferToPage ( uint8_t  BufferNum,
uint16_t  PageAdr,
uint8_t  wait 
)
private

◆ BufferWrite()

void DataFlash_Revo::BufferWrite ( uint8_t  BufferNum,
uint16_t  IntPageAdr,
uint8_t  Data 
)
private

◆ CardInserted()

bool DataFlash_Revo::CardInserted ( void  ) const
inlinevirtual

Implements DataFlash_Backend.

Definition at line 158 of file DataFlash_Revo.h.

◆ check_wrapped()

bool DataFlash_Revo::check_wrapped ( void  )
private

◆ ChipErase()

void DataFlash_Revo::ChipErase ( )
private

◆ cs_assert()

bool DataFlash_Revo::cs_assert ( )
private

◆ cs_release()

void DataFlash_Revo::cs_release ( )
private

◆ EraseAll()

void DataFlash_Revo::EraseAll ( )
virtual

Implements DataFlash_Backend.

◆ find_last_log()

uint16_t DataFlash_Revo::find_last_log ( )
overridevirtual

Implements DataFlash_Backend.

◆ find_last_page()

uint16_t DataFlash_Revo::find_last_page ( void  )
private

◆ find_last_page_of_log()

uint16_t DataFlash_Revo::find_last_page_of_log ( uint16_t  log_number)
private

◆ FinishWrite()

void DataFlash_Revo::FinishWrite ( void  )
private

◆ Flash_Jedec_EraseSector()

void DataFlash_Revo::Flash_Jedec_EraseSector ( uint32_t  chip_offset)
private

◆ Flash_Jedec_WriteEnable()

void DataFlash_Revo::Flash_Jedec_WriteEnable ( )
private

◆ get_log_boundaries()

void DataFlash_Revo::get_log_boundaries ( uint16_t  log_num,
uint16_t &  start_page,
uint16_t &  end_page 
)
virtual

Implements DataFlash_Backend.

◆ get_log_data()

int16_t DataFlash_Revo::get_log_data ( uint16_t  log_num,
uint16_t  page,
uint32_t  offset,
uint16_t  len,
uint8_t *  data 
)
virtual

Implements DataFlash_Backend.

◆ get_log_data_raw()

int16_t DataFlash_Revo::get_log_data_raw ( uint16_t  log_num,
uint16_t  page,
uint32_t  offset,
uint16_t  len,
uint8_t *  data 
)

◆ get_log_info()

void DataFlash_Revo::get_log_info ( uint16_t  log_num,
uint32_t &  size,
uint32_t &  time_utc 
)
virtual

Implements DataFlash_Backend.

◆ get_num_logs()

uint16_t DataFlash_Revo::get_num_logs ( )
overridevirtual

Implements DataFlash_Backend.

◆ GetFileNumber()

uint16_t DataFlash_Revo::GetFileNumber ( )
private

◆ GetFilePage()

uint16_t DataFlash_Revo::GetFilePage ( )
private

◆ GetPage()

uint16_t DataFlash_Revo::GetPage ( void  )
private

◆ getSectorCount()

bool DataFlash_Revo::getSectorCount ( uint32_t *  ptr)
private

◆ GetWritePage()

uint16_t DataFlash_Revo::GetWritePage ( void  )
private

◆ Init()

void DataFlash_Revo::Init ( )
overridevirtual

Reimplemented from DataFlash_Backend.

◆ logging_enabled()

bool DataFlash_Revo::logging_enabled ( ) const
inlinevirtual

Implements DataFlash_Backend.

Definition at line 162 of file DataFlash_Revo.h.

◆ logging_failed()

bool DataFlash_Revo::logging_failed ( ) const
inlinevirtual

Implements DataFlash_Backend.

Definition at line 163 of file DataFlash_Revo.h.

◆ logging_started()

bool DataFlash_Revo::logging_started ( void  ) const
inlinevirtual

Implements DataFlash_Backend.

Definition at line 191 of file DataFlash_Revo.h.

◆ NeedErase()

bool DataFlash_Revo::NeedErase ( void  )
private

◆ NeedPrep()

bool DataFlash_Revo::NeedPrep ( void  )
virtual

Implements DataFlash_Backend.

◆ PageErase()

void DataFlash_Revo::PageErase ( uint16_t  PageAdr)
private

◆ PageSize()

uint16_t DataFlash_Revo::PageSize ( )
inlineprivate

Definition at line 55 of file DataFlash_Revo.h.

◆ PageToBuffer()

void DataFlash_Revo::PageToBuffer ( uint8_t  BufferNum,
uint16_t  PageAdr 
)
private

◆ Prep()

void DataFlash_Revo::Prep ( )
virtual

Implements DataFlash_Backend.

◆ ReadBlock()

bool DataFlash_Revo::ReadBlock ( void *  pBuffer,
uint16_t  size 
)
privatevirtual

Implements DataFlash_Backend.

◆ ReadManufacturerID()

void DataFlash_Revo::ReadManufacturerID ( )

◆ ReadStatus()

uint8_t DataFlash_Revo::ReadStatus ( )

◆ ReadStatusReg()

uint8_t DataFlash_Revo::ReadStatusReg ( )
private

◆ SetFileNumber()

void DataFlash_Revo::SetFileNumber ( uint16_t  FileNumber)
private

◆ spi_write() [1/2]

void DataFlash_Revo::spi_write ( uint8_t  b)
inlineprivate

Definition at line 88 of file DataFlash_Revo.h.

Here is the call graph for this function:

◆ spi_write() [2/2]

void DataFlash_Revo::spi_write ( int  data)
inlineprivate

Definition at line 89 of file DataFlash_Revo.h.

Referenced by spi_write().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ start_new_log()

uint16_t DataFlash_Revo::start_new_log ( void  )
virtual

Implements DataFlash_Backend.

◆ StartRead()

void DataFlash_Revo::StartRead ( uint16_t  PageAdr)
private

◆ StartWrite()

void DataFlash_Revo::StartWrite ( uint16_t  PageAdr)
private

◆ stop_logging()

void DataFlash_Revo::stop_logging ( void  )
inlinevirtual

Implements DataFlash_Backend.

Definition at line 165 of file DataFlash_Revo.h.

◆ WaitReady()

void DataFlash_Revo::WaitReady ( )
private

◆ WritesOK()

bool DataFlash_Revo::WritesOK ( ) const
overrideprotectedvirtual

Implements DataFlash_Backend.

Member Data Documentation

◆ _spi

AP_HAL::OwnPtr<AP_HAL::SPIDevice> DataFlash_Revo::_spi
staticprivate

Definition at line 78 of file DataFlash_Revo.h.

◆ _spi_sem

AP_HAL::Semaphore* DataFlash_Revo::_spi_sem
staticprivate

Definition at line 79 of file DataFlash_Revo.h.

◆ adding_fmt_headers

bool DataFlash_Revo::adding_fmt_headers
private

Definition at line 111 of file DataFlash_Revo.h.

◆ df_BufferIdx

uint16_t DataFlash_Revo::df_BufferIdx
private

Definition at line 103 of file DataFlash_Revo.h.

◆ df_BufferNum

uint8_t DataFlash_Revo::df_BufferNum
private

Definition at line 101 of file DataFlash_Revo.h.

◆ df_device

uint16_t DataFlash_Revo::df_device
protected

Definition at line 141 of file DataFlash_Revo.h.

◆ df_FileNumber

uint16_t DataFlash_Revo::df_FileNumber
private

Definition at line 107 of file DataFlash_Revo.h.

◆ df_FilePage

uint16_t DataFlash_Revo::df_FilePage
private

Definition at line 108 of file DataFlash_Revo.h.

◆ df_manufacturer

uint8_t DataFlash_Revo::df_manufacturer
protected

Definition at line 140 of file DataFlash_Revo.h.

◆ df_NumPages

uint32_t DataFlash_Revo::df_NumPages
protected

Definition at line 145 of file DataFlash_Revo.h.

◆ df_PageAdr

uint16_t DataFlash_Revo::df_PageAdr
private

Definition at line 105 of file DataFlash_Revo.h.

◆ df_PageSize

uint16_t DataFlash_Revo::df_PageSize
protected

Definition at line 144 of file DataFlash_Revo.h.

◆ df_Read_BufferIdx

uint16_t DataFlash_Revo::df_Read_BufferIdx
private

Definition at line 104 of file DataFlash_Revo.h.

◆ df_Read_BufferNum

uint8_t DataFlash_Revo::df_Read_BufferNum
private

Definition at line 102 of file DataFlash_Revo.h.

◆ df_Read_PageAdr

uint16_t DataFlash_Revo::df_Read_PageAdr
private

Definition at line 106 of file DataFlash_Revo.h.

◆ erase_cmd

uint8_t DataFlash_Revo::erase_cmd
private

Definition at line 135 of file DataFlash_Revo.h.

◆ erase_size

uint32_t DataFlash_Revo::erase_size
private

Definition at line 136 of file DataFlash_Revo.h.

◆ flash_died

bool DataFlash_Revo::flash_died
staticprivate

Definition at line 91 of file DataFlash_Revo.h.

◆ last_block_num

uint16_t DataFlash_Revo::last_block_num
private

Definition at line 137 of file DataFlash_Revo.h.

◆ log_write_started

bool DataFlash_Revo::log_write_started
staticprivate

Definition at line 80 of file DataFlash_Revo.h.


The documentation for this class was generated from the following file: