Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SoftwareSerial.h>
- #include <TinyGPS.h>
- #include <SPI.h>
- #include <SD.h>
- /* This sample code demonstrates the normal use of a TinyGPS object.
- It requires the use of SoftwareSerial, and assumes that you have a
- 4800-baud serial GPS device hooked up on pins 3(rx) and 4(tx).
- */
- TinyGPS gps;
- SoftwareSerial nss(3, 4);
- File Plik;
- static void gpsdump(TinyGPS &gps);
- static bool feedgps();
- static void print_float(float val, float invalid, int len, int prec);
- static void print_int(unsigned long val, unsigned long invalid, int len);
- static void print_date(TinyGPS &gps);
- static void print_str(const char *str, int len);
- static void zapis(char abc);
- float a;
- float b;
- void setup()
- {
- Serial.begin(115200);
- nss.begin(9600);
- Serial.print("Sizeof(gpsobject) = "); Serial.println(sizeof(TinyGPS));
- Serial.println();
- Serial.println(" Latitude Longitude Date Time ");
- Serial.println(" (deg) (deg) ");
- Serial.println("---------------------------------------");
- }
- void loop()
- {
- bool newdata = false;
- unsigned long start = millis();
- // Every second we print an update
- while (millis() - start < 1000)
- {
- if (feedgps())
- newdata = true;
- }
- gpsdump(gps);
- }
- static void gpsdump(TinyGPS &gps)
- {
- float flat, flon;
- unsigned long age, date, time, chars = 0;
- unsigned short sentences = 0, failed = 0;
- static const float LONDON_LAT = 53.75490, LONDON_LON = 20.45582;
- // Plik = SD.open("test.txt", FILE_WRITE);
- gps.f_get_position(&flat, &flon, &age);
- print_float(flat, TinyGPS::GPS_INVALID_F_ANGLE, 9, 5);
- print_float(flon, TinyGPS::GPS_INVALID_F_ANGLE, 10, 5);
- print_date(gps);
- //Serial.begin(4800);
- //a= print_float(flat, TinyGPS::GPS_INVALID_F_ANGLE, 9, 5);
- //b=(flon, TinyGPS::GPS_INVALID_F_ANGLE);
- Serial.println("nasza");
- Serial.print(a);
- Serial.print(" loool ");
- Serial.println(b);
- //Plik.print(float(flat, TinyGPS::GPS_INVALID_F_ANGLE, 9, 5),float(flon, TinyGPS::GPS_INVALID_F_ANGLE, 10, 5));
- Plik.close();
- Serial.println();
- delay(300);
- }
- static void print_int(unsigned long val, unsigned long invalid, int len)
- {
- char sz[32];
- if (val == invalid)
- strcpy(sz, "*******");
- else
- sprintf(sz, "%ld", val);
- sz[len] = 0;
- for (int i=strlen(sz); i<len; ++i)
- sz[i] = ' ';
- if (len > 0)
- sz[len-1] = ' ';
- Serial.print(sz);
- feedgps();
- }
- static void print_float(float val, float invalid, int len, int prec)
- {
- char sz[32];
- if (val == invalid)
- {
- strcpy(sz, "*******");
- sz[len] = 0;
- if (len > 0)
- sz[len-1] = ' ';
- for (int i=7; i<len; ++i)
- sz[i] = ' ';
- Serial.print(sz);
- }
- else
- {
- Plik = SD.open("test.txt", FILE_WRITE);
- Plik.print(val, prec);
- a=val;
- b=prec;
- Serial.print(a);
- Serial.print("a");
- Serial.print(" ");
- Serial.print(val, prec);
- // Serial.print("kupa");
- int vi = abs((int)val);
- int flen = prec + (val < 0.0 ? 2 : 1);
- flen += vi >= 1000 ? 4 : vi >= 100 ? 3 : vi >= 10 ? 2 : 1;
- for (int i=flen; i<len; ++i)
- Serial.print(" ");
- Plik.close();
- }
- feedgps();
- }
- static void print_date(TinyGPS &gps)
- {
- int year;
- byte month, day, hour, minute, second, hundredths;
- unsigned long age;
- gps.crack_datetime(&year, &month, &day, &hour, &minute, &second, &hundredths, &age);
- if (age == TinyGPS::GPS_INVALID_AGE)
- Serial.print("******* ******* ");
- else
- {
- char sz[32];
- sprintf(sz, "%02d/%02d/%02d %02d:%02d:%02d ",
- month, day, year, hour+1, minute, second);
- Serial.print(sz);
- }
- feedgps();
- }
- static void print_str(const char *str, int len)
- {
- int slen = strlen(str);
- for (int i=0; i<len; ++i)
- Serial.print(i<slen ? str[i] : ' ');
- feedgps();
- }
- static bool feedgps()
- {
- while (nss.available())
- {
- if (gps.encode(nss.read()))
- return true;
- }
- return false;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement