Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed mbedTimer SDFileSystem MU2 GPS
Diff: main.cpp
- Revision:
- 17:993f2fcc43df
- Parent:
- 16:917a2c03bd7c
- Child:
- 18:05d5de29511d
diff -r 917a2c03bd7c -r 993f2fcc43df main.cpp
--- 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;
}