creat files in sd

Dependencies:   SDFileSystem mbed

main.cpp

Committer:
belloula
Date:
2015-05-06
Revision:
0:771b62e3ab62

File content as of revision 0:771b62e3ab62:

#include "mbed.h"
#include "SDFileSystem.h"
#include <string>
#include <vector>

Serial pc(USBTX, USBRX);
SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sclk, cs, name
Serial xbee(p13, p14);  // tx, rx
DigitalOut rst1(p11);
AnalogIn ain(p20);

DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);

char fname[64];
int i=0;
vector<string> filenames; //filenames are stored in a vector string
int fileNumber;


int findNextFile()
{

    FILE *fp;
    snprintf(fname,64,"/sd/mydir/myFile%04d.txt",fileNumber); // change to match your file name structure
    fp = fopen(fname,"r");
    while (fp) {
        fclose(fp);
        fileNumber++;
        fp = fopen(fname,"r");
    }

    return fileNumber;
}

void read_file_names(char *dir)
{
    DIR *dp;
    struct dirent *dirp;
    dp = opendir(dir);
    //read all directory and file names in current directory into filename vector
    while((dirp = readdir(dp)) != NULL) {
        filenames.push_back(string(dirp->d_name));
    }
    closedir(dp);
}

int main()
{

    myled1=1;
    myled2=1;
    wait_ms(20);



    printf("if ther a directory of files in /sd/mydir\n");

    DIR *d;
    struct dirent *p;
    char array[256];
    d = opendir("/sd/mydir");

    if (d == NULL) {
        //error("Could not open  directory!");
        mkdir("/sd/mydir", 0777);
        printf(" create directory /sd/mydir");
    } else {
        while ((p = readdir(d)) != NULL) {
            if ((strstr(p->d_name,".txt"))||(strstr(p->d_name,".txt"))) {
                printf(" - %s\n\r", p->d_name);
                printf("%s\n\r",array);
            }

        }
    }

    



    // read file names into vector of strings
    //read_file_names("/sd/mydir");
    // pc.printf(" read_file_names \n\r");
    //sprintf(filename, "/local/analog_%d.txt", x);
    //i = findNextFile();
    //FILE *fp = fopen(filename, "w");
    //snprintf(fname, sizeof(fname), "/sd/mydir/sdtest%04d.txt", i);



    FILE *fp = fopen("/sd/mydir/fname", "w");
    if(fp == NULL) {
        error("Could not open file for write\r\n");
    }
    pc.printf("File successfully opned and redy to use!\r\n");



    myled1=0;
    myled3=1;

    for (int j=0; j<1000; j++) {
        fprintf(fp, " Analog in = %d \n",ain.read_u16());
        wait_ms(20);
        myled2=0;
    }

    fclose(fp);
    pc.printf(" close file\n\r");

    while (1) {
        myled2=0;
        wait_ms(200);
        myled2=1;
        wait_ms(200);
    }


}