LoRaWAN-Signal-Mapping/iot/main/storage.cpp

43 lines
1.2 KiB
C++
Raw Normal View History

#include <Arduino.h>
#include <SD.h>
#include <TinyGPS++.h>
#include "settings.h"
#include "gps.h"
void store_init() {
// NOTE: If this doesn't work, then we need to use pinMode() & specify the data pin here instead.
2019-06-24 13:31:33 +00:00
if(!SD.begin(PIN_SPI_CS_SD)) {
Serial.println(F("Error: MicroSD card init failed"));
while(true) { delay(1); } // Pseudo-halt, but uses delay() to ensure we keep passing back control to allow easy re-programming
}
}
void store_reading(uint32_t id, GPSLocation location) {
// Open the file to write the data to. If it doesn't exist it will be created.
// Unlike elsewhere, FILE_WRITE opens the file with the cursor starting at the end, so it's basically actually equivalent to FILE_APPEND that we use in other environments. Confusing, I know.
File handle = SD.open(SD_FILENAME, FILE_WRITE);
handle.print(id);
handle.print(F("\t"));
handle.print(location.lat);
handle.print(F("\t"));
handle.print(location.lng);
handle.println();
handle.close();
}
void store_debug(char* buffer, int size) {
File handle = SD.open(SD_FILENAME_DEBUG, FILE_WRITE);
handle.write(buffer, size);
handle.println();
handle.close();
}
void store_close() {
SD.end();
}