creat files in sd
Dependencies: SDFileSystem mbed
main.cpp@0:771b62e3ab62, 2015-05-06 (annotated)
- Committer:
- belloula
- Date:
- Wed May 06 10:46:46 2015 +0000
- Revision:
- 0:771b62e3ab62
creat files
Who changed what in which revision?
User | Revision | Line number | New 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 |