K64F based data logger for GPS (ublox MAX M8Q) & 6 Axis Sensor (FXOS8700Q) - Outputs to SD + UDP - Uses FRDM K64F + ublox "Cellular and positioning shield" (3G version)

Dependencies:   MAX_M8Q_Capture EthernetInterface FXOS8700Q SDFileSystem eCompass_FPU_Lib mbed-rtos mbed

Committer:
rlinnmoran
Date:
Thu Apr 02 20:09:44 2015 +0000
Revision:
2:bcd60a69583f
Parent:
0:77857a36b4ff
Add/Updated; - SD Card logging; - UDP logging; - Status LED; - Error handling; ; To do:; - Recover from error; - Documentation

Who changed what in which revision?

UserRevisionLine numberNew contents of line
rlinnmoran 0:77857a36b4ff 1 #include "mbed.h"
rlinnmoran 0:77857a36b4ff 2 #include "meta.h"
rlinnmoran 2:bcd60a69583f 3 #include "debug.h"
rlinnmoran 0:77857a36b4ff 4
rlinnmoran 0:77857a36b4ff 5 extern int eCompass_init(void);
rlinnmoran 2:bcd60a69583f 6 extern int EthernetInit(void);
rlinnmoran 0:77857a36b4ff 7
rlinnmoran 0:77857a36b4ff 8 Serial pc(USBTX, USBRX);
rlinnmoran 2:bcd60a69583f 9 DigitalOut ledr(LED_RED,1);
rlinnmoran 2:bcd60a69583f 10 DigitalOut ledb(LED_BLUE,1);
rlinnmoran 2:bcd60a69583f 11 DigitalOut ledg(LED_GREEN,1);
rlinnmoran 0:77857a36b4ff 12
rlinnmoran 0:77857a36b4ff 13 int main(void)
rlinnmoran 0:77857a36b4ff 14 {
rlinnmoran 2:bcd60a69583f 15 ledr=0; // Status that project has started (LED=Red)
rlinnmoran 0:77857a36b4ff 16
rlinnmoran 2:bcd60a69583f 17 // Wait for SD Card to stabalise
rlinnmoran 2:bcd60a69583f 18 wait(5);
rlinnmoran 2:bcd60a69583f 19
rlinnmoran 2:bcd60a69583f 20 D(printf("Setting up eComapss\r\n"));
rlinnmoran 2:bcd60a69583f 21 if (eCompass_init() != NULL)
rlinnmoran 2:bcd60a69583f 22 D(printf("##!!## Issue setting up compass\r\n"));
rlinnmoran 2:bcd60a69583f 23
rlinnmoran 2:bcd60a69583f 24 D(printf("Setting up Ethernet Port\r\n"));
rlinnmoran 2:bcd60a69583f 25 if (EthernetInit() != NULL)
rlinnmoran 2:bcd60a69583f 26 D(printf("##!!## Issue setting up Ethernet Port\r\n"));
rlinnmoran 2:bcd60a69583f 27
rlinnmoran 2:bcd60a69583f 28 while(1){
rlinnmoran 2:bcd60a69583f 29
rlinnmoran 2:bcd60a69583f 30 ledg=0; // Status that main loop was reached
rlinnmoran 2:bcd60a69583f 31
rlinnmoran 0:77857a36b4ff 32 printf("Creating MetaData Object\r\n");
rlinnmoran 0:77857a36b4ff 33 MetaData _metadata;
rlinnmoran 0:77857a36b4ff 34
rlinnmoran 2:bcd60a69583f 35 D(printf("Creating CSV Output\r\n"));
rlinnmoran 0:77857a36b4ff 36 _metadata.outputToCVSstring();
rlinnmoran 0:77857a36b4ff 37
rlinnmoran 2:bcd60a69583f 38 ledb=!ledb; // Status that sensor data was gathered
rlinnmoran 2:bcd60a69583f 39
rlinnmoran 2:bcd60a69583f 40 D(printf("Save to CSV file\r\n"));
rlinnmoran 2:bcd60a69583f 41 if(_metadata.appendSDcard() != NULL)
rlinnmoran 2:bcd60a69583f 42 D(printf("##!!## Issue writing to SD Card\r\n"));
rlinnmoran 0:77857a36b4ff 43
rlinnmoran 2:bcd60a69583f 44 D(printf("Transmit to UDP\r\n"));
rlinnmoran 2:bcd60a69583f 45 if(_metadata.transmitUDP() != NULL)
rlinnmoran 2:bcd60a69583f 46 D(printf("##!!## Issue transmitting over UDP\r\n"));
rlinnmoran 2:bcd60a69583f 47
rlinnmoran 2:bcd60a69583f 48 printf("###done####\r\n\n\n\n\n\n\n");
rlinnmoran 2:bcd60a69583f 49
rlinnmoran 0:77857a36b4ff 50 }
rlinnmoran 0:77857a36b4ff 51
rlinnmoran 2:bcd60a69583f 52 return -1;
rlinnmoran 2:bcd60a69583f 53 }