More HACMan stuff
Dependencies: FatFileSystem SDFileSystem mbed
txtFile.cpp@0:f433ff34d66b, 2015-06-11 (annotated)
- Committer:
- TBSliver
- Date:
- Thu Jun 11 13:49:01 2015 +0000
- Revision:
- 0:f433ff34d66b
Initial no idea whats here commit
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
TBSliver | 0:f433ff34d66b | 1 | #include "txtFile.h" |
TBSliver | 0:f433ff34d66b | 2 | |
TBSliver | 0:f433ff34d66b | 3 | /** |
TBSliver | 0:f433ff34d66b | 4 | * Constructor when called opens a file |
TBSliver | 0:f433ff34d66b | 5 | * |
TBSliver | 0:f433ff34d66b | 6 | * @param fileAddr |
TBSliver | 0:f433ff34d66b | 7 | * the address of the file, either local, sd or whatever |
TBSliver | 0:f433ff34d66b | 8 | * @param readWrite |
TBSliver | 0:f433ff34d66b | 9 | * whether reading or writing to the file |
TBSliver | 0:f433ff34d66b | 10 | */ |
TBSliver | 0:f433ff34d66b | 11 | TxtFile::TxtFile(char fileAddr[], char *readWrite) { |
TBSliver | 0:f433ff34d66b | 12 | |
TBSliver | 0:f433ff34d66b | 13 | |
TBSliver | 0:f433ff34d66b | 14 | if ((fp = fopen(fileAddr, readWrite)) == NULL) { |
TBSliver | 0:f433ff34d66b | 15 | isFileOpen = false; |
TBSliver | 0:f433ff34d66b | 16 | } else { |
TBSliver | 0:f433ff34d66b | 17 | isFileOpen = true; |
TBSliver | 0:f433ff34d66b | 18 | } |
TBSliver | 0:f433ff34d66b | 19 | } |
TBSliver | 0:f433ff34d66b | 20 | |
TBSliver | 0:f433ff34d66b | 21 | /** |
TBSliver | 0:f433ff34d66b | 22 | * Destructor when called closes the open file |
TBSliver | 0:f433ff34d66b | 23 | */ |
TBSliver | 0:f433ff34d66b | 24 | TxtFile::~TxtFile() { |
TBSliver | 0:f433ff34d66b | 25 | closeFile(); |
TBSliver | 0:f433ff34d66b | 26 | } |
TBSliver | 0:f433ff34d66b | 27 | |
TBSliver | 0:f433ff34d66b | 28 | /** |
TBSliver | 0:f433ff34d66b | 29 | * Returns true if the file is open |
TBSliver | 0:f433ff34d66b | 30 | * |
TBSliver | 0:f433ff34d66b | 31 | * @returns isFileOpen |
TBSliver | 0:f433ff34d66b | 32 | */ |
TBSliver | 0:f433ff34d66b | 33 | bool TxtFile::isOpen() { |
TBSliver | 0:f433ff34d66b | 34 | return isFileOpen; |
TBSliver | 0:f433ff34d66b | 35 | } |
TBSliver | 0:f433ff34d66b | 36 | |
TBSliver | 0:f433ff34d66b | 37 | /** |
TBSliver | 0:f433ff34d66b | 38 | * Checks if the file is open, and closes it if it is |
TBSliver | 0:f433ff34d66b | 39 | * |
TBSliver | 0:f433ff34d66b | 40 | * @returns isClosed |
TBSliver | 0:f433ff34d66b | 41 | * returns true if a file was closed, false if not |
TBSliver | 0:f433ff34d66b | 42 | */ |
TBSliver | 0:f433ff34d66b | 43 | bool TxtFile::closeFile() { |
TBSliver | 0:f433ff34d66b | 44 | if (isOpen()) { |
TBSliver | 0:f433ff34d66b | 45 | fclose(fp); |
TBSliver | 0:f433ff34d66b | 46 | return true; |
TBSliver | 0:f433ff34d66b | 47 | } else |
TBSliver | 0:f433ff34d66b | 48 | return false; |
TBSliver | 0:f433ff34d66b | 49 | } |
TBSliver | 0:f433ff34d66b | 50 | |
TBSliver | 0:f433ff34d66b | 51 | int TxtFile::frameTime(int frame) { //a frame is 5 digits of timer, 128x32 bytes of data, with 33 line ends |
TBSliver | 0:f433ff34d66b | 52 | fseek(fp, (frame * 4167), SEEK_SET); |
TBSliver | 0:f433ff34d66b | 53 | char numberIn[5]; |
TBSliver | 0:f433ff34d66b | 54 | for (int i=0;i<5;i++) |
TBSliver | 0:f433ff34d66b | 55 | { |
TBSliver | 0:f433ff34d66b | 56 | numberIn[i] = fgetc(fp); |
TBSliver | 0:f433ff34d66b | 57 | } |
TBSliver | 0:f433ff34d66b | 58 | return atoi(numberIn); |
TBSliver | 0:f433ff34d66b | 59 | } |
TBSliver | 0:f433ff34d66b | 60 | |
TBSliver | 0:f433ff34d66b | 61 | int TxtFile::totalFrames() { |
TBSliver | 0:f433ff34d66b | 62 | fseek(fp, 0, SEEK_END); // seek to end of file |
TBSliver | 0:f433ff34d66b | 63 | int size = ftell(fp); // get current file pointer |
TBSliver | 0:f433ff34d66b | 64 | fseek(fp, 0, SEEK_SET); // seek back to beginning of file |
TBSliver | 0:f433ff34d66b | 65 | return (size + 2)/4167; |
TBSliver | 0:f433ff34d66b | 66 | } |
TBSliver | 0:f433ff34d66b | 67 | |
TBSliver | 0:f433ff34d66b | 68 | char TxtFile::getChar(int seek) { |
TBSliver | 0:f433ff34d66b | 69 | fseek(fp, seek, SEEK_SET); |
TBSliver | 0:f433ff34d66b | 70 | return fgetc(fp); |
TBSliver | 0:f433ff34d66b | 71 | } |