GPSParser.h@3:d01d7593384d, 2012-03-28 (annotated)
- Committer:
- slisgrinder
- Date:
- Wed Mar 28 23:29:35 2012 +0000
- Revision:
- 3:d01d7593384d
- Parent:
- 2:6f49c74ab3b9
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
slisgrinder | 3:d01d7593384d | 1 | #include "mbed.h" |
slisgrinder | 3:d01d7593384d | 2 | #include "MODSERIAL.h" |
slisgrinder | 3:d01d7593384d | 3 | |
slisgrinder | 3:d01d7593384d | 4 | class GPSParser |
slisgrinder | 3:d01d7593384d | 5 | { |
slisgrinder | 3:d01d7593384d | 6 | public: |
slisgrinder | 3:d01d7593384d | 7 | |
slisgrinder | 3:d01d7593384d | 8 | struct GPS |
slisgrinder | 3:d01d7593384d | 9 | { |
slisgrinder | 3:d01d7593384d | 10 | float latitude, lat_deg, lat_min, deg_latitude, longitude, long_deg, long_min, deg_longitude, altitude, HDOP, geoidal_sep, AODC, heading, mag_heading, speed_knots, speed_kph; |
slisgrinder | 3:d01d7593384d | 11 | char ns, ew, mode; |
slisgrinder | 3:d01d7593384d | 12 | int hours, minutes, seconds, m_seconds, fix, sats_used, DGPS_ID; |
slisgrinder | 3:d01d7593384d | 13 | unsigned short checksum_gga, checksum_vtg; |
slisgrinder | 3:d01d7593384d | 14 | }; |
slisgrinder | 3:d01d7593384d | 15 | |
slisgrinder | 3:d01d7593384d | 16 | struct GPS readings; |
slisgrinder | 3:d01d7593384d | 17 | |
slisgrinder | 3:d01d7593384d | 18 | |
slisgrinder | 3:d01d7593384d | 19 | GPSParser (PinName tx, PinName rx, int baud, int num_sentence, MODSERIAL &pc, PwmOut &indicator); |
slisgrinder | 3:d01d7593384d | 20 | |
slisgrinder | 3:d01d7593384d | 21 | void process_readings (); |
slisgrinder | 3:d01d7593384d | 22 | |
slisgrinder | 3:d01d7593384d | 23 | void ready_buffer(MODSERIAL_IRQ_INFO *q); |
slisgrinder | 3:d01d7593384d | 24 | /*{ |
slisgrinder | 3:d01d7593384d | 25 | MODSERIAL *serial = q->serial; |
slisgrinder | 3:d01d7593384d | 26 | |
slisgrinder | 3:d01d7593384d | 27 | if (serial->rxGetLastChar() == '\n') |
slisgrinder | 3:d01d7593384d | 28 | ctr++; |
slisgrinder | 3:d01d7593384d | 29 | |
slisgrinder | 3:d01d7593384d | 30 | if (ctr == num_sentences) |
slisgrinder | 3:d01d7593384d | 31 | { |
slisgrinder | 3:d01d7593384d | 32 | read_gps(); |
slisgrinder | 3:d01d7593384d | 33 | ctr = 0; |
slisgrinder | 3:d01d7593384d | 34 | } |
slisgrinder | 3:d01d7593384d | 35 | };*/ |
slisgrinder | 3:d01d7593384d | 36 | |
slisgrinder | 3:d01d7593384d | 37 | protected: |
slisgrinder | 3:d01d7593384d | 38 | |
slisgrinder | 3:d01d7593384d | 39 | int GLL, RMC, VTG, GGA, GSA, GSV, GRS, GST, MALM, MEPH, MDGP, MDBG, ZDA, MCHN; |
slisgrinder | 3:d01d7593384d | 40 | int num_sentences;// = 0; |
slisgrinder | 3:d01d7593384d | 41 | volatile int ctr;// = 0; |
slisgrinder | 3:d01d7593384d | 42 | int baudrate; |
slisgrinder | 3:d01d7593384d | 43 | |
slisgrinder | 3:d01d7593384d | 44 | MODSERIAL gps; |
slisgrinder | 3:d01d7593384d | 45 | MODSERIAL pc; |
slisgrinder | 3:d01d7593384d | 46 | PwmOut indicator; |
slisgrinder | 3:d01d7593384d | 47 | |
slisgrinder | 3:d01d7593384d | 48 | |
slisgrinder | 1:e143afe9a7ea | 49 | }; |