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@0:77857a36b4ff, 2015-03-27 (annotated)
- Committer:
- rlinnmoran
- Date:
- Fri Mar 27 08:35:29 2015 +0000
- Revision:
- 0:77857a36b4ff
- Child:
- 2:bcd60a69583f
Initial version.; ; Working:; - Capture GPS ; - Capture 6 Axis; - Write to CVS on SD (crude); ; Issues:; - Update freq slow (5s); - No UDP; - Improve SD functions; - Clean MetaData class code + docs; - No status led, start/stop button; - Param for printf's
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 | 0:77857a36b4ff | 3 | |
rlinnmoran | 0:77857a36b4ff | 4 | extern int eCompass_init(void); |
rlinnmoran | 0:77857a36b4ff | 5 | |
rlinnmoran | 0:77857a36b4ff | 6 | |
rlinnmoran | 0:77857a36b4ff | 7 | Serial pc(USBTX, USBRX); |
rlinnmoran | 0:77857a36b4ff | 8 | |
rlinnmoran | 0:77857a36b4ff | 9 | |
rlinnmoran | 0:77857a36b4ff | 10 | int main(void) |
rlinnmoran | 0:77857a36b4ff | 11 | { |
rlinnmoran | 0:77857a36b4ff | 12 | printf("Setting up eComapss\r\n"); |
rlinnmoran | 0:77857a36b4ff | 13 | if (eCompass_init()) |
rlinnmoran | 0:77857a36b4ff | 14 | printf("Issue setting up compass\r\n"); |
rlinnmoran | 0:77857a36b4ff | 15 | |
rlinnmoran | 0:77857a36b4ff | 16 | while(1){ |
rlinnmoran | 0:77857a36b4ff | 17 | printf("Creating MetaData Object\r\n"); |
rlinnmoran | 0:77857a36b4ff | 18 | MetaData _metadata; |
rlinnmoran | 0:77857a36b4ff | 19 | |
rlinnmoran | 0:77857a36b4ff | 20 | printf("Creating CSV Output"); |
rlinnmoran | 0:77857a36b4ff | 21 | _metadata.outputToCVSstring(); |
rlinnmoran | 0:77857a36b4ff | 22 | |
rlinnmoran | 0:77857a36b4ff | 23 | printf("Save to CSV file"); |
rlinnmoran | 0:77857a36b4ff | 24 | _metadata.appendSDcard(); |
rlinnmoran | 0:77857a36b4ff | 25 | |
rlinnmoran | 0:77857a36b4ff | 26 | printf("###done####\r\n"); |
rlinnmoran | 0:77857a36b4ff | 27 | |
rlinnmoran | 0:77857a36b4ff | 28 | wait(1); |
rlinnmoran | 0:77857a36b4ff | 29 | } |
rlinnmoran | 0:77857a36b4ff | 30 | |
rlinnmoran | 0:77857a36b4ff | 31 | // while(1); |
rlinnmoran | 0:77857a36b4ff | 32 | } |
rlinnmoran | 0:77857a36b4ff | 33 | |
rlinnmoran | 0:77857a36b4ff | 34 | /* |
rlinnmoran | 0:77857a36b4ff | 35 | |
rlinnmoran | 0:77857a36b4ff | 36 | - Init routines for 6axis + GPS (none) + UDP + Filesystem |
rlinnmoran | 0:77857a36b4ff | 37 | |
rlinnmoran | 0:77857a36b4ff | 38 | - Wait some time to let system settle |
rlinnmoran | 0:77857a36b4ff | 39 | |
rlinnmoran | 0:77857a36b4ff | 40 | --> (loop re-entry) |
rlinnmoran | 0:77857a36b4ff | 41 | - Create new MetaData object that goes off and samples 6axis and all GPS components (mainly RMC message) |
rlinnmoran | 0:77857a36b4ff | 42 | --- In object code (constructor), include the code for 6axis + GPS |
rlinnmoran | 0:77857a36b4ff | 43 | - Create string in CSV format from MetaData |
rlinnmoran | 0:77857a36b4ff | 44 | |
rlinnmoran | 0:77857a36b4ff | 45 | #Improvement - add push button/led to start/stop data logging |
rlinnmoran | 0:77857a36b4ff | 46 | - Append string to file |
rlinnmoran | 0:77857a36b4ff | 47 | - Create new UDP frame from string |
rlinnmoran | 0:77857a36b4ff | 48 | - Wait for 1 sec, loop to re-entry point. |
rlinnmoran | 0:77857a36b4ff | 49 | |
rlinnmoran | 0:77857a36b4ff | 50 | */ |
rlinnmoran | 0:77857a36b4ff | 51 | |
rlinnmoran | 0:77857a36b4ff | 52 | /* ### Error Log ### |
rlinnmoran | 0:77857a36b4ff | 53 | e001 - GPS/Compass Function did not complete on MetaData class constructor |
rlinnmoran | 0:77857a36b4ff | 54 | */ |