-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathflightLogger.cpp
More file actions
64 lines (50 loc) · 1.55 KB
/
flightLogger.cpp
File metadata and controls
64 lines (50 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#include "constants.h"
#include "flightLoggerBase.h"
#include "flightLogger.h"
flightLogger::flightLogger() {
reset();
}
void flightLogger::init(unsigned long timestamp) {
// Initialize the flight...
aborted = false;
recording = true;
airborne = true;
touchdown = false;
instance.init(timestamp);
}
// Kick off reindexing on the other cpu...
void flightLogger::reindexFlights() {
BaseType_t xReturned = xTaskCreatePinnedToCore(
&flightLogger::reindexFlightsTaskW, /* Function to implement the task */
"reindexFlightsTask", /* Name of the task */
4000, /* Stack size in words */
this, /* Task input parameter */
0, /* Priority of the task */
&reindexFlightsTaskHandle, /* Task handle. */
0 /* Core where the task should run */
);
}
void flightLogger::reindexFlightsTaskW(void * parameter) {
flightLogger* instance = reinterpret_cast<flightLogger*>(parameter); // obtain the instance pointer
instance->instance.reindexFlights(); // dispatch to the member function, now that we have an instance pointer
// Delete the task...
vTaskDelete(NULL);
}
void flightLogger::reset() {
// Reset the flight...
aborted = false;
recording = false;
airborne = false;
touchdown = false;
instance.reset();
}
flightLogger _flightLogger;
void setupFlightLogger() {
Serial.println(F("\nSetup flight logger..."));
if (!_flightLogger.instance.initFileSystem()) {
Serial.println(F("Failed to initialize flight logger"));
return;
}
_flightLogger.reindexFlights();
Serial.println(F("...flight logger successful."));
}