added spectrometer timeout
Dependencies: SDFileSystem mbed
Fork of All_Combined_Real2 by
main.cpp@0:26713d1db198, 2016-03-10 (annotated)
- Committer:
- jphbergeson
- Date:
- Thu Mar 10 17:27:10 2016 +0000
- Revision:
- 0:26713d1db198
- Child:
- 1:5fa445bd14a6
Working w/ led flashing
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
jphbergeson | 0:26713d1db198 | 1 | #include "mbed.h" |
jphbergeson | 0:26713d1db198 | 2 | #include "nmea.h" |
jphbergeson | 0:26713d1db198 | 3 | #include "SDFileSystem.h" |
jphbergeson | 0:26713d1db198 | 4 | |
jphbergeson | 0:26713d1db198 | 5 | #define BUF_SIZE 1024 |
jphbergeson | 0:26713d1db198 | 6 | |
jphbergeson | 0:26713d1db198 | 7 | DigitalOut gpo(D0); |
jphbergeson | 0:26713d1db198 | 8 | DigitalOut led(LED_RED); |
jphbergeson | 0:26713d1db198 | 9 | |
jphbergeson | 0:26713d1db198 | 10 | Serial duino(PTC4, PTC3); |
jphbergeson | 0:26713d1db198 | 11 | Serial pc(USBTX, USBRX); |
jphbergeson | 0:26713d1db198 | 12 | |
jphbergeson | 0:26713d1db198 | 13 | /************************************************** |
jphbergeson | 0:26713d1db198 | 14 | ** SD FILE SYSTEM ** |
jphbergeson | 0:26713d1db198 | 15 | **************************************************/ |
jphbergeson | 0:26713d1db198 | 16 | SDFileSystem sd(PTE3, PTE1, PTE2, PTE4, "sd"); |
jphbergeson | 0:26713d1db198 | 17 | FILE *fpData; |
jphbergeson | 0:26713d1db198 | 18 | |
jphbergeson | 0:26713d1db198 | 19 | int main() |
jphbergeson | 0:26713d1db198 | 20 | { |
jphbergeson | 0:26713d1db198 | 21 | pc.baud(115200); // make sure to set computer TERA Term or whatever to 115200 baud!!! |
jphbergeson | 0:26713d1db198 | 22 | duino.baud(9600); |
jphbergeson | 0:26713d1db198 | 23 | pc.printf("Initializing ...\r\n"); |
jphbergeson | 0:26713d1db198 | 24 | char buffer[BUF_SIZE]; |
jphbergeson | 0:26713d1db198 | 25 | |
jphbergeson | 0:26713d1db198 | 26 | while (true) { |
jphbergeson | 0:26713d1db198 | 27 | |
jphbergeson | 0:26713d1db198 | 28 | led = !led; |
jphbergeson | 0:26713d1db198 | 29 | |
jphbergeson | 0:26713d1db198 | 30 | get_nmea(&duino, buffer, BUF_SIZE); |
jphbergeson | 0:26713d1db198 | 31 | |
jphbergeson | 0:26713d1db198 | 32 | struct NMEA_data nmea = parse_line(buffer); |
jphbergeson | 0:26713d1db198 | 33 | |
jphbergeson | 0:26713d1db198 | 34 | // determine whether there's a lock |
jphbergeson | 0:26713d1db198 | 35 | char lock_str[BUF_SIZE]; |
jphbergeson | 0:26713d1db198 | 36 | if ( nmea.lock_flag == 'A' ) |
jphbergeson | 0:26713d1db198 | 37 | sprintf(lock_str, "Has lock"); |
jphbergeson | 0:26713d1db198 | 38 | else |
jphbergeson | 0:26713d1db198 | 39 | sprintf(lock_str, "No lock"); |
jphbergeson | 0:26713d1db198 | 40 | |
jphbergeson | 0:26713d1db198 | 41 | // assemble data into summary string |
jphbergeson | 0:26713d1db198 | 42 | char status_str[BUF_SIZE]; |
jphbergeson | 0:26713d1db198 | 43 | sprintf(status_str, "%02d:%02d:%02d, %d/%d/%d, %dd %lf' %c %dd %lf' %c, %s\r\n", |
jphbergeson | 0:26713d1db198 | 44 | nmea.hours, nmea.minutes, nmea.seconds, |
jphbergeson | 0:26713d1db198 | 45 | nmea.month, nmea.day, nmea.year, |
jphbergeson | 0:26713d1db198 | 46 | nmea.latitude, nmea.latitude_minutes, nmea.latitude_direction, |
jphbergeson | 0:26713d1db198 | 47 | nmea.longitude, nmea.longitude_minutes, nmea.longitude_direction, lock_str); |
jphbergeson | 0:26713d1db198 | 48 | |
jphbergeson | 0:26713d1db198 | 49 | // print to pc, sd card |
jphbergeson | 0:26713d1db198 | 50 | pc.printf("%s", status_str); |
jphbergeson | 0:26713d1db198 | 51 | |
jphbergeson | 0:26713d1db198 | 52 | fpData = fopen("/sd/data.txt", "a"); |
jphbergeson | 0:26713d1db198 | 53 | fprintf(fpData, "%s", status_str); |
jphbergeson | 0:26713d1db198 | 54 | fclose(fpData); |
jphbergeson | 0:26713d1db198 | 55 | wait(0.5f); |
jphbergeson | 0:26713d1db198 | 56 | } |
jphbergeson | 0:26713d1db198 | 57 | } |