Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
ICE-Application/src/add-ons/ConfigFS/ConfigFs.cpp@0:61364762ee0e, 2017-01-24 (annotated)
- Committer:
- jmarkel44
- Date:
- Tue Jan 24 19:05:33 2017 +0000
- Revision:
- 0:61364762ee0e
Port from IAR to Nucleo-F412 board
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jmarkel44 | 0:61364762ee0e | 1 | #include "ConfigFs.h" |
jmarkel44 | 0:61364762ee0e | 2 | #include "mbed.h" |
jmarkel44 | 0:61364762ee0e | 3 | #include "mfs.h" |
jmarkel44 | 0:61364762ee0e | 4 | |
jmarkel44 | 0:61364762ee0e | 5 | bool ConfigFs::saveUserFile(const char *filename, void *file_buf, int file_size) |
jmarkel44 | 0:61364762ee0e | 6 | { |
jmarkel44 | 0:61364762ee0e | 7 | // printf("Writing filename=%s, size=%d\r\n", filename, file_size); |
jmarkel44 | 0:61364762ee0e | 8 | mfs fs0(0xA0); |
jmarkel44 | 0:61364762ee0e | 9 | fs0.createFile((char *)filename); |
jmarkel44 | 0:61364762ee0e | 10 | file *fp = new file(&fs0, (char *)filename, AWRITE); |
jmarkel44 | 0:61364762ee0e | 11 | fp->write((char *)file_buf, file_size); |
jmarkel44 | 0:61364762ee0e | 12 | if( fp->flush() != 0 ) { |
jmarkel44 | 0:61364762ee0e | 13 | printf("Flush Failed\r\n"); |
jmarkel44 | 0:61364762ee0e | 14 | } |
jmarkel44 | 0:61364762ee0e | 15 | delete fp; |
jmarkel44 | 0:61364762ee0e | 16 | return true; |
jmarkel44 | 0:61364762ee0e | 17 | } |
jmarkel44 | 0:61364762ee0e | 18 | |
jmarkel44 | 0:61364762ee0e | 19 | bool ConfigFs::readUserFile(const char *filename, void *file_buf, int file_size) |
jmarkel44 | 0:61364762ee0e | 20 | { |
jmarkel44 | 0:61364762ee0e | 21 | mfs fs0(0xA0); |
jmarkel44 | 0:61364762ee0e | 22 | // printf("%s, len=%d\r\n", filename, strlen(filename)); |
jmarkel44 | 0:61364762ee0e | 23 | file *fp = new file(&fs0, (char *)filename, AWRITE); |
jmarkel44 | 0:61364762ee0e | 24 | fp->read((char *)file_buf, file_size); |
jmarkel44 | 0:61364762ee0e | 25 | delete fp; |
jmarkel44 | 0:61364762ee0e | 26 | // printf("File Read: %s; bytes=%d, len=%d\n\r", (char *)file_buf, file_size, strlen((char *)file_buf)); |
jmarkel44 | 0:61364762ee0e | 27 | return true; |
jmarkel44 | 0:61364762ee0e | 28 | } |
jmarkel44 | 0:61364762ee0e | 29 | |
jmarkel44 | 0:61364762ee0e | 30 | bool ConfigFs::deleteUserFile(const char *filename) |
jmarkel44 | 0:61364762ee0e | 31 | { |
jmarkel44 | 0:61364762ee0e | 32 | mfs fs0(0xA0); |
jmarkel44 | 0:61364762ee0e | 33 | fs0.removeFile((char *)filename); |
jmarkel44 | 0:61364762ee0e | 34 | return true; |
jmarkel44 | 0:61364762ee0e | 35 | } |
jmarkel44 | 0:61364762ee0e | 36 | |
jmarkel44 | 0:61364762ee0e | 37 | std::vector<std::string> ConfigFs::listUserFiles() |
jmarkel44 | 0:61364762ee0e | 38 | { |
jmarkel44 | 0:61364762ee0e | 39 | mfs fs0(0xA0); |
jmarkel44 | 0:61364762ee0e | 40 | unsigned int n; |
jmarkel44 | 0:61364762ee0e | 41 | char found_file[FILENAME_LENGTH]; |
jmarkel44 | 0:61364762ee0e | 42 | std::vector<std::string> filelist; |
jmarkel44 | 0:61364762ee0e | 43 | |
jmarkel44 | 0:61364762ee0e | 44 | n=0; |
jmarkel44 | 0:61364762ee0e | 45 | while (1) { |
jmarkel44 | 0:61364762ee0e | 46 | if (fs0.findNextFile(n, found_file, &n) == 0 ) { |
jmarkel44 | 0:61364762ee0e | 47 | filelist.push_back(found_file); |
jmarkel44 | 0:61364762ee0e | 48 | } else { |
jmarkel44 | 0:61364762ee0e | 49 | break; // Reach end of fs |
jmarkel44 | 0:61364762ee0e | 50 | } |
jmarkel44 | 0:61364762ee0e | 51 | n++; |
jmarkel44 | 0:61364762ee0e | 52 | } |
jmarkel44 | 0:61364762ee0e | 53 | return filelist; |
jmarkel44 | 0:61364762ee0e | 54 | |
jmarkel44 | 0:61364762ee0e | 55 | } |