creat files in sd

Dependencies:   SDFileSystem mbed

Committer:
belloula
Date:
Wed May 06 10:46:46 2015 +0000
Revision:
0:771b62e3ab62
creat files

Who changed what in which revision?

UserRevisionLine numberNew contents of line
belloula 0:771b62e3ab62 1 #include "mbed.h"
belloula 0:771b62e3ab62 2 #include "SDFileSystem.h"
belloula 0:771b62e3ab62 3 #include <string>
belloula 0:771b62e3ab62 4 #include <vector>
belloula 0:771b62e3ab62 5
belloula 0:771b62e3ab62 6 Serial pc(USBTX, USBRX);
belloula 0:771b62e3ab62 7 SDFileSystem sd(p5, p6, p7, p8, "sd"); // mosi, miso, sclk, cs, name
belloula 0:771b62e3ab62 8 Serial xbee(p13, p14); // tx, rx
belloula 0:771b62e3ab62 9 DigitalOut rst1(p11);
belloula 0:771b62e3ab62 10 AnalogIn ain(p20);
belloula 0:771b62e3ab62 11
belloula 0:771b62e3ab62 12 DigitalOut myled1(LED1);
belloula 0:771b62e3ab62 13 DigitalOut myled2(LED2);
belloula 0:771b62e3ab62 14 DigitalOut myled3(LED3);
belloula 0:771b62e3ab62 15
belloula 0:771b62e3ab62 16 char fname[64];
belloula 0:771b62e3ab62 17 int i=0;
belloula 0:771b62e3ab62 18 vector<string> filenames; //filenames are stored in a vector string
belloula 0:771b62e3ab62 19 int fileNumber;
belloula 0:771b62e3ab62 20
belloula 0:771b62e3ab62 21
belloula 0:771b62e3ab62 22 int findNextFile()
belloula 0:771b62e3ab62 23 {
belloula 0:771b62e3ab62 24
belloula 0:771b62e3ab62 25 FILE *fp;
belloula 0:771b62e3ab62 26 snprintf(fname,64,"/sd/mydir/myFile%04d.txt",fileNumber); // change to match your file name structure
belloula 0:771b62e3ab62 27 fp = fopen(fname,"r");
belloula 0:771b62e3ab62 28 while (fp) {
belloula 0:771b62e3ab62 29 fclose(fp);
belloula 0:771b62e3ab62 30 fileNumber++;
belloula 0:771b62e3ab62 31 fp = fopen(fname,"r");
belloula 0:771b62e3ab62 32 }
belloula 0:771b62e3ab62 33
belloula 0:771b62e3ab62 34 return fileNumber;
belloula 0:771b62e3ab62 35 }
belloula 0:771b62e3ab62 36
belloula 0:771b62e3ab62 37 void read_file_names(char *dir)
belloula 0:771b62e3ab62 38 {
belloula 0:771b62e3ab62 39 DIR *dp;
belloula 0:771b62e3ab62 40 struct dirent *dirp;
belloula 0:771b62e3ab62 41 dp = opendir(dir);
belloula 0:771b62e3ab62 42 //read all directory and file names in current directory into filename vector
belloula 0:771b62e3ab62 43 while((dirp = readdir(dp)) != NULL) {
belloula 0:771b62e3ab62 44 filenames.push_back(string(dirp->d_name));
belloula 0:771b62e3ab62 45 }
belloula 0:771b62e3ab62 46 closedir(dp);
belloula 0:771b62e3ab62 47 }
belloula 0:771b62e3ab62 48
belloula 0:771b62e3ab62 49 int main()
belloula 0:771b62e3ab62 50 {
belloula 0:771b62e3ab62 51
belloula 0:771b62e3ab62 52 myled1=1;
belloula 0:771b62e3ab62 53 myled2=1;
belloula 0:771b62e3ab62 54 wait_ms(20);
belloula 0:771b62e3ab62 55
belloula 0:771b62e3ab62 56
belloula 0:771b62e3ab62 57
belloula 0:771b62e3ab62 58 printf("if ther a directory of files in /sd/mydir\n");
belloula 0:771b62e3ab62 59
belloula 0:771b62e3ab62 60 DIR *d;
belloula 0:771b62e3ab62 61 struct dirent *p;
belloula 0:771b62e3ab62 62 char array[256];
belloula 0:771b62e3ab62 63 d = opendir("/sd/mydir");
belloula 0:771b62e3ab62 64
belloula 0:771b62e3ab62 65 if (d == NULL) {
belloula 0:771b62e3ab62 66 //error("Could not open directory!");
belloula 0:771b62e3ab62 67 mkdir("/sd/mydir", 0777);
belloula 0:771b62e3ab62 68 printf(" create directory /sd/mydir");
belloula 0:771b62e3ab62 69 } else {
belloula 0:771b62e3ab62 70 while ((p = readdir(d)) != NULL) {
belloula 0:771b62e3ab62 71 if ((strstr(p->d_name,".txt"))||(strstr(p->d_name,".txt"))) {
belloula 0:771b62e3ab62 72 printf(" - %s\n\r", p->d_name);
belloula 0:771b62e3ab62 73 printf("%s\n\r",array);
belloula 0:771b62e3ab62 74 }
belloula 0:771b62e3ab62 75
belloula 0:771b62e3ab62 76 }
belloula 0:771b62e3ab62 77 }
belloula 0:771b62e3ab62 78
belloula 0:771b62e3ab62 79
belloula 0:771b62e3ab62 80
belloula 0:771b62e3ab62 81
belloula 0:771b62e3ab62 82
belloula 0:771b62e3ab62 83 // read file names into vector of strings
belloula 0:771b62e3ab62 84 //read_file_names("/sd/mydir");
belloula 0:771b62e3ab62 85 // pc.printf(" read_file_names \n\r");
belloula 0:771b62e3ab62 86 //sprintf(filename, "/local/analog_%d.txt", x);
belloula 0:771b62e3ab62 87 //i = findNextFile();
belloula 0:771b62e3ab62 88 //FILE *fp = fopen(filename, "w");
belloula 0:771b62e3ab62 89 //snprintf(fname, sizeof(fname), "/sd/mydir/sdtest%04d.txt", i);
belloula 0:771b62e3ab62 90
belloula 0:771b62e3ab62 91
belloula 0:771b62e3ab62 92
belloula 0:771b62e3ab62 93 FILE *fp = fopen("/sd/mydir/fname", "w");
belloula 0:771b62e3ab62 94 if(fp == NULL) {
belloula 0:771b62e3ab62 95 error("Could not open file for write\r\n");
belloula 0:771b62e3ab62 96 }
belloula 0:771b62e3ab62 97 pc.printf("File successfully opned and redy to use!\r\n");
belloula 0:771b62e3ab62 98
belloula 0:771b62e3ab62 99
belloula 0:771b62e3ab62 100
belloula 0:771b62e3ab62 101 myled1=0;
belloula 0:771b62e3ab62 102 myled3=1;
belloula 0:771b62e3ab62 103
belloula 0:771b62e3ab62 104 for (int j=0; j<1000; j++) {
belloula 0:771b62e3ab62 105 fprintf(fp, " Analog in = %d \n",ain.read_u16());
belloula 0:771b62e3ab62 106 wait_ms(20);
belloula 0:771b62e3ab62 107 myled2=0;
belloula 0:771b62e3ab62 108 }
belloula 0:771b62e3ab62 109
belloula 0:771b62e3ab62 110 fclose(fp);
belloula 0:771b62e3ab62 111 pc.printf(" close file\n\r");
belloula 0:771b62e3ab62 112
belloula 0:771b62e3ab62 113 while (1) {
belloula 0:771b62e3ab62 114 myled2=0;
belloula 0:771b62e3ab62 115 wait_ms(200);
belloula 0:771b62e3ab62 116 myled2=1;
belloula 0:771b62e3ab62 117 wait_ms(200);
belloula 0:771b62e3ab62 118 }
belloula 0:771b62e3ab62 119
belloula 0:771b62e3ab62 120
belloula 0:771b62e3ab62 121 }
belloula 0:771b62e3ab62 122