issue with send_message

Dependencies:   FXOS8700Q

Committer:
zer044
Date:
Wed Mar 20 20:56:02 2019 +0000
Revision:
46:b5c571a9a5f5
Parent:
45:fc90043ed811
Changed how the output string is received then did some casting to get data out.

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
zer044 46:b5c571a9a5f5 19 void SensorData::run()
oliviab 45:fc90043ed811 20 {
oliviab 45:fc90043ed811 21 pc.printf("hey");
oliviab 45:fc90043ed811 22 //initialise();
zer044 46:b5c571a9a5f5 23 if (s_com.readable())
zer044 46:b5c571a9a5f5 24 {
oliviab 45:fc90043ed811 25 stringstream ss;
oliviab 45:fc90043ed811 26 ss << readData() << sensor_data();
oliviab 45:fc90043ed811 27 alldata = ss.str();
oliviab 45:fc90043ed811 28 pc.printf(alldata.c_str());
oliviab 45:fc90043ed811 29 }
oliviab 45:fc90043ed811 30 }
oliviab 45:fc90043ed811 31
oliviab 45:fc90043ed811 32 void SensorData::initialise()
oliviab 45:fc90043ed811 33 {
oliviab 45:fc90043ed811 34 acc.enable(); //start accelerometer
oliviab 45:fc90043ed811 35 mag.enable();
oliviab 45:fc90043ed811 36 pc.baud(115200);
oliviab 45:fc90043ed811 37 }
oliviab 45:fc90043ed811 38
oliviab 45:fc90043ed811 39 string SensorData::readData()
oliviab 45:fc90043ed811 40 {
oliviab 45:fc90043ed811 41 char rca1[128];
oliviab 45:fc90043ed811 42 s_com.scanf("%s",rca1);
oliviab 45:fc90043ed811 43 //Throw away first sentence
oliviab 45:fc90043ed811 44 memset(rca1, 0, sizeof(rca1));
oliviab 45:fc90043ed811 45 //Try again
oliviab 45:fc90043ed811 46 s_com.scanf("%s",rca1);
oliviab 45:fc90043ed811 47 string rca2(rca1);
oliviab 45:fc90043ed811 48 //rca2 += "\n";
oliviab 45:fc90043ed811 49 // log_data(rca2);
oliviab 45:fc90043ed811 50 printf(rca2.c_str());
oliviab 45:fc90043ed811 51 gpsdata = rca2;
oliviab 45:fc90043ed811 52 return rca2;
oliviab 45:fc90043ed811 53 }
oliviab 45:fc90043ed811 54
oliviab 45:fc90043ed811 55 string SensorData::sensor_data()
oliviab 45:fc90043ed811 56 {
oliviab 45:fc90043ed811 57 stringstream ss;
oliviab 45:fc90043ed811 58
oliviab 45:fc90043ed811 59 //get mag+accel data
oliviab 45:fc90043ed811 60 motion_data_units_t acc_data, mag_data;
oliviab 45:fc90043ed811 61
oliviab 45:fc90043ed811 62 acc.getAxis(acc_data);
oliviab 45:fc90043ed811 63 mag.getAxis(mag_data);
oliviab 45:fc90043ed811 64
oliviab 45:fc90043ed811 65 ss << "ACC: " << acc_data.x << "," << acc_data.y << "," << acc_data.z
oliviab 45:fc90043ed811 66 << "MAG: " << mag_data.x << "," << mag_data.y << "," << mag_data.z << "\n";
oliviab 45:fc90043ed811 67
oliviab 45:fc90043ed811 68 sensordata = ss.str();
oliviab 45:fc90043ed811 69
oliviab 45:fc90043ed811 70
oliviab 45:fc90043ed811 71 return ss.str();
oliviab 45:fc90043ed811 72 }
oliviab 45:fc90043ed811 73
oliviab 45:fc90043ed811 74 string SensorData::getDataString()
oliviab 45:fc90043ed811 75 {
oliviab 45:fc90043ed811 76 return alldata;
oliviab 45:fc90043ed811 77 }