issue with send_message

Dependencies:   FXOS8700Q

SensorData.cpp

Committer:
zer044
Date:
2019-03-20
Revision:
46:b5c571a9a5f5
Parent:
45:fc90043ed811

File content as of revision 46:b5c571a9a5f5:


#include "SensorData.h"


#define UART3_tx PTC17
#define UART3_rx PTC16


SensorData::SensorData(): s_com(UART3_tx, UART3_rx),
    pc(USBTX, USBRX),
    i2c(PTE25, PTE24),
    acc(i2c, FXOS8700CQ_SLAVE_ADDR1),
    mag(i2c, FXOS8700CQ_SLAVE_ADDR1)
{

}


void SensorData::run()
{
    pc.printf("hey");
    //initialise();
    if (s_com.readable()) 
    {
        stringstream ss;
        ss << readData() << sensor_data();
        alldata = ss.str();
        pc.printf(alldata.c_str());
    }
}

void SensorData::initialise()
{
    acc.enable(); //start accelerometer
    mag.enable();
    pc.baud(115200);
}

string SensorData::readData()
{
    char rca1[128];
    s_com.scanf("%s",rca1);
    //Throw away first sentence
    memset(rca1, 0, sizeof(rca1));
    //Try again
    s_com.scanf("%s",rca1);
    string rca2(rca1);
    //rca2 += "\n";
   // log_data(rca2);
    printf(rca2.c_str());
    gpsdata = rca2;
    return rca2;
}

string SensorData::sensor_data()
{
    stringstream ss;
    
    //get mag+accel data
    motion_data_units_t acc_data, mag_data;

    acc.getAxis(acc_data);
    mag.getAxis(mag_data);
       
        ss << "ACC: " << acc_data.x << "," << acc_data.y << "," << acc_data.z 
            << "MAG: " << mag_data.x << "," << mag_data.y << "," << mag_data.z << "\n";
            
    sensordata = ss.str();
    
    
    return ss.str();
}

string SensorData::getDataString()
{
    return alldata;
}