change mbed file

Dependencies:   SDFileSystem FXOS8700Q

Committer:
oliviab
Date:
Fri Mar 15 16:24:39 2019 +0000
Revision:
2:0a80eaa64fd4
Parent:
1:ea56355bccae
change mbed file - hopefully OS5??; prblem with SD

Who changed what in which revision?

UserRevisionLine numberNew contents of line
zer044 1:ea56355bccae 1 //#include "mbed.h"
zer044 1:ea56355bccae 2 //#include <string>
zer044 1:ea56355bccae 3 //#include "FXOS8700Q.h"
zer044 1:ea56355bccae 4 //#include "SDFileSystem.h"
zer044 1:ea56355bccae 5
zer044 1:ea56355bccae 6 #include "SensorData.h"
zer044 1:ea56355bccae 7
zer044 1:ea56355bccae 8
zer044 1:ea56355bccae 9 DigitalOut led(LED1);
zer044 1:ea56355bccae 10
zer044 1:ea56355bccae 11 #define UART3_tx PTC17
zer044 1:ea56355bccae 12 #define UART3_rx PTC16
zer044 1:ea56355bccae 13 //
zer044 1:ea56355bccae 14 //#define UART3_tx D8
zer044 1:ea56355bccae 15 //#define UART3_rx D2
zer044 1:ea56355bccae 16
zer044 1:ea56355bccae 17
zer044 1:ea56355bccae 18 SensorData mySensor;
zer044 1:ea56355bccae 19 //
oliviab 2:0a80eaa64fd4 20 //int main()
oliviab 2:0a80eaa64fd4 21 //{
oliviab 2:0a80eaa64fd4 22 //
oliviab 2:0a80eaa64fd4 23 //
oliviab 2:0a80eaa64fd4 24 // printf("Hello World !\n");
oliviab 2:0a80eaa64fd4 25 //
oliviab 2:0a80eaa64fd4 26 // while(1)
oliviab 2:0a80eaa64fd4 27 // {
oliviab 2:0a80eaa64fd4 28 // mySensor.run();
oliviab 2:0a80eaa64fd4 29 // }
oliviab 2:0a80eaa64fd4 30 //
oliviab 2:0a80eaa64fd4 31 //}
zer044 1:ea56355bccae 32
zer044 1:ea56355bccae 33
zer044 1:ea56355bccae 34
zer044 1:ea56355bccae 35 SensorData::SensorData(): sd(PTE3, PTE1, PTE2, PTE4, "sd"),
zer044 1:ea56355bccae 36 s_com(UART3_tx, UART3_rx),
zer044 1:ea56355bccae 37 acc(i2c, FXOS8700CQ_SLAVE_ADDR1),
zer044 1:ea56355bccae 38 mag(i2c, FXOS8700CQ_SLAVE_ADDR1)
zer044 1:ea56355bccae 39 {
zer044 1:ea56355bccae 40
zer044 1:ea56355bccae 41 }
zer044 1:ea56355bccae 42
zer044 1:ea56355bccae 43
zer044 1:ea56355bccae 44 void SensorData::run()
zer044 1:ea56355bccae 45 {
zer044 1:ea56355bccae 46 while (s_com.readable()) {
zer044 1:ea56355bccae 47 readData();
zer044 1:ea56355bccae 48 sensor_data();
zer044 1:ea56355bccae 49 }
zer044 1:ea56355bccae 50 }
zer044 1:ea56355bccae 51
zer044 1:ea56355bccae 52 void SensorData::initialise()
zer044 1:ea56355bccae 53 {
zer044 1:ea56355bccae 54
zer044 1:ea56355bccae 55 acc.enable(); //start accelerometer
zer044 1:ea56355bccae 56 mag.enable();
zer044 1:ea56355bccae 57
zer044 1:ea56355bccae 58 fp = fopen("/sd/sensors.txt", "r");
zer044 1:ea56355bccae 59 if (fp != NULL) {
zer044 1:ea56355bccae 60 fclose(fp);
zer044 1:ea56355bccae 61 remove("/sd/sensors.txt");
zer044 1:ea56355bccae 62 //pc.printf("Remove an existing file with the same name \n");
zer044 1:ea56355bccae 63 }
zer044 1:ea56355bccae 64 }
zer044 1:ea56355bccae 65
zer044 1:ea56355bccae 66 void SensorData::readData()
zer044 1:ea56355bccae 67 {
zer044 1:ea56355bccae 68 s_com.scanf("%s",rca1);
zer044 1:ea56355bccae 69 string rca2(rca1);
zer044 1:ea56355bccae 70 rca2 += "\n";
zer044 1:ea56355bccae 71 log_data(rca2);
zer044 1:ea56355bccae 72 printf(rca2.c_str());
zer044 1:ea56355bccae 73 }
zer044 1:ea56355bccae 74
zer044 1:ea56355bccae 75 void SensorData::sensor_data()
zer044 1:ea56355bccae 76 {
zer044 1:ea56355bccae 77
zer044 1:ea56355bccae 78 //get mag+accel data
zer044 1:ea56355bccae 79 motion_data_units_t acc_data, mag_data;
zer044 1:ea56355bccae 80
zer044 1:ea56355bccae 81 acc.getAxis(acc_data);
zer044 1:ea56355bccae 82 mag.getAxis(mag_data);
zer044 1:ea56355bccae 83 // pc.printf("\rACC: X=%1.4ff Y=%1.4ff Z=%1.4ff ", acc_data.x, acc_data.y, acc_data.z);
zer044 1:ea56355bccae 84 // pc.printf(" MAG: X=%4.1ff Y=%4.1ff Z=%4.1ff \r\n", mag_data.x, mag_data.y, mag_data.z);
zer044 1:ea56355bccae 85 // data = ("ACC: "+ acc_data.x + ", "+ acc_data.y + ", " + acc_data.z + "\n" +
zer044 1:ea56355bccae 86 // "MAG: " + mag_data.x + ", " + mag_data.y + ", " + mag_data.z + "\n");
zer044 1:ea56355bccae 87 data = "helloworld!\n"; //test
zer044 1:ea56355bccae 88 log_data(data);
zer044 1:ea56355bccae 89
zer044 1:ea56355bccae 90 // wait(0.5);
zer044 1:ea56355bccae 91
zer044 1:ea56355bccae 92 }
zer044 1:ea56355bccae 93
zer044 1:ea56355bccae 94
zer044 1:ea56355bccae 95 void SensorData::log_data(string dataToLog)
zer044 1:ea56355bccae 96 {
zer044 1:ea56355bccae 97
zer044 1:ea56355bccae 98 // printf("\nWriting data to the sd card \n");
zer044 1:ea56355bccae 99 fp = fopen("/sd/sensors.txt", "w");
zer044 1:ea56355bccae 100 if (fp == NULL) {
zer044 1:ea56355bccae 101 //pc.printf("Unable to write the file \n");
zer044 1:ea56355bccae 102 } else {
zer044 1:ea56355bccae 103 fprintf(fp, dataToLog.c_str());
zer044 1:ea56355bccae 104 fclose(fp);
zer044 1:ea56355bccae 105 //pc.printf("File successfully written! \n");
zer044 1:ea56355bccae 106 }
zer044 1:ea56355bccae 107
zer044 1:ea56355bccae 108 }
zer044 1:ea56355bccae 109
zer044 1:ea56355bccae 110 string SensorData::getDataString()
zer044 1:ea56355bccae 111 {
zer044 1:ea56355bccae 112 return data;
zer044 1:ea56355bccae 113 }