change2shinsu

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Revision:
17:993f2fcc43df
Parent:
16:917a2c03bd7c
Child:
18:05d5de29511d
--- a/main.cpp	Mon Sep 02 14:15:47 2019 +0000
+++ b/main.cpp	Tue Sep 03 11:46:42 2019 +0000
@@ -5,14 +5,14 @@
 #include "inletclose.h"
 #include "mbedTimer.h"
 
-#define WAITTIME 5     //フライトピン抜けてからの待機時間
-#define FIRETIME 5     //溶断時間を設定
-#define FALLTIME 5     //シェンロン展開してインレットを閉鎖するまでの時間を設定
-#define CLOSETIME 60    //インレット閉鎖機構の稼働時間を設定
-#define THRESHOLID 0.45 //感圧のしきい値
+#define WAITTIME 5       //フライトピン抜けてからの待機時間
+#define FIRETIME 0       //溶断時間を設定
+#define FALLTIME 5       //シェンロン展開してインレットを閉鎖するまでの時間を設定
+#define CLOSETIME 60     //しきい値超えてからのインレット閉鎖機構の稼働時間を設定
+#define THRESHOLID 0.45  //感圧のしきい値
 #define INTERVALTIME 300 //インターバルモードの時間
-#define INTERVAL_HIGH 5 //インターバルモードでモーター回す時間
-#define INTERVAL_LOW 20 //インターバルモードでモーター止める時間
+#define INTERVAL_HIGH 5  //インターバルモードでモーター回す時間
+#define INTERVAL_LOW 20  //インターバルモードでモーター止める時間
 
 char fname[]="/sd/CanSat/log0902test3.csv";//ファイル名をここで設定
 char fname2[]="/sd/CanSat/sensor0902test3.csv";//感圧センサーのログファイル
@@ -41,6 +41,7 @@
 int val;
 int val2;
 char sendMessage[128];
+char sensorMessage[128];
 float ave_sensor;
 int timer;
 int timer2;
@@ -162,21 +163,24 @@
         myled3=1;
 
         mygps.getGPGGA();
+
+        inlet.getvalue1();
+        inlet.getvalue2();
+        ave_sensor=(inlet.value1+inlet.value2)/2;
+        fprintf(fp2, "%d,sensor1,%f,sensor2,%f,average,%f\n",timer2,inlet.value1,inlet.value2,ave_sensor);
+        timer2++;
+
         if(mygps.GPSread) {
             myled2=1;
             val=timer_rec.read();
             myTimer.sendMessage(val);
             MuPort.send(myTimer.timeMessage);
             MuPort.send(mygps.getGPS);
+            snprintf(sensorMessage, 128, "%f", ave_sensor);
+            MuPort.send(sensorMessage);
             fprintf(fp, "%s %s\n",myTimer.timeMessage,mygps.getGPS);
-            
         }
 
