change2shinsu
Dependencies: mbed mbedTimer SDFileSystem MU2 GPS
Diff: main.cpp
- 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; }