Χρωσταω να γράψω για τα GPS από ότι είδα. Το είχα ξεχάσει
Χρωσταω να γράψω για τα GPS από ότι είδα. Το είχα ξεχάσει
BILL007 (04-10-12)
Πολλα χρωστας εσυ γενικοτερα παλιοτσιχλιμποχλη.
sympether with chiefτης
_________________________________________________
///Μ3 BORN ON THE RACETRACK TO LIVE IN THE STREETS
Λοιπόν.
Η πλατφόρμα που χρησιμοποιώ πλέον είναι το διάσημο εδώ και λίγο καιρό Raspberry PI https://www.raspberrypi.org/quick-start-guide
Είναι ένα linux box με ARM cpu που στοιχίζει μόλις 25$
Έχει άπειρες εφαρμογές σαν συσκευή.
Ξαναέγραψα λοιπόν τα πράγματα που κάνει το Raspberry να συνδέεται με bluetooth με το GPS και το OBD.
Επίσης, ξαναέγραψα τον κώδικα για το GPS data acquisition και προς το παρών κάνω log gpstime,latitude,longitude,speed(km/h),fix,satellites,altitude(m)
Εδώ και ο κώδικας για τους πιο περίεργους
Κώδικας:#include <iostream> #include <fstream> #include <string> #include <boost/regex.hpp> using namespace std; int main(int argc, const char *argv[]) { string line; ifstream myfile ("/dev/rfcomm0"); // get the logfile from the input string mylogfile = argv[1]; cout << mylogfile << endl; ofstream logfile; logfile.open((mylogfile).c_str()); string gpstime,gpslatitude,gpslongitude,gpsfix,gpssat,gpsaltitude,gpsspeedtext; int gpsspeed; // print the header logfile << "# header information" << endl; logfile << "# gpstime,latitude,longitude,speed(km/h),fix,satellites,altitude(m)" << endl; if(myfile.is_open()) { while(!myfile.eof()) { getline (myfile,line); boost::regex gprmc(".+GPRMC,\\d+\\.\\d+,\\w,\\d+\\.\\d+,\\w,\\d+\\.\\d+,\\w,(\\d+\\.\\d+).+"); boost::smatch mgprmc; if(boost::regex_match(line, mgprmc, gprmc, boost::match_extra)) { gpsspeedtext=mgprmc[1]; istringstream speedbuf(gpsspeedtext); speedbuf >> gpsspeed; // now we need to convert it to kilometers gpsspeed=1.852*gpsspeed; } // if boost::regex gpgga(".+GPGGA,(\\d+\\.\\d+),(\\d+\\.\\d+,\\w),(\\d+\\.\\d+,\\w),(\\d+),(\\d+),\\d+\\.\\d+,(\\d+\\.\\d+).+"); boost::smatch mgpgga; if(boost::regex_match(line, mgpgga, gpgga, boost::match_extra)) { gpstime=mgpgga[1]; gpslatitude=mgpgga[2]; gpslongitude=mgpgga[3]; gpsfix=mgpgga[4]; gpssat=mgpgga[5]; gpsaltitude=mgpgga[6]; logfile << gpstime << "," << gpslatitude << "," << gpslongitude << "," << "," << gpsspeed << gpsfix << "," << gpssat << "," << gpsaltitude << endl; } } // while myfile.close(); logfile.close(); } // if return 0; }
BILL007 (06-10-12), bill_m3 (06-10-12), m-power_01 (06-10-12), SoNiC_77Gr (06-10-12), Thomelef (06-10-12), wheelman (06-10-12)
Αλεξη...τα ερωτηματικα ενεργοποιουν την καθε γραμμη?
sympether with chiefτης
_________________________________________________
///Μ3 BORN ON THE RACETRACK TO LIVE IN THE STREETS
alexk (06-10-12)
Αν θυμάμαι καλά το ; Καθορίζει το τέλος της κάθε έκφρασης
Σε κωδικα ρε τσομπανο, το ερωτηματικο και καποια αλλα συμβολα εκτελουν ενεργειες.
Στον κωδικα που δουλευω εγω πχ, με ενα ερωτηματικο μπορω να ακυρωνω ολοκληρες γραμμες.
sympether with chiefτης
_________________________________________________
///Μ3 BORN ON THE RACETRACK TO LIVE IN THE STREETS
Thomelef (06-10-12)
alexk (06-10-12)
BILL007 (18-10-12)