SD card functionality

Dependents:   ELEC350_Project2 SDcard

SDCard.cpp

Committer:
Swabey89
Date:
2018-11-10
Revision:
4:dc767b5f917b
Parent:
3:c6e5dd2faa22
Child:
5:0d49326968ca

File content as of revision 4:dc767b5f917b:

#include "SDCard.hpp"



void SDcard(void)
{
        
        
    //REQUIRES IMPROVEMENTS, SEE ONENOTE
        
    //Initialise the SD card
    if ( sd.init() != 0) {
        printf("Init failed \n");
        lcd.cls();
        lcd.printf("CANNOT INIT SD");        
        errorCode(FATAL);
    } 
    
    //Create a filing system for SD Card
    //FATFileSystem fs("sd", &sd);     
    fs = new FATFileSystem("sd", &sd);
    
    //Open to WRITE
    fp = fopen("/sd/q.csv","a");
    if (fp == NULL) {
        error("Could not open file for write\n");
        lcd.cls();
        lcd.printf("CANNOT OPEN FILE\n\n");
        errorCode(FATAL);
    }
    
    
    fclose(fp);
    
    //Last message before sampling begins
    lcd.cls();
    lcd.printf("READY\n\n");
    
    
    
    //move?   
    //Press either switch to unmount
    /*
    while ((SW1 == 0) && (SW2 == 0)) {
        
             
        //Write to SD (potentially slow)
        //fprintf(fp, "%6.1f,%.2f\n\r", temp, pressure);
        
    }
    
    //Close File
    fclose(fp);
    
    //Close down
    sd.deinit();
    printf("Unmounted...\n");
    lcd.cls();
    lcd.printf("Unmounted...\n\n");
    */
}

void SDread(int n)
{
    //Read n samples from the SD card
    if (n == -1) puts("Received command to read all");
    else printf("Received command to read %d\n", n);
}

void SDdelete(int n)
{
    //Delete n samples from the SD card
    if (n == -1) puts("Received command to delete all");
    else printf("Received command to delete %d\n", n);   
}

void SDaddSample(double temp, double pressure)
{
    //Add the sampled data to the SD card    
    fp = fopen("/sd/q.csv","a");
    fprintf(fp, "%6.1f,%.2f\n\r", temp, pressure);
    fclose(fp);
    puts("SAMPLE ADDED TO SD CARD");
}

void SDalive(void)
{
    //Signal that the SD thread is still alive
    //puts("SD THREAD ALIVE\n");   
}