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
main.cpp@2:bcd60a69583f, 2015-04-02 (annotated)
- 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?
User | Revision | Line number | New 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 | } |