button

Dependencies:   BMI160 SDFileSystem USBDevice max32630fthr

Fork of MPSMAX by Faizan Ahmad

Committer:
FaizanAhmad
Date:
Tue May 08 13:45:42 2018 +0000
Revision:
2:5767f3f6909f
Parent:
1:6b969a803e1b
\button

Who changed what in which revision?

UserRevisionLine numberNew 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