ニドキング

Dependencies:   mbed BMP180

Revision:
5:e922c07f1b61
Parent:
4:443e82b039ba
--- a/getGPS.cpp	Sat Dec 19 09:24:42 2020 +0000
+++ b/getGPS.cpp	Sat Dec 19 11:01:55 2020 +0000
@@ -4,30 +4,32 @@
 GPS::GPS(PinName gpstx,PinName gpsrx): _gps(gpstx,gpsrx)
 {
     latitude = 0;
-    longitude = 0;
+    longitude = 0; //getGPS.hで宣言した値を初期化
     _gps.baud(GPSBAUD);
     _gps.printf("$PMTK314,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0*29");
 }
  
-bool GPS::getgps()
+bool GPS::getgps() //GPSのデータを取得する関数の中身
 {
     char gps_data[256];
     int i;
     
     do {
-        while(_gps.getc() != '$'); //$マークまで読み飛ばし
+        while(_gps.getc() != '$');//$マークまで読み飛ばし 
+        /*送ったリンクのサイトに『1つのセンテンスは、「$」で始まり、「(改行(\r\n))」で終わります。』
+        とあるので、_gps.getc()が取得する値が$以外の場合は無視して、$が始まったところを探すためにループしている。*/
         i = 0;
  
-        /* gps_data初期化 */
+        /* gpa_data初期化 */
         for(int j = 0; j < 256; j++)
             gps_data[j] = '\0';
  
         /* NMEAから一行読み込み */
-        while((gps_data[i] = _gps.getc()) != '\r') {
+        while((gps_data[i] = _gps.getc()) != '\r') {//受信したデータを配列に格納し、'\r'でない場合ループ
             i++;
             if(i == 256) {
                 i = 255;
-                break;
+                return 0;;
             }
         }
     } while(strstr(gps_data, "GPGGA") == NULL); //GGAセンテンスまで一行ずつ読み込み続ける
@@ -39,6 +41,7 @@
     double hdop;
  
     if(sscanf(gps_data, "GPGGA, %lf, %lf, %c, %lf, %c, %d, %d, %lf", &w_time, &raw_latitude, &ns, &raw_longitude, &ew, &rlock, &satnum, &hdop) > 1) {
+        //取得したデータを読み込んでいる 詳しくはリンクを送ります
         /* 座標1(度部分) */
         double latitude_dd = (double)(raw_latitude / 100);
         double longitude_dd = (double)(raw_longitude / 100);
@@ -52,7 +55,7 @@
         longitude = longitude_dd + longitude_md;
  
         return true;
+//ここまでgpsが受信する値は単位が度になっていないので、度に直している
     } else
         return false; //GGAセンテンスの情報が欠けている時
-}
- 
\ No newline at end of file
+}
\ No newline at end of file