hi

Dependencies:   SDFileSystem mbed

Fork of SDFileSystem_HelloWorld by mbed official

Committer:
Ishwar_Anjana
Date:
Mon Dec 25 17:45:48 2017 +0000
Revision:
3:5e6d3d2b2557
Parent:
2:e0071aaa133c
hi

Who changed what in which revision?

UserRevisionLine numberNew contents of line
mbed_official 0:bdbd3d6fc5d5 1 #include "mbed.h"
mbed_official 0:bdbd3d6fc5d5 2 #include "SDFileSystem.h"
Ishwar_Anjana 2:e0071aaa133c 3 #include <string>
Ishwar_Anjana 2:e0071aaa133c 4 #include <vector>\
Ishwar_Anjana 2:e0071aaa133c 5 #include <stdio.h>
Ishwar_Anjana 2:e0071aaa133c 6 #include <iostream>
mbed_official 0:bdbd3d6fc5d5 7
Ishwar_Anjana 2:e0071aaa133c 8
Ishwar_Anjana 2:e0071aaa133c 9 SDFileSystem sd(D11, D12, D13, D10, "sd"); // the pinout on the mbed Cool Components workshop board
Ishwar_Anjana 2:e0071aaa133c 10
Ishwar_Anjana 2:e0071aaa133c 11 //.....assumes SDFileSystem is setup in earlier code for device "/sd"
Ishwar_Anjana 2:e0071aaa133c 12
Ishwar_Anjana 2:e0071aaa133c 13 vector<string> filenames; //filenames are stored in a vector string
Ishwar_Anjana 2:e0071aaa133c 14 vector<string> filedata; //file data is stored in a vector string
Ishwar_Anjana 2:e0071aaa133c 15 ///////////////////////////////////////////////////////////////////////////////
Ishwar_Anjana 2:e0071aaa133c 16 using namespace std;
Ishwar_Anjana 2:e0071aaa133c 17 typedef unsigned char BYTE;
Ishwar_Anjana 2:e0071aaa133c 18
Ishwar_Anjana 2:e0071aaa133c 19 long getFileSize(FILE *file)
Ishwar_Anjana 2:e0071aaa133c 20 {
Ishwar_Anjana 2:e0071aaa133c 21 long lCurPos,lEndPos;
Ishwar_Anjana 2:e0071aaa133c 22 lCurPos = ftell(file);
Ishwar_Anjana 2:e0071aaa133c 23 fseek(file,lCurPos, 0);
Ishwar_Anjana 2:e0071aaa133c 24 return lEndPos;
Ishwar_Anjana 2:e0071aaa133c 25 }
Ishwar_Anjana 2:e0071aaa133c 26 //////////////////////////////////////////////////////////////////////////////
Ishwar_Anjana 2:e0071aaa133c 27
Ishwar_Anjana 2:e0071aaa133c 28
mbed_official 0:bdbd3d6fc5d5 29
Ishwar_Anjana 2:e0071aaa133c 30 void read_file_names(char *dir)
Ishwar_Anjana 2:e0071aaa133c 31 {
Ishwar_Anjana 2:e0071aaa133c 32 DIR *dp;
Ishwar_Anjana 2:e0071aaa133c 33 struct dirent *dirp;
Ishwar_Anjana 2:e0071aaa133c 34 dp = opendir(dir);
Ishwar_Anjana 2:e0071aaa133c 35 //read all directory and file names in current directory into filename vector
Ishwar_Anjana 2:e0071aaa133c 36 while((dirp = readdir(dp)) != NULL) {
Ishwar_Anjana 2:e0071aaa133c 37 filenames.push_back(string(dirp->d_name));
Ishwar_Anjana 2:e0071aaa133c 38 }
Ishwar_Anjana 2:e0071aaa133c 39 closedir(dp);
Ishwar_Anjana 2:e0071aaa133c 40 }
Ishwar_Anjana 2:e0071aaa133c 41 void read_file_data (char *dir)
Ishwar_Anjana 2:e0071aaa133c 42 {
Ishwar_Anjana 2:e0071aaa133c 43 DIR *dp;
Ishwar_Anjana 2:e0071aaa133c 44 struct dirent *dirp;
Ishwar_Anjana 2:e0071aaa133c 45 dp = opendir(dir);
Ishwar_Anjana 2:e0071aaa133c 46 //read all directory and file names in current directory into filename vector
Ishwar_Anjana 2:e0071aaa133c 47 while((dirp = readdir(dp)) != NULL) {
Ishwar_Anjana 2:e0071aaa133c 48 filenames.push_back(string(dirp->d_name));
Ishwar_Anjana 2:e0071aaa133c 49 }
Ishwar_Anjana 2:e0071aaa133c 50 closedir(dp);
Ishwar_Anjana 2:e0071aaa133c 51 }
mbed_official 0:bdbd3d6fc5d5 52 int main() {
mbed_official 0:bdbd3d6fc5d5 53 printf("Hello World!\n");
mbed_official 0:bdbd3d6fc5d5 54
Ishwar_Anjana 2:e0071aaa133c 55
mbed_official 0:bdbd3d6fc5d5 56
Ishwar_Anjana 2:e0071aaa133c 57 FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
mbed_official 0:bdbd3d6fc5d5 58 if(fp == NULL) {
mbed_official 0:bdbd3d6fc5d5 59 error("Could not open file for write\n");
mbed_official 0:bdbd3d6fc5d5 60 }
mbed_official 0:bdbd3d6fc5d5 61 fprintf(fp, "Hello fun SD Card World!");
Ishwar_Anjana 2:e0071aaa133c 62
mbed_official 0:bdbd3d6fc5d5 63 fclose(fp);
mbed_official 0:bdbd3d6fc5d5 64
mbed_official 0:bdbd3d6fc5d5 65 printf("Goodbye World!\n");
Ishwar_Anjana 2:e0071aaa133c 66
Ishwar_Anjana 2:e0071aaa133c 67 printf("Reading files!\n");
Ishwar_Anjana 2:e0071aaa133c 68
Ishwar_Anjana 2:e0071aaa133c 69 read_file_names("/sd");
Ishwar_Anjana 2:e0071aaa133c 70 //read_file_data("/sd/sky.raw");
Ishwar_Anjana 2:e0071aaa133c 71
Ishwar_Anjana 2:e0071aaa133c 72 // print filename strings from vector using an iterator
Ishwar_Anjana 2:e0071aaa133c 73 for(vector<string>::iterator it=filenames.begin(); it < filenames.end(); it++)
Ishwar_Anjana 2:e0071aaa133c 74 {
Ishwar_Anjana 2:e0071aaa133c 75 printf("%s\n\r",(*it).c_str());
Ishwar_Anjana 2:e0071aaa133c 76 }
Ishwar_Anjana 2:e0071aaa133c 77 //////////////////////////////////////////////////////////////////////////////
Ishwar_Anjana 2:e0071aaa133c 78 const char *filePath = "/sd/sky.raw";
Ishwar_Anjana 2:e0071aaa133c 79 BYTE *fileBuf;
Ishwar_Anjana 2:e0071aaa133c 80 FILE *file = NULL;
Ishwar_Anjana 2:e0071aaa133c 81
Ishwar_Anjana 2:e0071aaa133c 82 if ((file = fopen(filePath, "rb"))== NULL)
Ishwar_Anjana 2:e0071aaa133c 83 {
Ishwar_Anjana 2:e0071aaa133c 84 //cout << "Could not open the file" << end1 ;
Ishwar_Anjana 2:e0071aaa133c 85 printf("Could not open the file");
Ishwar_Anjana 2:e0071aaa133c 86
Ishwar_Anjana 2:e0071aaa133c 87 }
Ishwar_Anjana 2:e0071aaa133c 88 else
Ishwar_Anjana 2:e0071aaa133c 89 {
Ishwar_Anjana 2:e0071aaa133c 90
Ishwar_Anjana 2:e0071aaa133c 91 // cout << "opening file successfull" << end1 ;
Ishwar_Anjana 2:e0071aaa133c 92 printf("opening file successfull");
Ishwar_Anjana 2:e0071aaa133c 93 }
Ishwar_Anjana 2:e0071aaa133c 94
Ishwar_Anjana 2:e0071aaa133c 95 long fileSize = getFileSize(file);
Ishwar_Anjana 2:e0071aaa133c 96
Ishwar_Anjana 2:e0071aaa133c 97 fileBuf = new BYTE[fileSize];
Ishwar_Anjana 2:e0071aaa133c 98
Ishwar_Anjana 2:e0071aaa133c 99 fread(fileBuf, fileSize, 1, file);
Ishwar_Anjana 2:e0071aaa133c 100
Ishwar_Anjana 2:e0071aaa133c 101 for(int i=0; i<100; i++)
Ishwar_Anjana 2:e0071aaa133c 102 {
Ishwar_Anjana 2:e0071aaa133c 103 printf("%X", fileBuf[i]);
Ishwar_Anjana 2:e0071aaa133c 104 }
Ishwar_Anjana 2:e0071aaa133c 105
Ishwar_Anjana 2:e0071aaa133c 106 cin.get();
Ishwar_Anjana 2:e0071aaa133c 107 delete[]fileBuf;
Ishwar_Anjana 2:e0071aaa133c 108 fclose(file);
Ishwar_Anjana 2:e0071aaa133c 109 /////////////////////////////////////////////////////////////////////////////////
Ishwar_Anjana 2:e0071aaa133c 110
Ishwar_Anjana 2:e0071aaa133c 111
Ishwar_Anjana 2:e0071aaa133c 112
Ishwar_Anjana 2:e0071aaa133c 113 /////////////////////////////////////////////////////////////////////////////////
Ishwar_Anjana 2:e0071aaa133c 114
Ishwar_Anjana 2:e0071aaa133c 115
Ishwar_Anjana 2:e0071aaa133c 116
Ishwar_Anjana 2:e0071aaa133c 117 fp = fopen("/sd/mydir/sdtest.txt", "r+");
Ishwar_Anjana 2:e0071aaa133c 118 if(fp == NULL){
Ishwar_Anjana 2:e0071aaa133c 119 printf("error in opening file");
Ishwar_Anjana 2:e0071aaa133c 120 }
Ishwar_Anjana 2:e0071aaa133c 121
Ishwar_Anjana 2:e0071aaa133c 122 // fread(fp, buff, 10, readBuff);
Ishwar_Anjana 2:e0071aaa133c 123 char line[100]; /* Line buffer */
Ishwar_Anjana 2:e0071aaa133c 124 // FRESULT fr; /* FatFs return code */
Ishwar_Anjana 2:e0071aaa133c 125 /* Read all lines and display it */
Ishwar_Anjana 2:e0071aaa133c 126 while (fgets(line, sizeof line, fp)) {
Ishwar_Anjana 2:e0071aaa133c 127 printf(line);
Ishwar_Anjana 2:e0071aaa133c 128 }
Ishwar_Anjana 2:e0071aaa133c 129
Ishwar_Anjana 2:e0071aaa133c 130 fscanf(fp, line, sizeof line);
Ishwar_Anjana 2:e0071aaa133c 131
Ishwar_Anjana 2:e0071aaa133c 132 printf("Reading line %s", line);
Ishwar_Anjana 2:e0071aaa133c 133 }
Ishwar_Anjana 2:e0071aaa133c 134
Ishwar_Anjana 2:e0071aaa133c 135
Ishwar_Anjana 2:e0071aaa133c 136
Ishwar_Anjana 2:e0071aaa133c 137
Ishwar_Anjana 2:e0071aaa133c 138
Ishwar_Anjana 2:e0071aaa133c 139