Browse Source

DataFlash: use AP_Mission singleton

mission-4.1.18
Peter Barker 6 years ago committed by Randy Mackay
parent
commit
590eb86a45
  1. 18
      libraries/DataFlash/DFMessageWriter.cpp
  2. 5
      libraries/DataFlash/DFMessageWriter.h
  3. 4
      libraries/DataFlash/DataFlash.cpp
  4. 2
      libraries/DataFlash/DataFlash.h
  5. 4
      libraries/DataFlash/DataFlash_Backend.cpp
  6. 2
      libraries/DataFlash/DataFlash_Backend.h
  7. 1
      libraries/DataFlash/LogFile.cpp

18
libraries/DataFlash/DFMessageWriter.cpp

@ -134,12 +134,6 @@ void DFMessageWriter_WriteSysInfo::reset()
stage = ws_blockwriter_stage_init; stage = ws_blockwriter_stage_init;
} }
void DFMessageWriter_DFLogStart::set_mission(const AP_Mission *mission)
{
_writeentiremission.set_mission(mission);
}
void DFMessageWriter_WriteSysInfo::process() { void DFMessageWriter_WriteSysInfo::process() {
const AP_FWVersion &fwver = AP::fwversion(); const AP_FWVersion &fwver = AP::fwversion();
@ -188,6 +182,12 @@ void DFMessageWriter_WriteSysInfo::process() {
} }
void DFMessageWriter_WriteEntireMission::process() { void DFMessageWriter_WriteEntireMission::process() {
const AP_Mission *_mission = AP::mission();
if (_mission == nullptr) {
_finished = true;
return;
}
switch(stage) { switch(stage) {
case em_blockwriter_stage_init: case em_blockwriter_stage_init:
@ -234,9 +234,3 @@ void DFMessageWriter_WriteEntireMission::reset()
stage = em_blockwriter_stage_init; stage = em_blockwriter_stage_init;
_mission_number_to_send = 0; _mission_number_to_send = 0;
} }
void DFMessageWriter_WriteEntireMission::set_mission(const AP_Mission *mission)
{
_mission = mission;
}

5
libraries/DataFlash/DFMessageWriter.h

@ -43,8 +43,6 @@ public:
void reset() override; void reset() override;
void process() override; void process() override;
void set_mission(const AP_Mission *mission);
private: private:
enum entire_mission_blockwriter_stage { enum entire_mission_blockwriter_stage {
em_blockwriter_stage_init, em_blockwriter_stage_init,
@ -53,7 +51,6 @@ private:
em_blockwriter_stage_done em_blockwriter_stage_done
}; };
const AP_Mission *_mission = nullptr;
uint16_t _mission_number_to_send = 0; uint16_t _mission_number_to_send = 0;
entire_mission_blockwriter_stage stage = em_blockwriter_stage_init; entire_mission_blockwriter_stage stage = em_blockwriter_stage_init;
}; };
@ -76,8 +73,6 @@ public:
void process() override; void process() override;
bool fmt_done() { return _fmt_done; } bool fmt_done() { return _fmt_done; }
void set_mission(const AP_Mission *mission);
private: private:
enum log_start_blockwriter_stage { enum log_start_blockwriter_stage {

4
libraries/DataFlash/DataFlash.cpp

@ -514,10 +514,6 @@ void DataFlash_Class::set_vehicle_armed(const bool armed_state)
} }
void DataFlash_Class::set_mission(const AP_Mission *mission) {
FOR_EACH_BACKEND(set_mission(mission));
}
// start functions pass straight through to backend: // start functions pass straight through to backend:
void DataFlash_Class::WriteBlock(const void *pBuffer, uint16_t size) { void DataFlash_Class::WriteBlock(const void *pBuffer, uint16_t size) {
FOR_EACH_BACKEND(WriteBlock(pBuffer, size)); FOR_EACH_BACKEND(WriteBlock(pBuffer, size));

2
libraries/DataFlash/DataFlash.h

@ -63,8 +63,6 @@ public:
return _instance; return _instance;
} }
void set_mission(const AP_Mission *mission);
// initialisation // initialisation
void Init(const struct LogStructure *structure, uint8_t num_types); void Init(const struct LogStructure *structure, uint8_t num_types);
void set_num_types(uint8_t num_types) { _num_types = num_types; } void set_num_types(uint8_t num_types) { _num_types = num_types; }

4
libraries/DataFlash/DataFlash_Backend.cpp

@ -83,10 +83,6 @@ void DataFlash_Backend::internal_error() {
#endif #endif
} }
void DataFlash_Backend::set_mission(const AP_Mission *mission) {
_startup_messagewriter->set_mission(mission);
}
// this method can be overridden to do extra things with your buffer. // this method can be overridden to do extra things with your buffer.
// for example, in DataFlash_MAVLink we may push messages into the UART. // for example, in DataFlash_MAVLink we may push messages into the UART.
void DataFlash_Backend::push_log_blocks() { void DataFlash_Backend::push_log_blocks() {

2
libraries/DataFlash/DataFlash_Backend.h

@ -47,8 +47,6 @@ public:
virtual void Init() { } virtual void Init() { }
void set_mission(const AP_Mission *mission);
virtual uint32_t bufferspace_available() = 0; virtual uint32_t bufferspace_available() = 0;
virtual void PrepForArming() { } virtual void PrepForArming() { }

1
libraries/DataFlash/LogFile.cpp

@ -436,7 +436,6 @@ void DataFlash_Backend::Log_Write_EntireMission(const AP_Mission &mission)
{ {
DFMessageWriter_WriteEntireMission writer; DFMessageWriter_WriteEntireMission writer;
writer.set_dataflash_backend(this); writer.set_dataflash_backend(this);
writer.set_mission(&mission);
writer.process(); writer.process();
} }

Loading…
Cancel
Save