all ok noMU2

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Revision:
15:bc013c313ef5
Parent:
14:a07d2a958617
Child:
16:917a2c03bd7c
--- a/main.cpp	Tue Aug 20 22:11:17 2019 +0000
+++ b/main.cpp	Sun Aug 25 11:10:27 2019 +0000
@@ -2,30 +2,43 @@
 #include "MU2.h"
 #include "SDFileSystem.h"
 #include "inletclose.h"
+#include "mbedTimer.h"
 //#include "GPS.h"
 
+
 #define FIRETIME 5 //溶断時間を設定
-#define FALLTIME 90 //シェンロン展開してインレットを閉鎖するまでの時間を設定
+#define FALLTIME 10 //シェンロン展開してインレットを閉鎖するまでの時間を設定
 #define CLOSETIME 10 //インレット閉鎖機構の稼働時間を設定
 
+char fname[]="/sd/CanSat/log0826_test10.csv";//ファイル名をここで設定
+
 ////////////////フライトピンが抜ける→シェンロン展開→インレット閉鎖→待機
 //シーケンス番号//1//////////////////2///////////3///////////4///
 //mbedのLEDが各シーケンス番号を2進数で示す:ex 0011 インレット閉鎖中
+//ただし今回はシーケンス4つなのでそれぞれのシーケンスでそれぞれのLEDが光る
 
 MU2 MuPort(p28,p27);
-SDFileSystem sd(p11, p12, p13, p14, "sd");
+SDFileSystem sd(p5, p6, p7, p8, "sd");//3号機11,12,13,14
 //GPS gps(p13,p14);
-Serial gps(p9,p10); //tx, rx
+Serial gps(p13,p14); //3号機9,10
 
-Inlet inlet(p26,p17,p15);//モーター出力,感圧センサー1入力,感圧センサー2入力
+Inlet inlet(p26,p15,p16);//モーター出力,感圧センサー1入力,感圧センサー2入力
 
-DigitalOut FIRE(p24);    //溶断
+DigitalOut FIRE(p25);    //溶断
 
 DigitalOut myled(LED1);
 DigitalOut myled2(LED2);
 DigitalOut myled3(LED3);
 DigitalOut myled4(LED4);
 
+mbedTimer myTimer;
+Timer timer_rec;//時間計測
+
+int val;
+char sendMessage[128];
+
+
+
 
 /*******************************************************************************
 メイン関数
@@ -33,57 +46,60 @@
 
 int main()
 {
-    wait(10);//起動してからちょっと待つ
+
+    timer_rec.start();
+    wait(0.1);//起動してからちょっと待つ
     inlet.Stop();
-    //FILE* fp1= fopen("/sd/cansat/log3.txt", "w");
-    FILE* fp= fopen("/sd/cansat/log0820_1.csv", "w");
-        if(fp == NULL) {
-        
+    FILE* fp= fopen(fname, "a");
+    if(fp == NULL) {
+
         myled=1;
         myled2=1;
         myled3=1;
         myled4=1;
 
-        fp = fopen("/sd/cansat/log0820_1.csv", "w");
-        wait(0.5);
-         myled=0;
-        myled2=0;
-        myled3=0;
-        myled4=0;
-        
+        fp = fopen(fname, "a");
+        if(fp != NULL) {
+            myled=0;
+            myled2=0;
+            myled3=0;
+            myled4=0;
+        }
+
     }
-    
 
-    fprintf(fp, "CanSatStart!\r\n");
+    val=timer_rec.read();
+    myTimer.sendMessage(val);
+    fprintf(fp, "%s CanSatStart!\r\n",myTimer.timeMessage);
+    MuPort.send(myTimer.timeMessage);
     MuPort.send("CanSat Start!\r\n");
 
-    /*if(fp1 == NULL || fp2 == NULL)
-    {
-    (fp1 == NULL) ? fprintf(stderr, "fname1 open error.\n") : fclose(fp1);
-    (fp2 == NULL) ? fprintf(stderr, "fname2 open error.\n") : fclose(fp2);
-    return -1;
-    }*/
 
 //溶断機構部分
 
     fprintf(fp, "FireStart!\r\n");
     MuPort.send("Fire Start!\r\n");
-    myled=1;//テストようにLED光らせてる
 
     FIRE=1;
+    myled=1;
     wait(FIRETIME);//溶断にかかる時間TBD秒
     FIRE=0;
-    wait(10);
+    myled=0;
+
+    wait(3);
+
     FIRE=1;
+    myled=1;
     wait(3);//溶断にかかる時間TBD秒
     FIRE=0;
+    myled=0;
 
     fprintf(fp, "FireFinish!\r\n");
     MuPort.send("Fire Finish!\r\n");
 
 //溶断機構終わり
 
-    gps.baud(9600);
+    gps.baud(9600);//9600
     char recvGPS=0;
     char getGPS[128];
     int i=0;
@@ -93,42 +109,45 @@
         シェンロン展開
     *******************************************************************************/
 
