メインとgpsの合体版。試験運用。
Dependencies: HMC5883L SDFileSystem TextOLED mbed
Fork of 2bk0123_GPS_Test05 by
main.cpp@1:04787f83fac1, 2018-02-15 (annotated)
- Committer:
- Joeatsumi
- Date:
- Thu Feb 15 03:02:13 2018 +0000
- Revision:
- 1:04787f83fac1
- Parent:
- 0:f3ff53b5b707
- Child:
- 2:9f8fa9035357
mbed ??????sd?????????txt?????????kml????????Googlemap?????????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
takeuchi | 0:f3ff53b5b707 | 1 | //GPS GT-720F Test05 |
takeuchi | 0:f3ff53b5b707 | 2 | #include "mbed.h" |
Joeatsumi | 1:04787f83fac1 | 3 | |
Joeatsumi | 1:04787f83fac1 | 4 | #include "SDFileSystem.h" |
takeuchi | 0:f3ff53b5b707 | 5 | |
takeuchi | 0:f3ff53b5b707 | 6 | #define ON 1 |
takeuchi | 0:f3ff53b5b707 | 7 | #define OFF 0 |
Joeatsumi | 1:04787f83fac1 | 8 | Serial gps(p9,p10);// tx, rx |
Joeatsumi | 1:04787f83fac1 | 9 | |
Joeatsumi | 1:04787f83fac1 | 10 | LocalFileSystem local("local"); |
takeuchi | 0:f3ff53b5b707 | 11 | |
takeuchi | 0:f3ff53b5b707 | 12 | DigitalOut mled0(LED1); |
takeuchi | 0:f3ff53b5b707 | 13 | DigitalOut mled1(LED2); |
takeuchi | 0:f3ff53b5b707 | 14 | |
Joeatsumi | 1:04787f83fac1 | 15 | SDFileSystem sd(p5, p6, p7, p8, "sd"); // the pinout on the mbed Cool Components workshop board |
Joeatsumi | 1:04787f83fac1 | 16 | |
Joeatsumi | 1:04787f83fac1 | 17 | |
Joeatsumi | 1:04787f83fac1 | 18 | Serial pc(USBTX, USBRX); // tx, rx |
Joeatsumi | 1:04787f83fac1 | 19 | |
Joeatsumi | 1:04787f83fac1 | 20 | FILE *fp; |
takeuchi | 0:f3ff53b5b707 | 21 | |
takeuchi | 0:f3ff53b5b707 | 22 | int main() { |
takeuchi | 0:f3ff53b5b707 | 23 | |
takeuchi | 0:f3ff53b5b707 | 24 | char c; |
takeuchi | 0:f3ff53b5b707 | 25 | int i,rlock,stn; |
takeuchi | 0:f3ff53b5b707 | 26 | char gps_data[256]; |
takeuchi | 0:f3ff53b5b707 | 27 | char ns,ew; |
takeuchi | 0:f3ff53b5b707 | 28 | float time,hokui,tokei; |
takeuchi | 0:f3ff53b5b707 | 29 | float g_hokui,g_tokei; |
takeuchi | 0:f3ff53b5b707 | 30 | float d_hokui,m_hokui,d_tokei,m_tokei; |
Joeatsumi | 1:04787f83fac1 | 31 | |
Joeatsumi | 1:04787f83fac1 | 32 | int h_time=0,m_time=0,s_time=0; |
Joeatsumi | 1:04787f83fac1 | 33 | |
Joeatsumi | 1:04787f83fac1 | 34 | mkdir("/sd/gps_data", 0777);//まずsdのフォルダをつくる。 |
Joeatsumi | 1:04787f83fac1 | 35 | |
takeuchi | 0:f3ff53b5b707 | 36 | gps.baud(9600); |
takeuchi | 0:f3ff53b5b707 | 37 | |
takeuchi | 0:f3ff53b5b707 | 38 | while (1) { |
takeuchi | 0:f3ff53b5b707 | 39 | i=0; |
takeuchi | 0:f3ff53b5b707 | 40 | while(gps.getc()!='$'){ |
takeuchi | 0:f3ff53b5b707 | 41 | } |
takeuchi | 0:f3ff53b5b707 | 42 | |
takeuchi | 0:f3ff53b5b707 | 43 | while( (gps_data[i]=gps.getc()) != '\r'){ |
takeuchi | 0:f3ff53b5b707 | 44 | i++; |
takeuchi | 0:f3ff53b5b707 | 45 | if(i==256){ |
Joeatsumi | 1:04787f83fac1 | 46 | |
takeuchi | 0:f3ff53b5b707 | 47 | i=255; |
takeuchi | 0:f3ff53b5b707 | 48 | break; |
takeuchi | 0:f3ff53b5b707 | 49 | } |
takeuchi | 0:f3ff53b5b707 | 50 | } |
takeuchi | 0:f3ff53b5b707 | 51 | gps_data[i]='\0'; |
takeuchi | 0:f3ff53b5b707 | 52 | |
takeuchi | 0:f3ff53b5b707 | 53 | //test |
takeuchi | 0:f3ff53b5b707 | 54 | /* Test data |
takeuchi | 0:f3ff53b5b707 | 55 | rlock=1; |
takeuchi | 0:f3ff53b5b707 | 56 | hokui=3532.25024; //=>35.537502 |
takeuchi | 0:f3ff53b5b707 | 57 | tokei=13751.86820;//=>137.864471 |
takeuchi | 0:f3ff53b5b707 | 58 | */ |
takeuchi | 0:f3ff53b5b707 | 59 | if( sscanf(gps_data, "GPGGA,%f,%f,%c,%f,%c,%d,%d",&time,&hokui,&ns,&tokei,&ew,&rlock,&stn) >= 1){ |
takeuchi | 0:f3ff53b5b707 | 60 | if(rlock >= 1){ |
Joeatsumi | 1:04787f83fac1 | 61 | |
Joeatsumi | 1:04787f83fac1 | 62 | //time set |
Joeatsumi | 1:04787f83fac1 | 63 | h_time=int(time/10000); |
Joeatsumi | 1:04787f83fac1 | 64 | m_time=int((time-h_time*10000)/100); |
Joeatsumi | 1:04787f83fac1 | 65 | s_time=int(time-h_time*10000-m_time*100); |
Joeatsumi | 1:04787f83fac1 | 66 | h_time=h_time+9;//UTC =>JST |
Joeatsumi | 1:04787f83fac1 | 67 | |
takeuchi | 0:f3ff53b5b707 | 68 | //hokui |
takeuchi | 0:f3ff53b5b707 | 69 | d_hokui=int(hokui/100); |
takeuchi | 0:f3ff53b5b707 | 70 | m_hokui=(hokui-d_hokui*100)/60; |
takeuchi | 0:f3ff53b5b707 | 71 | g_hokui=d_hokui+m_hokui; |
takeuchi | 0:f3ff53b5b707 | 72 | //tokei |
takeuchi | 0:f3ff53b5b707 | 73 | d_tokei=int(tokei/100); |
takeuchi | 0:f3ff53b5b707 | 74 | m_tokei=(tokei-d_tokei*100)/60; |
takeuchi | 0:f3ff53b5b707 | 75 | g_tokei=d_tokei+m_tokei; |
takeuchi | 0:f3ff53b5b707 | 76 | //g_hokui=int(hokui/100)+(hokui-int(hokui/100))/60; |
takeuchi | 0:f3ff53b5b707 | 77 | //g_tokei=int(tokei/100)+(tokei-int(tokei/100))/60; |
Joeatsumi | 1:04787f83fac1 | 78 | |
takeuchi | 0:f3ff53b5b707 | 79 | |
Joeatsumi | 1:04787f83fac1 | 80 | //==================================================// |
Joeatsumi | 1:04787f83fac1 | 81 | |
Joeatsumi | 1:04787f83fac1 | 82 | pc.printf("%2d,%2d,%2d,%4.6f,,%3.6f,\r\n",h_time,m_time,s_time,g_tokei,g_hokui); |
Joeatsumi | 1:04787f83fac1 | 83 | |
Joeatsumi | 1:04787f83fac1 | 84 | fp = fopen("/sd/gps_data/log.txt", "a"); |
Joeatsumi | 1:04787f83fac1 | 85 | |
Joeatsumi | 1:04787f83fac1 | 86 | // fprintf(fp,"%2d,%2d,%2d,%4.6f,,%3.6f,\r\n",h_time,m_time,s_time,g_tokei,g_hokui); |
Joeatsumi | 1:04787f83fac1 | 87 | fprintf(fp,"%4.6f,%3.6f,\r\n",g_tokei,g_hokui); |
Joeatsumi | 1:04787f83fac1 | 88 | fclose(fp); |
Joeatsumi | 1:04787f83fac1 | 89 | |
Joeatsumi | 1:04787f83fac1 | 90 | //==================================================// |
Joeatsumi | 1:04787f83fac1 | 91 | |
Joeatsumi | 1:04787f83fac1 | 92 | |
Joeatsumi | 1:04787f83fac1 | 93 | |
Joeatsumi | 1:04787f83fac1 | 94 | //} |
takeuchi | 0:f3ff53b5b707 | 95 | } |
takeuchi | 0:f3ff53b5b707 | 96 | }//if |
takeuchi | 0:f3ff53b5b707 | 97 | }//while |
takeuchi | 0:f3ff53b5b707 | 98 | }//main |
takeuchi | 0:f3ff53b5b707 | 99 | |
takeuchi | 0:f3ff53b5b707 | 100 | |
takeuchi | 0:f3ff53b5b707 | 101 |