LoRa Access Point 1.5.2018

Dependencies:   mbed ds3231 SX1276Lib_LoRa_Access_Point

SD.cpp

Committer:
lukas_formanek
Date:
2021-05-08
Revision:
11:376bfcdda0d4
Parent:
10:e62222c46ee9

File content as of revision 11:376bfcdda0d4:

#include "SD.h"


// SD SDcard(SD_MOSI, SD_MISO, SD_SCK, SD_CS);
SDFileSystem sd(SD_MOSI, SD_MISO, SD_SCK, SD_CS, "sd");  // SD karta - MOSI, MISO, SCK, CS
SD SDcard;

extern time_t epoch_time;

//rtc object
//Ds3231 rtc(PB_9, PB_8); 


SD::SD()
{
//    Init();
//    sdCard(SD_MOSI, SD_MISO, SD_SCK, SD_CS, "sd");

//    ds3231_cntl_stat_t rtc_control_status = {0,0}; 
//    ds3231_time_t rtc_time;
//    ds3231_calendar_t rtc_calendar;
    
 //   rtc.set_cntl_stat_reg(rtc_control_status);
};
    
SD::SD(PinName mosi, PinName miso, PinName sck, PinName cs)
//    : sdCard(mosi, miso, sck, cs , "sd")
{
//    myLogFile = NULL;
};

void SD::Init()
{

    pc.printf("1. \r\n");
    FILE *myLogFile = fopen("/sd/DATA_LOG.txt","r");
    pc.printf("2. \r\n");
    if (myLogFile != NULL) {
//        fprintf(myLogFile,"\r\n-------------------- NODE NUMBER  --------------------\r\n\n");
//        fprintf(myLogFile,"|  DATUM |   CAS  | ADC | v[m/s] |\r\n\n");
        fclose(myLogFile);
        free(myLogFile);
        pc.printf("File already exist. Appending data to current file.\r\n");
        pc.printf("3. \r\n");
    }
    else
    {
        myLogFile = fopen("/sd/DATA_LOG.txt","w");
        if (myLogFile == NULL) {
            pc.printf("Unable to create file \r\n");
        }   
        else {
        fprintf(myLogFile,"-------------------- NODE NUMBER  --------------------\r\n\n");
        fprintf(myLogFile,"|  DATUM |   CAS  | ADC | v[m/s] |\r\n\n");
        fclose(myLogFile);
        free(myLogFile);
        pc.printf("File successfully create! \r\n");
        }
    }     
};

void SD::Write(char* data)
{
//    __disable_irq();    // Disable Interrupts
//    pc.printf("1. \r\n");
    /*
    if (myLogFile =! NULL)
    {
        fclose(myLogFile);
        free(myLogFile);
    }
    */
//    ds3231_cntl_stat_t rtc_control_status = {0,0};  
//    rtc.set_cntl_stat_reg(rtc_control_status);
//   time_t epoch_time;
//    epoch_time = rtc.get_epoch();
    
//    pc.printf("\nTime as seconds since January 1, 1970 = %d\r\n", epoch_time);
        
//    pc.printf("Time as a basic string = %.19s \r\n", ctime(&epoch_time));
 

//    pc.printf("bla bla \r\n");
    
    FILE *myLogFile = fopen("/sd/DATA_LOG.txt","a");
//    pc.printf("2. \r\n");
    if (myLogFile == NULL)
    {
        pc.printf("ERROR: failed to open the log file for writing!\r\n");
    }
    else
    {
//        pc.printf("3. \r\n");
//         fprintf(myLogFile,"HAMTALA");
//        fprintf(myLogFile,"%.19s|", ctime(&epoch_time));
//        fprintf(myLogFile,"%s", actual_time);
//        fprintf(myLogFile,"%s", rtcClock.GetTime());
        fprintf(myLogFile,"%s\r\n", data);
//        pc.printf("4. \r\n");
 //       fprintf(myLogFile,"HAMTALA");
//        if(myLogFile != NULL)
        fclose(myLogFile);
//        fclose(myLogFile);
//        free(myLogFile);
    }
//     pc.printf("5. \r\n");
//    fclose(myLogFile);
//    __enable_irq();     // Enable Interrupts
}

void SD::Read()
{
    char myline [50];
    FILE *myLogFile = fopen("/sd/DATA_LOG.txt","r");
    if (myLogFile == NULL)
    {
        pc.printf("ERROR: failed to open the log file for writing!\r\n");
    }
    else
    {
        pc.printf("READING FROM SD  ::!\r\n");
        while (!feof(myLogFile))
        {
            fscanf(myLogFile,"%[^\n]\n",myline);
//            pc.printf("%s\r\n", myline);
            wifi.SendMessage((char *)myline); 
            wait(0.01f);
        }
        
        fclose(myLogFile);

    }
};