Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: MAX_M8Q_Capture EthernetInterface FXOS8700Q SDFileSystem eCompass_FPU_Lib mbed-rtos mbed
meta.cpp
- Committer:
- rlinnmoran
- Date:
- 2015-03-27
- Revision:
- 0:77857a36b4ff
- Child:
- 2:bcd60a69583f
File content as of revision 0:77857a36b4ff:
#include "meta.h" #include "mbed.h" #include "eCompass_Lib.h" #include "MAX_M8Q.h" #include <string> DigitalOut led(LED_RED); // eCompass external declarations extern axis6_t axis6; // Structure to store 6Axis data extern int captureCompass(void const *argument); // Prototype extern gpsinfo_t gpsinfo; // Structure that stores GPS data extern int captureMAX_M8Q(void); // Prototype extern int sd_append(char*); // Prototype // Constructor - builds an object that gathers 6axis and GPS data MetaData::MetaData() { //while(1){led = !led;wait(0.5);} // Capture compass measurement printf("Starting compass measurement...\r\n"); capture6Axis(&axis6); // Capture GPS measurement printf("Starting GPS measurement...\r\n"); captureGPS(&gpsinfo); } void MetaData::capture6Axis(axis6_t* metaAxis6){ // Perform compass measurement printf("Performing compass measurement\r\n"); if(captureCompass("")) printf("compass_thread failed:e001\r\n"); // Assign compass results to MetaData class printf("Assigning compass results to MetaData class\r\n"); // Roll, Pitch, Yaw and Compass from the eCompass algorithm roll = metaAxis6->roll; pitch = metaAxis6->pitch; yaw = metaAxis6->yaw; // Accelerometer data converted to G's fGax = metaAxis6->fGax; fGay = metaAxis6->fGay; fGaz = metaAxis6->fGaz; // Magnetometer data converted to UT's fUTmx = metaAxis6->fUTmx; fUTmy = metaAxis6->fUTmy; fUTmz = metaAxis6->fUTmz; // Data from Quaternion converted to floating point q0 = metaAxis6->q0; q1 = metaAxis6->q1; q2 = metaAxis6->q2; q3 = metaAxis6->q3; printf("Compass data measured & stored\r\n"); } void MetaData::captureGPS(gpsinfo_t* metaGpsinfo){ //Perform GPS Measurement printf("Performing GPS measurement\r\n"); if(captureMAX_M8Q()) printf("GPS (captureMAX_M8Q) failed:e001\r\n"); // Assign GPS results to MetaData class printf("Assign GPS results to MetaData class\r\n"); lat = metaGpsinfo->lat; // GPS Latitude (deg) lng = metaGpsinfo->lng; // GPS Longitude (deg) alt = metaGpsinfo->alt; // GPS Altitude (m) NS = metaGpsinfo->NS; // GPS NS indicator EW = metaGpsinfo->EW; // GPS EW indicator spd = metaGpsinfo->spd; // GPS Speed (kmph) utc = metaGpsinfo->utc; // GPS UTC time (hhmmss.ss) dte = metaGpsinfo->dte; // GPS Date (ddmmyy) printf("GPS data measured & stored\r\n"); } void MetaData::outputToCVSstring(void){ int n; n = sprintf(CSVOutput,"%.5f," "%.5f," "%.1f," "%c," "%c," "%.3f," "%.2f," "%d," "%d," "%d," "%d," "%2.3f," "%2.3f," "%2.3f," "%4.1f," "%4.1f," "%4.1f," "%1.4f," "%1.4f," "%1.4f," "%1.4f\r\n", lat, lng, alt, NS, EW, spd, utc, dte, roll, pitch, yaw, fGax, fGay, fGaz, fUTmx, fUTmy, fUTmz, q0, q1, q2, q3); printf("CSVOutput: %s\r\n",CSVOutput); } void MetaData::appendSDcard(void) { sd_append(CSVOutput); }