EVOG2-Spiffs-Avery/SD_ADI.ino

196 lines
4.0 KiB
C++

// #include <SPI.h>
// #include <mySD.h>
#include "FS.h"
#include "FileLib.h"
File myFile;
// sample call
// int16_t datapac[1000];
// SD_FileWrite(&datapac, "/PARMS.ADI",sizeof(datapac));
// if we do it like this.. the data dosen't matter if byte 16 or 32.
// just might have to dink with the pointers
bool SD_FileExists(char *filename)
{
if (SD.exists(filename))
return (1);
else
return (0);
}
void SD_ParmWrite(int uploadHTTPs)
{
int i, j;
//FS fileLibSPIFFS = FL_SPIFFS;
const char *filename = "/PARMS.ADI";
if (fileLibSPIFFS.exists(filename))
fileLibSPIFFS.remove(filename);
File SD_File = fileLibSPIFFS.open(filename, FILE_WRITE);
Serial.println("Writing Parm file");
// if the file opened okay, write to it:
qualifyParms();
// calc CSUM
parm[0] = 0;
for (i = 1; i < (PARMSIZE - 1); i++)
parm[0] += parm[i];
if (SD_File)
{
Serial.println(String("Open Parms"));
for (i = 0; i < PARMSIZE; i++)
{
SD_File.write((parm[i] >> 24) & 0xFF);
SD_File.write((parm[i] >> 16) & 0xFF);
SD_File.write((parm[i] >> 8) & 0xFF);
SD_File.write(parm[i] & 0xFF);
}
displayText("Parm File Save");
// close the file:
SD_File.close();
Serial.println("SD Close");
restoreFault(7);
if (uploadHTTPs)
UpdateParmHTTPs(); // update cloud
}
else
{
// if the file didn't open, print an error:
Serial.println("SD Error");
qualifyFault(1,0);
}
}
byte SD_ParmRead(void)
{
long ll;
byte err = 0;
int i;
Serial.println("Reading Parm File");
//FS fileLibSPIFFS = FL_SPIFFS;
// open the file for reading:
File SD_File = fileLibSPIFFS.open("/PARMS.ADI");
if (SD_File)
{
// read from the file until there's nothing else in it:
if (SD_File.available())
{
/*
for(i = 0;i < 48;i++)
SDinstr[i] = SD_File.read();
memcpy(&ssid[0],&SDinstr[0],48);
for(i = 0;i < 48;i++)
SDinstr[i] = SD_File.read();
memcpy(&pass[0],&SDinstr[0],48);
*/
for (i = 0; i < PARMSIZE; i++)
{
parm[i] = SD_File.read() << 24;
parm[i] = parm[i] | SD_File.read() << 16;
parm[i] = parm[i] | SD_File.read() << 8;
parm[i] = parm[i] | SD_File.read();
Serial.println(parm[i]);
}
restoreFault(1);
}
else
{
qualifyFault(1,0);
}
// close the file:
SD_File.close();
displayText("Parm File Read");
// calc/check CSUM
ll = 0;
for (i = 1; i < (PARMSIZE - 1); i++)
ll += parm[i];
if (ll != parm[0])
{
Serial.print("CSUM ERR: ");
err = 1;
Serial.println(String(ll));
}
else
{
Serial.println("CSUM OK");
Serial.print("Serial: ");
Serial.println(String(parm[64]));
}
}
else
{
// if the file didn't open, print an error:
Serial.println("SD Error");
err = 1;
qualifyFault(1,0);
}
// delay(20);
if (err != 0)
parms.factoryReset();
Serial.print("SD Read ");
Serial.println(err);
return (err);
}
void SD_RemoteParmWrite(char *filename)
{
int i, j;
FS fs = SD;
Serial.print("Saving ");
Serial.println(filename);
if (fs.exists(filename))
fs.remove(filename);
File SD_File = fs.open(filename, FILE_WRITE);
// if the file opened okay, write to it:
if (SD_File)
{
Serial.println("Parms Open");
for (i = 0; i < PARMSIZE; i++)
{
SD_File.write((remoteParm[i] >> 24) & 0xFF);
SD_File.write((remoteParm[i] >> 16) & 0xFF);
SD_File.write((remoteParm[i] >> 8) & 0xFF);
SD_File.write(remoteParm[i] & 0xFF);
}
displayText("Parm File Save");
// close the file:
SD_File.close();
Serial.println("SD Close");
restoreFault(7);
}
else
{
// if the file didn't open, print an error:
Serial.println("SD Error");
qualifyFault(1,0);
}
}