-    fprintf(fp, "GPSstart!\r\n");
+    val=timer_rec.read();
+    myTimer.sendMessage(val);
+    fprintf(fp, "%s GPSstart!\r\n",myTimer.timeMessage);
+    MuPort.send(myTimer.timeMessage);
     MuPort.send("GPS start!\r\n");
 
     while(1) {
         myled=0;
         myled2=1;
-        if(gps.readable()) {
-            recvGPS=gps.getc();
-            getGPS[i]=recvGPS;
+        //if(gps.readable()) {
+        recvGPS=gps.getc();
+        getGPS[i]=recvGPS;
 
-            if(getGPS[i]=='\n') {
+        if(getGPS[i]=='\n') {
 
-                if((getGPS[5]=='G')&&(getGPS[6]=='A')) {
+            if((getGPS[5]=='G')&&(getGPS[6]=='A')) {
 
-                    MuPort.send(getGPS);
-                    myled=1;
-                    /*if(fp == NULL) {
-                        error("Could not open file for write\n");
-                    }*/
+                val=timer_rec.read();
+                myTimer.sendMessage(val);
+                MuPort.send(myTimer.timeMessage);
+                MuPort.send(getGPS);
+
+                myled=1;
 
-                    fprintf(fp, "%s\n",getGPS);
-                    //fclose(fp);
+                fprintf(fp, "%s %s\n",myTimer.timeMessage,getGPS);
 
-                    wait(1.0);
-                    timer++;
-                }
+                //wait(1.0);
+                timer++;
+            }
 
-                i=0;
-            }
-            i++;
-            if(timer>FALLTIME) { //落下開始してからTBD秒後whileを抜ける.
-                break;
-            }
+            i=0;
         }
+        i++;
+        if(timer>FALLTIME) { //落下開始してからTBD秒後whileを抜ける.
+            fclose(fp);
+            break;
+        }
+        //}
 
-        // wait(1);
         //fclose(fp);
     }
 
@@ -137,44 +156,53 @@
     インレット閉鎖
     *******************************************************************************/
 
-    fprintf(fp, "InletStart!\r\n");
+    fp= fopen(fname, "a");
+    val=timer_rec.read();
+    myTimer.sendMessage(val);
+    fprintf(fp, "%s InletStart!\r\n",myTimer.timeMessage);
+    MuPort.send(myTimer.timeMessage);
     MuPort.send("Inlet start!\r\n");
 
     timer=0;//モーター時間で止める用
 
     while(1) {
+        myled=0;
         myled2=0;
         myled3=1;
-        if(gps.readable()) {
-            recvGPS=gps.getc();
-            getGPS[i]=recvGPS;
+        //if(gps.readable()) {
+        recvGPS=gps.getc();
+        getGPS[i]=recvGPS;
 
-            if(getGPS[i]=='\n') {
+        if(getGPS[i]=='\n') {
 
-                if((getGPS[5]=='G')&&(getGPS[6]=='A')) {
-                    MuPort.send(getGPS);
-                    myled2=1;
-                    /*if(fp == NULL) {
-                        error("Could not open file for write\n");
-                    }*/
+            if((getGPS[5]=='G')&&(getGPS[6]=='A')) {
+                val=timer_rec.read();
+                myTimer.sendMessage(val);
+                MuPort.send(myTimer.timeMessage);
+                MuPort.send(getGPS);
+                myled2=1;
+                fprintf(fp, "%s %s\n",myTimer.timeMessage,getGPS);
 
-                    fprintf(fp, "%s\n",getGPS);
-                    //fclose(fp);
-                    wait(1.0);
-                    timer++;
-                }
-
-                i=0;
+                //wait(1.0);
+                timer++;
             }
-            i++;
-            if(timer>CLOSETIME) {
-                inlet.Stop();//
-                break;
-            }
-            inlet.Close(1.1);//1より大きい引数にしておけばモーターはずっと回ってる.
+
+            i=0;
         }
+        i++;
+        if(timer>CLOSETIME) {
+            inlet.Stop();//
+            val=timer_rec.read();
+            myTimer.sendMessage(val);
+            fprintf(fp, "%s InletFinish!\r\n",myTimer.timeMessage);
+            MuPort.send(myTimer.timeMessage);
+            MuPort.send("Inlet finish!\r\n");
+            fclose(fp);
+            break;
+        }
+        //inlet.Close(1.1);//1より大きい引数にしておけばモーターはずっと回ってる.
+        //}
 
-        // wait(1);
         //fclose(fp);
     }
 
@@ -183,45 +211,48 @@
     待機モード(何もせずGPS信号を発する)
     *******************************************************************************/
 
-    fprintf(fp, "StandbyModeStart!\r\n");
+    fp= fopen(fname, "a");
+    val=timer_rec.read();
+    myTimer.sendMessage(val);
+    fprintf(fp, "%s StandbyModeStart!\r\n",myTimer.timeMessage);
+    MuPort.send(myTimer.timeMessage);
     MuPort.send("Standby mode start!\r\n");
+    fclose(fp);
 
 
     while(1) {
-        myled4=1;
+        myled=0;
+        myled2=0;
         myled3=0;
-        if(gps.readable()) {
-            recvGPS=gps.getc();
-            getGPS[i]=recvGPS;
+        myled4=1;
 
-            if(getGPS[i]=='\n') {
+        //if(gps.readable()) {
+        recvGPS=gps.getc();
+        getGPS[i]=recvGPS;
+
+        if(getGPS[i]=='\n') {
 
-                if((getGPS[5]=='G')&&(getGPS[6]=='A')) {
-                    MuPort.send(getGPS);
-                    myled3=1;
-                    /*if(fp == NULL) {
-                        error("Could not open file for write\n");
-                    }*/
+            if((getGPS[5]=='G')&&(getGPS[6]=='A')) {
+                val=timer_rec.read();
+                myTimer.sendMessage(val);
+                MuPort.send(myTimer.timeMessage);
+                MuPort.send(getGPS);
+                myled3=1;
+                fp= fopen(fname, "a");
+                fprintf(fp, "%s %s\n",myTimer.timeMessage,getGPS);
+                fclose(fp);
+                timer++;
+            }
 
-                    fprintf(fp, "%s\n",getGPS);
-                    //fclose(fp);
-                    wait(0.1);
-                    timer++;
-                }
+            i=0;
+        }
+        i++;
+        //}
 
-                i=0;
-            }
-            i++;
-        }
-
-        // wait(1);
         //fclose(fp);
     }
 
 
-    //fclose(fp1);
-    fclose(fp);
-
 }