issue with send_message

Dependencies:   FXOS8700Q

Committer:
oliviab
Date:
Wed Mar 20 15:56:25 2019 +0000
Revision:
45:fc90043ed811
Child:
46:b5c571a9a5f5
addded sensorData files and changed send_message in main.cpp

Who changed what in which revision?

UserRevisionLine numberNew contents of line
oliviab 45:fc90043ed811 1
oliviab 45:fc90043ed811 2 #include "SensorData.h"
oliviab 45:fc90043ed811 3
oliviab 45:fc90043ed811 4
oliviab 45:fc90043ed811 5 #define UART3_tx PTC17
oliviab 45:fc90043ed811 6 #define UART3_rx PTC16
oliviab 45:fc90043ed811 7
oliviab 45:fc90043ed811 8
oliviab 45:fc90043ed811 9 SensorData::SensorData(): s_com(UART3_tx, UART3_rx),
oliviab 45:fc90043ed811 10 pc(USBTX, USBRX),
oliviab 45:fc90043ed811 11 i2c(PTE25, PTE24),
oliviab 45:fc90043ed811 12 acc(i2c, FXOS8700CQ_SLAVE_ADDR1),
oliviab 45:fc90043ed811 13 mag(i2c, FXOS8700CQ_SLAVE_ADDR1)
oliviab 45:fc90043ed811 14 {
oliviab 45:fc90043ed811 15
oliviab 45:fc90043ed811 16 }
oliviab 45:fc90043ed811 17
oliviab 45:fc90043ed811 18
oliviab 45:fc90043ed811 19 string SensorData::run()
oliviab 45:fc90043ed811 20 {
oliviab 45:fc90043ed811 21 pc.printf("hey");
oliviab 45:fc90043ed811 22 //initialise();
oliviab 45:fc90043ed811 23 if (s_com.readable()) {
oliviab 45:fc90043ed811 24 stringstream ss;
oliviab 45:fc90043ed811 25 ss << readData() << sensor_data();
oliviab 45:fc90043ed811 26 alldata = ss.str();
oliviab 45:fc90043ed811 27 pc.printf(alldata.c_str());
oliviab 45:fc90043ed811 28 return alldata.c_str();
oliviab 45:fc90043ed811 29
oliviab 45:fc90043ed811 30 }
oliviab 45:fc90043ed811 31 }
oliviab 45:fc90043ed811 32
oliviab 45:fc90043ed811 33 void SensorData::initialise()
oliviab 45:fc90043ed811 34 {
oliviab 45:fc90043ed811 35 acc.enable(); //start accelerometer
oliviab 45:fc90043ed811 36 mag.enable();
oliviab 45:fc90043ed811 37 pc.baud(115200);
oliviab 45:fc90043ed811 38 }
oliviab 45:fc90043ed811 39
oliviab 45:fc90043ed811 40 string SensorData::readData()
oliviab 45:fc90043ed811 41 {
oliviab 45:fc90043ed811 42 char rca1[128];
oliviab 45:fc90043ed811 43 s_com.scanf("%s",rca1);
oliviab 45:fc90043ed811 44 //Throw away first sentence
oliviab 45:fc90043ed811 45 memset(rca1, 0, sizeof(rca1));
oliviab 45:fc90043ed811 46 //Try again
oliviab 45:fc90043ed811 47 s_com.scanf("%s",rca1);
oliviab 45:fc90043ed811 48 string rca2(rca1);
oliviab 45:fc90043ed811 49 //rca2 += "\n";
oliviab 45:fc90043ed811 50 // log_data(rca2);
oliviab 45:fc90043ed811 51 printf(rca2.c_str());
oliviab 45:fc90043ed811 52 gpsdata = rca2;
oliviab 45:fc90043ed811 53 return rca2;
oliviab 45:fc90043ed811 54 }
oliviab 45:fc90043ed811 55
oliviab 45:fc90043ed811 56 string SensorData::sensor_data()
oliviab 45:fc90043ed811 57 {
oliviab 45:fc90043ed811 58 stringstream ss;
oliviab 45:fc90043ed811 59
oliviab 45:fc90043ed811 60 //get mag+accel data
oliviab 45:fc90043ed811 61 motion_data_units_t acc_data, mag_data;
oliviab 45:fc90043ed811 62
oliviab 45:fc90043ed811 63 acc.getAxis(acc_data);
oliviab 45:fc90043ed811 64 mag.getAxis(mag_data);
oliviab 45:fc90043ed811 65
oliviab 45:fc90043ed811 66 ss << "ACC: " << acc_data.x << "," << acc_data.y << "," << acc_data.z
oliviab 45:fc90043ed811 67 << "MAG: " << mag_data.x << "," << mag_data.y << "," << mag_data.z << "\n";
oliviab 45:fc90043ed811 68
oliviab 45:fc90043ed811 69 sensordata = ss.str();
oliviab 45:fc90043ed811 70
oliviab 45:fc90043ed811 71
oliviab 45:fc90043ed811 72 return ss.str();
oliviab 45:fc90043ed811 73 }
oliviab 45:fc90043ed811 74
oliviab 45:fc90043ed811 75 string SensorData::getDataString()
oliviab 45:fc90043ed811 76 {
oliviab 45:fc90043ed811 77 return alldata;
oliviab 45:fc90043ed811 78 }