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