LoRa Access Point 1.5.2018
Dependencies: mbed ds3231 SX1276Lib_LoRa_Access_Point
SD.cpp@11:376bfcdda0d4, 2021-05-08 (annotated)
- Committer:
- lukas_formanek
- Date:
- Sat May 08 16:23:46 2021 +0000
- Revision:
- 11:376bfcdda0d4
- Parent:
- 10:e62222c46ee9
LoRa_Access_Point
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
lukas_formanek | 8:5d99fbf255d6 | 1 | #include "SD.h" |
lukas_formanek | 8:5d99fbf255d6 | 2 | |
lukas_formanek | 8:5d99fbf255d6 | 3 | |
lukas_formanek | 8:5d99fbf255d6 | 4 | // SD SDcard(SD_MOSI, SD_MISO, SD_SCK, SD_CS); |
lukas_formanek | 8:5d99fbf255d6 | 5 | SDFileSystem sd(SD_MOSI, SD_MISO, SD_SCK, SD_CS, "sd"); // SD karta - MOSI, MISO, SCK, CS |
lukas_formanek | 8:5d99fbf255d6 | 6 | SD SDcard; |
lukas_formanek | 8:5d99fbf255d6 | 7 | |
lukas_formanek | 10:e62222c46ee9 | 8 | extern time_t epoch_time; |
lukas_formanek | 10:e62222c46ee9 | 9 | |
lukas_formanek | 10:e62222c46ee9 | 10 | //rtc object |
lukas_formanek | 10:e62222c46ee9 | 11 | //Ds3231 rtc(PB_9, PB_8); |
lukas_formanek | 10:e62222c46ee9 | 12 | |
lukas_formanek | 8:5d99fbf255d6 | 13 | |
lukas_formanek | 8:5d99fbf255d6 | 14 | SD::SD() |
lukas_formanek | 8:5d99fbf255d6 | 15 | { |
lukas_formanek | 9:28e272b6b018 | 16 | // Init(); |
lukas_formanek | 8:5d99fbf255d6 | 17 | // sdCard(SD_MOSI, SD_MISO, SD_SCK, SD_CS, "sd"); |
lukas_formanek | 10:e62222c46ee9 | 18 | |
lukas_formanek | 10:e62222c46ee9 | 19 | // ds3231_cntl_stat_t rtc_control_status = {0,0}; |
lukas_formanek | 10:e62222c46ee9 | 20 | // ds3231_time_t rtc_time; |
lukas_formanek | 10:e62222c46ee9 | 21 | // ds3231_calendar_t rtc_calendar; |
lukas_formanek | 10:e62222c46ee9 | 22 | |
lukas_formanek | 10:e62222c46ee9 | 23 | // rtc.set_cntl_stat_reg(rtc_control_status); |
lukas_formanek | 8:5d99fbf255d6 | 24 | }; |
lukas_formanek | 8:5d99fbf255d6 | 25 | |
lukas_formanek | 8:5d99fbf255d6 | 26 | SD::SD(PinName mosi, PinName miso, PinName sck, PinName cs) |
lukas_formanek | 8:5d99fbf255d6 | 27 | // : sdCard(mosi, miso, sck, cs , "sd") |
lukas_formanek | 8:5d99fbf255d6 | 28 | { |
lukas_formanek | 8:5d99fbf255d6 | 29 | // myLogFile = NULL; |
lukas_formanek | 8:5d99fbf255d6 | 30 | }; |
lukas_formanek | 8:5d99fbf255d6 | 31 | |
lukas_formanek | 8:5d99fbf255d6 | 32 | void SD::Init() |
lukas_formanek | 8:5d99fbf255d6 | 33 | { |
lukas_formanek | 8:5d99fbf255d6 | 34 | |
lukas_formanek | 8:5d99fbf255d6 | 35 | pc.printf("1. \r\n"); |
lukas_formanek | 9:28e272b6b018 | 36 | FILE *myLogFile = fopen("/sd/DATA_LOG.txt","r"); |
lukas_formanek | 8:5d99fbf255d6 | 37 | pc.printf("2. \r\n"); |
lukas_formanek | 8:5d99fbf255d6 | 38 | if (myLogFile != NULL) { |
lukas_formanek | 8:5d99fbf255d6 | 39 | // fprintf(myLogFile,"\r\n-------------------- NODE NUMBER --------------------\r\n\n"); |
lukas_formanek | 8:5d99fbf255d6 | 40 | // fprintf(myLogFile,"| DATUM | CAS | ADC | v[m/s] |\r\n\n"); |
lukas_formanek | 8:5d99fbf255d6 | 41 | fclose(myLogFile); |
lukas_formanek | 9:28e272b6b018 | 42 | free(myLogFile); |
lukas_formanek | 8:5d99fbf255d6 | 43 | pc.printf("File already exist. Appending data to current file.\r\n"); |
lukas_formanek | 8:5d99fbf255d6 | 44 | pc.printf("3. \r\n"); |
lukas_formanek | 8:5d99fbf255d6 | 45 | } |
lukas_formanek | 8:5d99fbf255d6 | 46 | else |
lukas_formanek | 8:5d99fbf255d6 | 47 | { |
lukas_formanek | 8:5d99fbf255d6 | 48 | myLogFile = fopen("/sd/DATA_LOG.txt","w"); |
lukas_formanek | 8:5d99fbf255d6 | 49 | if (myLogFile == NULL) { |
lukas_formanek | 8:5d99fbf255d6 | 50 | pc.printf("Unable to create file \r\n"); |
lukas_formanek | 8:5d99fbf255d6 | 51 | } |
lukas_formanek | 8:5d99fbf255d6 | 52 | else { |
lukas_formanek | 8:5d99fbf255d6 | 53 | fprintf(myLogFile,"-------------------- NODE NUMBER --------------------\r\n\n"); |
lukas_formanek | 8:5d99fbf255d6 | 54 | fprintf(myLogFile,"| DATUM | CAS | ADC | v[m/s] |\r\n\n"); |
lukas_formanek | 8:5d99fbf255d6 | 55 | fclose(myLogFile); |
lukas_formanek | 9:28e272b6b018 | 56 | free(myLogFile); |
lukas_formanek | 8:5d99fbf255d6 | 57 | pc.printf("File successfully create! \r\n"); |
lukas_formanek | 8:5d99fbf255d6 | 58 | } |
lukas_formanek | 8:5d99fbf255d6 | 59 | } |
lukas_formanek | 8:5d99fbf255d6 | 60 | }; |
lukas_formanek | 8:5d99fbf255d6 | 61 | |
lukas_formanek | 8:5d99fbf255d6 | 62 | void SD::Write(char* data) |
lukas_formanek | 8:5d99fbf255d6 | 63 | { |
lukas_formanek | 9:28e272b6b018 | 64 | // __disable_irq(); // Disable Interrupts |
lukas_formanek | 9:28e272b6b018 | 65 | // pc.printf("1. \r\n"); |
lukas_formanek | 8:5d99fbf255d6 | 66 | /* |
lukas_formanek | 8:5d99fbf255d6 | 67 | if (myLogFile =! NULL) |
lukas_formanek | 8:5d99fbf255d6 | 68 | { |
lukas_formanek | 8:5d99fbf255d6 | 69 | fclose(myLogFile); |
lukas_formanek | 8:5d99fbf255d6 | 70 | free(myLogFile); |
lukas_formanek | 8:5d99fbf255d6 | 71 | } |
lukas_formanek | 8:5d99fbf255d6 | 72 | */ |
lukas_formanek | 10:e62222c46ee9 | 73 | // ds3231_cntl_stat_t rtc_control_status = {0,0}; |
lukas_formanek | 10:e62222c46ee9 | 74 | // rtc.set_cntl_stat_reg(rtc_control_status); |
lukas_formanek | 10:e62222c46ee9 | 75 | // time_t epoch_time; |
lukas_formanek | 10:e62222c46ee9 | 76 | // epoch_time = rtc.get_epoch(); |
lukas_formanek | 10:e62222c46ee9 | 77 | |
lukas_formanek | 10:e62222c46ee9 | 78 | // pc.printf("\nTime as seconds since January 1, 1970 = %d\r\n", epoch_time); |
lukas_formanek | 10:e62222c46ee9 | 79 | |
lukas_formanek | 10:e62222c46ee9 | 80 | // pc.printf("Time as a basic string = %.19s \r\n", ctime(&epoch_time)); |
lukas_formanek | 10:e62222c46ee9 | 81 | |
lukas_formanek | 10:e62222c46ee9 | 82 | |
lukas_formanek | 10:e62222c46ee9 | 83 | // pc.printf("bla bla \r\n"); |
lukas_formanek | 10:e62222c46ee9 | 84 | |
lukas_formanek | 8:5d99fbf255d6 | 85 | FILE *myLogFile = fopen("/sd/DATA_LOG.txt","a"); |
lukas_formanek | 9:28e272b6b018 | 86 | // pc.printf("2. \r\n"); |
lukas_formanek | 8:5d99fbf255d6 | 87 | if (myLogFile == NULL) |
lukas_formanek | 8:5d99fbf255d6 | 88 | { |
lukas_formanek | 8:5d99fbf255d6 | 89 | pc.printf("ERROR: failed to open the log file for writing!\r\n"); |
lukas_formanek | 8:5d99fbf255d6 | 90 | } |
lukas_formanek | 8:5d99fbf255d6 | 91 | else |
lukas_formanek | 8:5d99fbf255d6 | 92 | { |
lukas_formanek | 9:28e272b6b018 | 93 | // pc.printf("3. \r\n"); |
lukas_formanek | 9:28e272b6b018 | 94 | // fprintf(myLogFile,"HAMTALA"); |
lukas_formanek | 10:e62222c46ee9 | 95 | // fprintf(myLogFile,"%.19s|", ctime(&epoch_time)); |
lukas_formanek | 11:376bfcdda0d4 | 96 | // fprintf(myLogFile,"%s", actual_time); |
lukas_formanek | 11:376bfcdda0d4 | 97 | // fprintf(myLogFile,"%s", rtcClock.GetTime()); |
lukas_formanek | 11:376bfcdda0d4 | 98 | fprintf(myLogFile,"%s\r\n", data); |
lukas_formanek | 9:28e272b6b018 | 99 | // pc.printf("4. \r\n"); |
lukas_formanek | 8:5d99fbf255d6 | 100 | // fprintf(myLogFile,"HAMTALA"); |
lukas_formanek | 9:28e272b6b018 | 101 | // if(myLogFile != NULL) |
lukas_formanek | 8:5d99fbf255d6 | 102 | fclose(myLogFile); |
lukas_formanek | 9:28e272b6b018 | 103 | // fclose(myLogFile); |
lukas_formanek | 8:5d99fbf255d6 | 104 | // free(myLogFile); |
lukas_formanek | 8:5d99fbf255d6 | 105 | } |
lukas_formanek | 9:28e272b6b018 | 106 | // pc.printf("5. \r\n"); |
lukas_formanek | 8:5d99fbf255d6 | 107 | // fclose(myLogFile); |
lukas_formanek | 9:28e272b6b018 | 108 | // __enable_irq(); // Enable Interrupts |
lukas_formanek | 8:5d99fbf255d6 | 109 | } |
lukas_formanek | 8:5d99fbf255d6 | 110 | |
lukas_formanek | 11:376bfcdda0d4 | 111 | void SD::Read() |
lukas_formanek | 11:376bfcdda0d4 | 112 | { |
lukas_formanek | 11:376bfcdda0d4 | 113 | char myline [50]; |
lukas_formanek | 11:376bfcdda0d4 | 114 | FILE *myLogFile = fopen("/sd/DATA_LOG.txt","r"); |
lukas_formanek | 11:376bfcdda0d4 | 115 | if (myLogFile == NULL) |
lukas_formanek | 11:376bfcdda0d4 | 116 | { |
lukas_formanek | 11:376bfcdda0d4 | 117 | pc.printf("ERROR: failed to open the log file for writing!\r\n"); |
lukas_formanek | 11:376bfcdda0d4 | 118 | } |
lukas_formanek | 11:376bfcdda0d4 | 119 | else |
lukas_formanek | 11:376bfcdda0d4 | 120 | { |
lukas_formanek | 11:376bfcdda0d4 | 121 | pc.printf("READING FROM SD ::!\r\n"); |
lukas_formanek | 11:376bfcdda0d4 | 122 | while (!feof(myLogFile)) |
lukas_formanek | 11:376bfcdda0d4 | 123 | { |
lukas_formanek | 11:376bfcdda0d4 | 124 | fscanf(myLogFile,"%[^\n]\n",myline); |
lukas_formanek | 11:376bfcdda0d4 | 125 | // pc.printf("%s\r\n", myline); |
lukas_formanek | 11:376bfcdda0d4 | 126 | wifi.SendMessage((char *)myline); |
lukas_formanek | 11:376bfcdda0d4 | 127 | wait(0.01f); |
lukas_formanek | 11:376bfcdda0d4 | 128 | } |
lukas_formanek | 11:376bfcdda0d4 | 129 | |
lukas_formanek | 11:376bfcdda0d4 | 130 | fclose(myLogFile); |
lukas_formanek | 11:376bfcdda0d4 | 131 | |
lukas_formanek | 11:376bfcdda0d4 | 132 | } |
lukas_formanek | 11:376bfcdda0d4 | 133 | }; |