tracker with usb
Dependencies: C12832_lcd CMPS03 FatFileSystemCpp GPS_copy mbed
Fork of MSCUsbHost by
Diff: main.cpp
- Revision:
- 4:6c258ed4635e
- Parent:
- 0:e294af8d0e07
diff -r 95e55809ecdb -r 6c258ed4635e main.cpp --- a/main.cpp Mon Jul 30 13:49:56 2012 +0000 +++ b/main.cpp Sat Mar 10 12:17:10 2018 +0000 @@ -1,69 +1,54 @@ #include "mbed.h" +#include "CMPS03.h" +#include "GPS.h" +#include "C12832_lcd.h" #include "MSCFileSystem.h" -//#include <stat.h> - #define FSNAME "msc" +C12832_LCD lcd;// Local name for the LCD MSCFileSystem msc(FSNAME); +Serial pc(USBTX, USBRX); +GPS gps(p9, p10); +CMPS03 compass(p28, p27, CMPS03_DEFAULT_I2C_ADDRESS); -int main() -{ - DIR *d; - struct dirent *p; - //struct stat st; - //char path[PATH_MAX]; - - printf("\n\n================================\n"); - printf("USB Mass storage demo program for mbed LPC1768\n"); - printf("================================\n\n"); - - d = opendir("/" FSNAME); +int lock = 0; +int main() { + DIR *d; + struct dirent *p; + d = opendir("/" FSNAME); - printf("\nList of files on the flash drive:\n"); - if ( d != NULL ) - { - while ( (p = readdir(d)) != NULL ) - { - printf(" - %s\n", p->d_name); - /* no <stat.h> on mbed, it seems :/ - sprintf(path, "/"FSNAME"/%s", p->d_name); - if ( stat(path, &st) == 0 ) - { - if ( S_ISDIR(st.st_mode) ) - printf(" <directory>\n"); - else - printf(" %d\n", st.st_size); - } - else - { - printf(" ???\n"); - }*/ + lcd.cls(); + lcd.locate(1,0); + lcd.printf("GPS Tester"); + lcd.locate(1,11); + lcd.printf("Connect GPS to pins 9 & 10"); + gps.Init(); + gps.parseData(); + while(1) { + if(gps.parseData()) { + FILE *fp = fopen( "/" FSNAME "/Tracker_data.txt", "w"); + lcd.cls(); + lcd.locate(1,0); + lcd.printf("%f, %f, %d\n", gps.latitude, gps.longitude, gps.hours); + lcd.locate(1,11); + lcd.printf("%02d:%02d:%02.0f Bearing is: %f\n", + gps.hours, gps.minutes, gps.seconds, + (compass.readBearing() / 10.0)); + lcd.locate(1,22); + lcd.printf("Satellites: %02d\n", gps.satellites); + lcd.invert(0); + fprintf(fp, "%f %f %f %02d:%02d:%02.0f\n ", gps.latitude, gps.longitude,(compass.readBearing() / 10.0),gps.hours, gps.minutes, gps.seconds); + fclose(fp); + } else { + lcd.cls();//clear LCD for next reading round + lcd.locate(1,0); + lcd.printf("No satellite lock\n"); + lcd.locate(1,11); + lcd.printf("%02d:%02d:%02.0f %02d/%02d/%02d\n", + gps.hours, gps.minutes, gps.seconds, + gps.day, gps.month, gps.year); + lcd.locate(1,22); + lcd.printf("Satellites: %02d\n",gps.satellites); + lcd.invert(0); } } - else - { - error("Could not open directory!"); - } - printf("\nTesting file write:\n"); - FILE *fp = fopen( "/" FSNAME "/msctest.txt", "w"); - if ( fp == NULL ) - { - error("Could not open file for write\n"); - } - fprintf(fp, "Hello mass storage!"); - fclose(fp); - printf("\n - OK\n"); - - printf("\nTesting file read:\n"); - fp = fopen( "/" FSNAME "/msctest.txt", "r"); - if ( fp == NULL ) - { - error("Could not open file for read\n"); - } - char buf[256]; - if ( NULL == fgets(buf, sizeof(buf), fp) ) - { - error("Error reading from file\n"); - } - fclose(fp); - printf("\n - OK, read string: '%s'\n\n", buf); -} +} \ No newline at end of file