2020/08/31 bmx055のライブラリ及びプログラム内容を一部変更. 変換レートを更新する必要あり?

Dependencies:   mbed BMX055_rev2 SDFileSystem GPS_Interface

Revision:
10:c60fec9b4e1b
Parent:
9:fc0559c27628
Child:
11:2fc33706edd4
diff -r fc0559c27628 -r c60fec9b4e1b main.cpp
--- a/main.cpp	Sat Aug 29 13:27:41 2020 +0000
+++ b/main.cpp	Sun Aug 30 07:01:19 2020 +0000
@@ -1,13 +1,14 @@
 #include "mbed.h"
 #include "BMX055.h" 
 #include "SDFileSystem.h"
+#include "GPS.h"
 
  
 
-Serial gps(PA_9, PA_10);       // tx, rx
+GPS gps(PA_9, PA_10);       // tx, rx
 DigitalIn FlightPin(PB_0);
 
-Serial pc(USBTX, USBRX, 19200);//パソコン側からもマイコン⇒IM920のデータはみれる
+Serial pc(USBTX, USBRX, 9600);//パソコン側からもマイコン⇒IM920のデータはみれる
 Serial uart(PA_2, PA_3, 19200);//TX(IM920_RX), RX(IM920_TX)
 
 DigitalOut fet1(PA_8);       //MOSFET PIN:GATE
@@ -18,7 +19,6 @@
 Ticker warikomi;
 Timeout t;
 //double a[3],b[3],c[3];
-
 int i,j=0,rlock,mode;
 char ns,ew;
 float w_time;//,hokui,tokei;
@@ -29,7 +29,7 @@
 char str[256];
 
 
-void getGPS(float *hokui_n,float *tokei_n);
+//void getGPS(float *hokui_n,float *tokei_n);
 //void callback ();
 void FlightPinDriver();
 void nichrome_ON();
@@ -37,8 +37,7 @@
 
 
 int main() {
-    
-    float *hokui_n,*tokei_n;
+  //  float *hokui_n,*tokei_n;
     
     mkdir("/sd/mydir00", 0777);
     FILE *fp = fopen("/sd/mydir00/sddata.csv", "w");
@@ -46,10 +45,10 @@
         error("Could not open file for write\n");
     }
     
-    gps.baud(9600); 
+    //gps.baud(9600); 
     //pc.baud(9600);
     //gps.attach(getGPS(&hokui_n,&tokei_n),Serial::RxIrq);
-    //fprintf(fp,"N,E,acc:x,acc:y,acc:z,gyr:x,gyr:y,gyr:z,mag:x,mag:y,mag:z");
+    fprintf(fp,"N,E,acc:x,acc:y,acc:z,gyr:x,gyr:y,gyr:z,mag:x,mag:y,mag:z\r\n");
     warikomi.attach(&FlightPinDriver,0.5);
     
    
@@ -58,15 +57,24 @@
         bmx.getAcc();//加速度の取得
         bmx.getGyro();//角力加速度の取得
         bmx.getMag();//地磁気の取得
-        getGPS(hokui_n,tokei_n);//GPS取得
+        
+        gps.getgps();
+        int x = (float)(gps.longtitude-135.0)*1000000;
+        int y = (float)(gps.latitude-34.0)*1000000;
+        if(x==NULL)x=0;
+        if(y==NULL)y=0;
+    
         
-        if(*hokui_n==NULL){
-            hokui_n=0;}
-        if(*tokei_n==NULL){
-            tokei_n=0;}
-        //(fp,"%f,%f,%f,%f,%f,%2.4f,%2.4f,%2.4f,%2.4f,%2.4f,%2.4f\n\r",hokui_n,tokei_n,(bmx.accel[0]/512)*9.8,
-        //(bmx.accel[1]/512)*9.8,(bmx.accel[2]/512)*9.8,(bmx.gyroscope[0]*125)/2048,
-        //(bmx.gyroscope[1]*125)/2048,(bmx.gyroscope[2]*125)/2048,bmx.magnet[0],bmx.magnet[1],bmx.magnet[2]);
+        //float hokui_n=0;
+        //float tokei_n=0;
+    
+        //getGPS(hokui_n,tokei_n);//GPS取得
+        
+       // printf("%f,%f\n\r",*hokui_n,*tokei_n);
+        
+        fprintf(fp,"%f,%f,%f,%f,%f,%2.4f,%2.4f,%2.4f,%2.4f,%2.4f,%2.4f\n\r",gps.longtitude,gps.latitude,(bmx.accel[0]/512)*9.8,
+        (bmx.accel[1]/512)*9.8,(bmx.accel[2]/512)*9.8,(bmx.gyroscope[0]*125)/2048,
+        (bmx.gyroscope[1]*125)/2048,(bmx.gyroscope[2]*125)/2048,bmx.magnet[0],bmx.magnet[1],bmx.magnet[2]);
         int a[3],b[3],c[3];
         for(int i=0;i<3;i++){
             a[i]=bmx.accel[i];
@@ -93,15 +101,13 @@
         uart.printf("%04x%04x%04x",b[0],b[1],b[2]);//角加速度の書き出し
         
         
-        int north=*hokui_n * 1000000;
-        int east=*tokei_n * 1000000;
-        
-        printf("%f",*hokui_n);
+        int north=x * 1000000;
+        int east=y * 1000000;
         
         uart.printf("%08x%08x",east,north);//GPS書き出し
         
         uart.printf("\r\n");
-        printf("%d%d\n\r",north,east);
+        //printf("%d%d\n\r",north,east);
 
         wait(0.34);//IM920長距離モードの場合,3パケット/sが理論上最大速度.
         }
@@ -114,7 +120,7 @@
     }
         
         
-void getGPS(float *hokui_n,float *tokei_n) {         //関数getGPS定義
+/*void getGPS(float *hokui_n,float *tokei_n) {         //関数getGPS定義
             unsigned char c = gps.getc();
             if( c=='$' || i == 256){
                 mode = 0;
@@ -142,16 +148,18 @@
                             *hokui_n=g_hokui;
                             *tokei_n=g_tokei;
             }
-        //else{
+            /*if(rlock==0){
           //pc.printf("\n\rStatus:unLock(%d)\n\r",rlock);
           //pc.printf("%s",gps_data);
-        //}
+                *hokui_n=0;
+                *tokei_n=0;
+        }
       }//if
         *hokui_n=hokui;
         *tokei_n=tokei;
     }   //else
-  }     //L.16 if
- }
+  }     //L.123 if
+ }*/
 
 /*void callback () {
     int i;