change mbed file
Dependencies: SDFileSystem FXOS8700Q
SensorData1.cpp@2:0a80eaa64fd4, 2019-03-15 (annotated)
- 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?
User | Revision | Line number | New 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 | } |