button
Dependencies: BMI160 SDFileSystem USBDevice max32630fthr
Fork of MPSMAX by
files.cpp@1:6b969a803e1b, 2018-05-08 (annotated)
- Committer:
- FaizanAhmad
- Date:
- Tue May 08 13:45:29 2018 +0000
- Revision:
- 1:6b969a803e1b
Button
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
FaizanAhmad | 1:6b969a803e1b | 1 | #include "files.h" |
FaizanAhmad | 1:6b969a803e1b | 2 | |
FaizanAhmad | 1:6b969a803e1b | 3 | #if (MBED_MAJOR_VERSION == 2) |
FaizanAhmad | 1:6b969a803e1b | 4 | #include "SDFileSystem.h" |
FaizanAhmad | 1:6b969a803e1b | 5 | #elif (MBED_MAJOR_VERSION == 5) |
FaizanAhmad | 1:6b969a803e1b | 6 | #include "SDBlockDevice.h" |
FaizanAhmad | 1:6b969a803e1b | 7 | #include "FATFileSystem.h" |
FaizanAhmad | 1:6b969a803e1b | 8 | #endif |
FaizanAhmad | 1:6b969a803e1b | 9 | |
FaizanAhmad | 1:6b969a803e1b | 10 | #if (MBED_MAJOR_VERSION == 2) |
FaizanAhmad | 1:6b969a803e1b | 11 | SDFileSystem sd(D11, D12, D13, D10, "fs"); // do,di,clk,cs |
FaizanAhmad | 1:6b969a803e1b | 12 | #elif (MBED_MAJOR_VERSION == 5) |
FaizanAhmad | 1:6b969a803e1b | 13 | //SDBlockDevice sd(D11, D12, D13, D10, 8000000); |
FaizanAhmad | 1:6b969a803e1b | 14 | SDBlockDevice sd(SPI0_MOSI, SPI0_MISO, SPI0_SCK, SPI0_SS, 8000000); // For MAX32630FTHR |
FaizanAhmad | 1:6b969a803e1b | 15 | FATFileSystem fs("fs"); |
FaizanAhmad | 1:6b969a803e1b | 16 | #endif |
FaizanAhmad | 1:6b969a803e1b | 17 | |
FaizanAhmad | 1:6b969a803e1b | 18 | |
FaizanAhmad | 1:6b969a803e1b | 19 | int totaFunctionlFiles = 0; |
FaizanAhmad | 1:6b969a803e1b | 20 | int functionFileNumber = 1; |
FaizanAhmad | 1:6b969a803e1b | 21 | int functionActive = 0; |
FaizanAhmad | 1:6b969a803e1b | 22 | extern int functionPosition = 0; |
FaizanAhmad | 1:6b969a803e1b | 23 | Function ffunc; |
FaizanAhmad | 1:6b969a803e1b | 24 | |
FaizanAhmad | 1:6b969a803e1b | 25 | int initSDCard(){ |
FaizanAhmad | 1:6b969a803e1b | 26 | #if (MBED_MAJOR_VERSION == 5) |
FaizanAhmad | 1:6b969a803e1b | 27 | /* Init SD CARD reader */ |
FaizanAhmad | 1:6b969a803e1b | 28 | sd.init(); |
FaizanAhmad | 1:6b969a803e1b | 29 | fs.mount(&sd); |
FaizanAhmad | 1:6b969a803e1b | 30 | #endif |
FaizanAhmad | 1:6b969a803e1b | 31 | FILE* fp = fopen("/fs/mydata.txt", "a"); |
FaizanAhmad | 1:6b969a803e1b | 32 | if (fp != 0) { |
FaizanAhmad | 1:6b969a803e1b | 33 | pc.printf("writing something\n\r\n"); |
FaizanAhmad | 1:6b969a803e1b | 34 | fprintf(fp,"writing something\n\r\n"); |
FaizanAhmad | 1:6b969a803e1b | 35 | } else { |
FaizanAhmad | 1:6b969a803e1b | 36 | pc.printf("ERROR\r\n"); |
FaizanAhmad | 1:6b969a803e1b | 37 | } |
FaizanAhmad | 1:6b969a803e1b | 38 | fclose(fp); |
FaizanAhmad | 1:6b969a803e1b | 39 | return 0; |
FaizanAhmad | 1:6b969a803e1b | 40 | } |
FaizanAhmad | 1:6b969a803e1b | 41 | |
FaizanAhmad | 1:6b969a803e1b | 42 | int readFileNames(){ |
FaizanAhmad | 1:6b969a803e1b | 43 | DIR *d; |
FaizanAhmad | 1:6b969a803e1b | 44 | struct dirent *p; |
FaizanAhmad | 1:6b969a803e1b | 45 | |
FaizanAhmad | 1:6b969a803e1b | 46 | d = opendir("/fs/functions"); |
FaizanAhmad | 1:6b969a803e1b | 47 | if (d != NULL) { |
FaizanAhmad | 1:6b969a803e1b | 48 | while ((p = readdir(d)) != NULL) { |
FaizanAhmad | 1:6b969a803e1b | 49 | // printf(" - %s\n", p->d_name); |
FaizanAhmad | 1:6b969a803e1b | 50 | totaFunctionlFiles++; |
FaizanAhmad | 1:6b969a803e1b | 51 | } |
FaizanAhmad | 1:6b969a803e1b | 52 | } else { |
FaizanAhmad | 1:6b969a803e1b | 53 | printf("Could not open directory!\n"); |
FaizanAhmad | 1:6b969a803e1b | 54 | } |
FaizanAhmad | 1:6b969a803e1b | 55 | closedir(d); |
FaizanAhmad | 1:6b969a803e1b | 56 | printf("Total files = %d\n", totaFunctionlFiles); |
FaizanAhmad | 1:6b969a803e1b | 57 | return 0; |
FaizanAhmad | 1:6b969a803e1b | 58 | } |
FaizanAhmad | 1:6b969a803e1b | 59 | |
FaizanAhmad | 1:6b969a803e1b | 60 | int navFunctionFiles(int direction){ |
FaizanAhmad | 1:6b969a803e1b | 61 | |
FaizanAhmad | 1:6b969a803e1b | 62 | if(direction == DIR_UP){ |
FaizanAhmad | 1:6b969a803e1b | 63 | if(functionFileNumber < totaFunctionlFiles){ |
FaizanAhmad | 1:6b969a803e1b | 64 | functionFileNumber++; |
FaizanAhmad | 1:6b969a803e1b | 65 | }else{ |
FaizanAhmad | 1:6b969a803e1b | 66 | functionFileNumber = 1; |
FaizanAhmad | 1:6b969a803e1b | 67 | } |
FaizanAhmad | 1:6b969a803e1b | 68 | printf("UP: %d\n", functionFileNumber); |
FaizanAhmad | 1:6b969a803e1b | 69 | }else{ |
FaizanAhmad | 1:6b969a803e1b | 70 | if(functionFileNumber > 1){ |
FaizanAhmad | 1:6b969a803e1b | 71 | functionFileNumber--; |
FaizanAhmad | 1:6b969a803e1b | 72 | }else{ |
FaizanAhmad | 1:6b969a803e1b | 73 | functionFileNumber = totaFunctionlFiles; |
FaizanAhmad | 1:6b969a803e1b | 74 | } |
FaizanAhmad | 1:6b969a803e1b | 75 | printf("DOWN: %d\n", functionFileNumber); |
FaizanAhmad | 1:6b969a803e1b | 76 | } |
FaizanAhmad | 1:6b969a803e1b | 77 | return 0; |
FaizanAhmad | 1:6b969a803e1b | 78 | } |
FaizanAhmad | 1:6b969a803e1b | 79 | |
FaizanAhmad | 1:6b969a803e1b | 80 | int openFunctionFile(int inpFile){ |
FaizanAhmad | 1:6b969a803e1b | 81 | char fileLoc [40]; |
FaizanAhmad | 1:6b969a803e1b | 82 | sprintf (fileLoc, "/fs/functions/function%d.txt", inpFile); |
FaizanAhmad | 1:6b969a803e1b | 83 | printf ("[%s] is location %d file number\n", fileLoc, inpFile); |
FaizanAhmad | 1:6b969a803e1b | 84 | |
FaizanAhmad | 1:6b969a803e1b | 85 | FILE* fp = fopen(fileLoc, "r"); |
FaizanAhmad | 1:6b969a803e1b | 86 | ffunc.pos=0; |
FaizanAhmad | 1:6b969a803e1b | 87 | while (fscanf(fp, "%d,%d", &ffunc.x[ffunc.pos], &ffunc.t[ffunc.pos]) != EOF){ |
FaizanAhmad | 1:6b969a803e1b | 88 | ffunc.pos++; |
FaizanAhmad | 1:6b969a803e1b | 89 | } |
FaizanAhmad | 1:6b969a803e1b | 90 | |
FaizanAhmad | 1:6b969a803e1b | 91 | fclose(fp); |
FaizanAhmad | 1:6b969a803e1b | 92 | functionActive = 1; |
FaizanAhmad | 1:6b969a803e1b | 93 | functionPosition = 0; |
FaizanAhmad | 1:6b969a803e1b | 94 | printFunctionData(); |
FaizanAhmad | 1:6b969a803e1b | 95 | return 0; |
FaizanAhmad | 1:6b969a803e1b | 96 | } |
FaizanAhmad | 1:6b969a803e1b | 97 | |
FaizanAhmad | 1:6b969a803e1b | 98 | void printFunctionData(){ |
FaizanAhmad | 1:6b969a803e1b | 99 | printf ("total: %d\n", ffunc.pos); |
FaizanAhmad | 1:6b969a803e1b | 100 | for(int i=0; i<ffunc.pos; i++ ){ |
FaizanAhmad | 1:6b969a803e1b | 101 | printf ("%d, %d\n", ffunc.x[i], ffunc.t[i]); |
FaizanAhmad | 1:6b969a803e1b | 102 | } |
FaizanAhmad | 1:6b969a803e1b | 103 | } |
FaizanAhmad | 1:6b969a803e1b | 104 |