Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed
main.cpp@0:a8035d192dd3, 2020-07-01 (annotated)
- Committer:
- sasakisho
- Date:
- Wed Jul 01 12:59:29 2020 +0000
- Revision:
- 0:a8035d192dd3
version0
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| sasakisho | 0:a8035d192dd3 | 1 | /* GMS6-CR6の流すデータからフォーマットGPGGAのみを取得して,PCに出力 (ネットにあったコード)*/ |
| sasakisho | 0:a8035d192dd3 | 2 | |
| sasakisho | 0:a8035d192dd3 | 3 | #include "mbed.h" |
| sasakisho | 0:a8035d192dd3 | 4 | #include "math.h" |
| sasakisho | 0:a8035d192dd3 | 5 | |
| sasakisho | 0:a8035d192dd3 | 6 | #define TIME_GAP 6.0 |
| sasakisho | 0:a8035d192dd3 | 7 | |
| sasakisho | 0:a8035d192dd3 | 8 | Serial gps (p9, p10); //GPSのピンを設定 |
| sasakisho | 0:a8035d192dd3 | 9 | Serial pc (USBTX, USBRX); |
| sasakisho | 0:a8035d192dd3 | 10 | Serial twe (p13, p14); |
| sasakisho | 0:a8035d192dd3 | 11 | |
| sasakisho | 0:a8035d192dd3 | 12 | /* 時間測定 */ |
| sasakisho | 0:a8035d192dd3 | 13 | Timer timer_open; |
| sasakisho | 0:a8035d192dd3 | 14 | Timer timer_log; |
| sasakisho | 0:a8035d192dd3 | 15 | Ticker tic_open; |
| sasakisho | 0:a8035d192dd3 | 16 | Ticker tic_log; |
| sasakisho | 0:a8035d192dd3 | 17 | |
| sasakisho | 0:a8035d192dd3 | 18 | /* プロタイプ宣言 */ |
| sasakisho | 0:a8035d192dd3 | 19 | float _DMS2DEG(float raw_data); |
| sasakisho | 0:a8035d192dd3 | 20 | int _input(char cha); |
| sasakisho | 0:a8035d192dd3 | 21 | |
| sasakisho | 0:a8035d192dd3 | 22 | /* グローバル変数の設定 */ |
| sasakisho | 0:a8035d192dd3 | 23 | float Time; |
| sasakisho | 0:a8035d192dd3 | 24 | char gps_data[256]; |
| sasakisho | 0:a8035d192dd3 | 25 | int cnt_gps; |
| sasakisho | 0:a8035d192dd3 | 26 | int Cnt_GPS = 0; |
| sasakisho | 0:a8035d192dd3 | 27 | |
| sasakisho | 0:a8035d192dd3 | 28 | int main() |
| sasakisho | 0:a8035d192dd3 | 29 | { |
| sasakisho | 0:a8035d192dd3 | 30 | float world_time, lon_east, lat_north; |
| sasakisho | 0:a8035d192dd3 | 31 | int rlock, sat_num; |
| sasakisho | 0:a8035d192dd3 | 32 | char lat, lon; |
| sasakisho | 0:a8035d192dd3 | 33 | |
| sasakisho | 0:a8035d192dd3 | 34 | pc.baud(115200); |
| sasakisho | 0:a8035d192dd3 | 35 | twe.baud(115200); |
| sasakisho | 0:a8035d192dd3 | 36 | |
| sasakisho | 0:a8035d192dd3 | 37 | while(1) |
| sasakisho | 0:a8035d192dd3 | 38 | { |
| sasakisho | 0:a8035d192dd3 | 39 | if(gps.readable()) |
| sasakisho | 0:a8035d192dd3 | 40 | { |
| sasakisho | 0:a8035d192dd3 | 41 | gps_data[cnt_gps] = gps.getc(); |
| sasakisho | 0:a8035d192dd3 | 42 | |
| sasakisho | 0:a8035d192dd3 | 43 | if(gps_data[cnt_gps] == '$' || cnt_gps == 256) |
| sasakisho | 0:a8035d192dd3 | 44 | { |
| sasakisho | 0:a8035d192dd3 | 45 | cnt_gps = 0; |
| sasakisho | 0:a8035d192dd3 | 46 | memset(gps_data, '\0', 256); //この関数なんや |
| sasakisho | 0:a8035d192dd3 | 47 | } |
| sasakisho | 0:a8035d192dd3 | 48 | else if(gps_data[cnt_gps] == '\r') |
| sasakisho | 0:a8035d192dd3 | 49 | { |
| sasakisho | 0:a8035d192dd3 | 50 | if(sscanf(gps_data, "GPGGA,%f,%f,%c,%f,%c,%d,%d", &world_time, &lat_north, &lat, &lon_east, &lon, &rlock, &sat_num) >= 1) |
| sasakisho | 0:a8035d192dd3 | 51 | { |
| sasakisho | 0:a8035d192dd3 | 52 | twe.printf("%s \r\n", gps_data); |
| sasakisho | 0:a8035d192dd3 | 53 | } |
| sasakisho | 0:a8035d192dd3 | 54 | } |
| sasakisho | 0:a8035d192dd3 | 55 | else |
| sasakisho | 0:a8035d192dd3 | 56 | { |
| sasakisho | 0:a8035d192dd3 | 57 | cnt_gps++; |
| sasakisho | 0:a8035d192dd3 | 58 | } |
| sasakisho | 0:a8035d192dd3 | 59 | } |
| sasakisho | 0:a8035d192dd3 | 60 | if(timer_log.read() >= 30.0*60.0) timer_log.reset(); |
| sasakisho | 0:a8035d192dd3 | 61 | } |
| sasakisho | 0:a8035d192dd3 | 62 | } |
| sasakisho | 0:a8035d192dd3 | 63 | |
| sasakisho | 0:a8035d192dd3 | 64 | float _DMS2DEG(float raw_data) |
| sasakisho | 0:a8035d192dd3 | 65 | { |
| sasakisho | 0:a8035d192dd3 | 66 | int d = (int)(raw_data/100); |
| sasakisho | 0:a8035d192dd3 | 67 | float m = (raw_data - (float)d * 100); |
| sasakisho | 0:a8035d192dd3 | 68 | return (float) d + m /60; |
| sasakisho | 0:a8035d192dd3 | 69 | } |