-        inlet.getvalue1();
-        inlet.getvalue2();
-        ave_sensor=(inlet.value1+inlet.value2)/2;
-        fprintf(fp2, "%d,sensor1,%f,sensor2,%f,average,%f\n",timer2,inlet.value1,inlet.value2,ave_sensor);
-        timer2++;
 
 
         if(ave_sensor>THRESHOLID) {
@@ -190,21 +194,25 @@
 
             while(1) {
                 mygps.getGPGGA();
+
+                inlet.getvalue1();
+                inlet.getvalue2();
+                ave_sensor=(inlet.value1+inlet.value2)/2;
+                fprintf(fp2, "%d,sensor1,%f,sensor2,%f,average,%f\n",timer2,inlet.value1,inlet.value2,ave_sensor);
+                timer2++;
+
                 if(mygps.GPSread) {
                     myled2=1;
                     val=timer_rec.read();
                     myTimer.sendMessage(val);
                     MuPort.send(myTimer.timeMessage);
                     MuPort.send(mygps.getGPS);
+                    snprintf(sensorMessage, 128, "%f", ave_sensor);
+                    MuPort.send(sensorMessage);
                     fprintf(fp, "%s %s\n",myTimer.timeMessage,mygps.getGPS);
                     timer++;
                 }
 
-                inlet.getvalue1();
-                inlet.getvalue2();
-                ave_sensor=(inlet.value1+inlet.value2)/2;
-                fprintf(fp2, "%d,sensor1,%f,sensor2,%f,average,%f\n",timer2,inlet.value1,inlet.value2,ave_sensor);
-                timer2++;
 
                 if(timer>CLOSETIME) {
                     break;
@@ -222,7 +230,6 @@
             fclose(fp2);
             break;
 
-
         }
 
         inlet.Close(1.1);//1より大きい引数にしておけばモーターはずっと回ってる.
@@ -233,15 +240,15 @@
     インレットインターバル閉鎖
     *******************************************************************************/
 
-   
-    fp= fopen(fname, "a");
-    fp2= fopen(fname2, "a");
+
+    //fp= fopen(fname, "a");
+    //fp2= fopen(fname2, "a");
     val=timer_rec.read();
     myTimer.sendMessage(val);
     fprintf(fp, "%s IntervalModeStart!\r\n",myTimer.timeMessage);
     MuPort.send(myTimer.timeMessage);
     MuPort.send("Interval Mode start!\r\n");
-    // fclose(fp);
+    //fclose(fp);
 
     timer=0;//モーター時間で止める用
     timer3=0;
@@ -255,18 +262,6 @@
         myled4=1;
 
         mygps.getGPGGA();
-        if(mygps.GPSread) {
-            myled3=1;
-            val=timer_rec.read();
-            myTimer.sendMessage(val);
-            MuPort.send(myTimer.timeMessage);
-            MuPort.send(mygps.getGPS);
-            //fp= fopen(fname, "a");
-            fprintf(fp, "%s %s\n",myTimer.timeMessage,mygps.getGPS);
-            //fclose(fp);
-            timer++;
-            timer3++;
-        }
 
         inlet.getvalue1();
         inlet.getvalue2();
@@ -276,6 +271,25 @@
         //fclose(fp2);
         timer2++;
 
+        if(mygps.GPSread) {
+            myled3=1;
+            val=timer_rec.read();
+            myTimer.sendMessage(val);
+            MuPort.send(myTimer.timeMessage);
+            MuPort.send(mygps.getGPS);
+            snprintf(sensorMessage, 128, "%f", ave_sensor);
+            MuPort.send(sensorMessage);
+            fp= fopen(fname, "a");
+            fprintf(fp, "%s %s\n",myTimer.timeMessage,mygps.getGPS);
+            fclose(fp);
+            fclose(fp2);
+            fp2= fopen(fname2, "a");
+            timer++;
+            timer3++;
+        }
+
+
+
         if(timer3>INTERVAL_HIGH) {
             inlet.Stop();
             myled=0;
@@ -288,18 +302,6 @@
 
             while(1) {
                 mygps.getGPGGA();
-                if(mygps.GPSread) {
-                    myled3=1;
-                    val=val2+timer_rec.read();
-                    myTimer.sendMessage(val);
-                    MuPort.send(myTimer.timeMessage);
-                    MuPort.send(mygps.getGPS);
-                    //fp= fopen(fname, "a");
-                    fprintf(fp, "%s %s\n",myTimer.timeMessage,mygps.getGPS);
-                    //fclose(fp);
-                    timer++;
-                    timer4++;
-                }
 
                 inlet.getvalue1();
                 inlet.getvalue2();
@@ -309,6 +311,24 @@
                 //fclose(fp2);
                 timer2++;
 
+                if(mygps.GPSread) {
+                    myled3=1;
+                    val=val2+timer_rec.read();
+                    myTimer.sendMessage(val);
+                    MuPort.send(myTimer.timeMessage);
+                    MuPort.send(mygps.getGPS);
+                    snprintf(sensorMessage, 128, "%f", ave_sensor);
+                    MuPort.send(sensorMessage);
+                    fp= fopen(fname, "a");
+                    fprintf(fp, "%s %s\n",myTimer.timeMessage,mygps.getGPS);
+                    fclose(fp);
+                    fclose(fp2);
+                    fp2= fopen(fname2, "a");
+                    timer++;
+                    timer4++;
+                }
+
+
                 if(timer4>INTERVAL_LOW) {
                     break;
                 }
@@ -318,15 +338,15 @@
         }
 
         if(val>1800) {
-            timer_rec.stop();
+            //timer_rec.stop();
             timer_rec.reset();
-            timer_rec.start();
+            //timer_rec.start();
             val2+=val;
             val=0;
-            fclose(fp);
-            fclose(fp2);
-            fp= fopen(fname, "a");
-            fp2= fopen(fname2, "a");
+            //fclose(fp);
+            //fclose(fp2);
+            //fp= fopen(fname, "a");
+            //fp2= fopen(fname2, "a");
         }
 
 
@@ -378,11 +398,11 @@
             fclose(fp);
             //wait(1.0);
         }
-        
+
         if(val>1800) {
-            timer_rec.stop();
+            //timer_rec.stop();
             timer_rec.reset();
-            timer_rec.start();
+            //timer_rec.start();
             val2+=val;
             val=0;
         }