change mbed file

Dependencies:   SDFileSystem FXOS8700Q

SensorData1.cpp

Committer:
oliviab
Date:
2019-03-15
Revision:
2:0a80eaa64fd4
Parent:
1:ea56355bccae

File content as of revision 2:0a80eaa64fd4:

//#include "mbed.h"
//#include <string>
//#include "FXOS8700Q.h"
//#include "SDFileSystem.h"

#include "SensorData.h"


DigitalOut led(LED1);

#define UART3_tx PTC17
#define UART3_rx PTC16
//
//#define UART3_tx D8
//#define UART3_rx D2


SensorData mySensor;
//
//int main()
//{
//
//
//    printf("Hello World !\n");
//
//    while(1)
//    {
//        mySensor.run();
//    }
//
//}



SensorData::SensorData(): sd(PTE3, PTE1, PTE2, PTE4, "sd"),
    s_com(UART3_tx, UART3_rx),
    acc(i2c, FXOS8700CQ_SLAVE_ADDR1),
    mag(i2c, FXOS8700CQ_SLAVE_ADDR1)
{

}


void SensorData::run()
{
    while (s_com.readable()) {
        readData();
        sensor_data();
    }
}

void SensorData::initialise()
{

    acc.enable(); //start accelerometer
    mag.enable();

    fp = fopen("/sd/sensors.txt", "r");
    if (fp != NULL) {
        fclose(fp);
        remove("/sd/sensors.txt");
        //pc.printf("Remove an existing file with the same name \n");
    }
}

void SensorData::readData()
{
    s_com.scanf("%s",rca1);
    string rca2(rca1);
    rca2 += "\n";
    log_data(rca2);
    printf(rca2.c_str());
}

void SensorData::sensor_data()
{

    //get mag+accel data
    motion_data_units_t acc_data, mag_data;

    acc.getAxis(acc_data);
    mag.getAxis(mag_data);
//    pc.printf("\rACC: X=%1.4ff Y=%1.4ff Z=%1.4ff  ", acc_data.x, acc_data.y, acc_data.z);
//    pc.printf("    MAG: X=%4.1ff Y=%4.1ff Z=%4.1ff \r\n", mag_data.x, mag_data.y, mag_data.z);
//    data = ("ACC: "+ acc_data.x + ", "+ acc_data.y + ", " + acc_data.z  + "\n" +
//            "MAG: " + mag_data.x + ", " + mag_data.y + ", " + mag_data.z + "\n");
    data = "helloworld!\n"; //test
    log_data(data);

//    wait(0.5);

}


void SensorData::log_data(string dataToLog)
{

    // printf("\nWriting data to the sd card \n");
    fp = fopen("/sd/sensors.txt", "w");
    if (fp == NULL) {
        //pc.printf("Unable to write the file \n");
    } else {
        fprintf(fp, dataToLog.c_str());
        fclose(fp);
        //pc.printf("File successfully written! \n");
    }

}

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