all ok noMU2

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Committer:
Nerosho
Date:
Wed Sep 11 05:59:59 2019 +0000
Revision:
28:c8fabcd38c9a
Parent:
27:2d8f63f86ef3
0910 last version

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Nerosho 20:b70e877cdc0f 1 /*******************************************************************************
takepiyo 22:9c062a2def02 2 2019.09.09
Nerosho 28:c8fabcd38c9a 3 This is a TEST program!
Nerosho 20:b70e877cdc0f 4 *******************************************************************************/
Nerosho 20:b70e877cdc0f 5
Nerosho 0:d0f3991839ec 6 #include "mbed.h"
Nerosho 0:d0f3991839ec 7 #include "MU2.h"
Nerosho 16:917a2c03bd7c 8 #include "GPS.h"
Nerosho 0:d0f3991839ec 9 #include "SDFileSystem.h"
takepiyo 3:4f1bac105598 10 #include "inletclose.h"
Nerosho 15:bc013c313ef5 11 #include "mbedTimer.h"
Nerosho 15:bc013c313ef5 12
takepiyo 22:9c062a2def02 13 #define WAITTIME 60 //フライトピン抜けてからの待機時間 60
Nerosho 18:05d5de29511d 14 #define FIRETIME 5 //溶断時間を設定 5
Nerosho 28:c8fabcd38c9a 15 #define FALLTIME 420 //シェンロン展開してインレットを閉鎖するまでの時間を設定 420
Nerosho 18:05d5de29511d 16 #define THRESHOLID 0.45 //感圧のしきい値 0.45
Nerosho 18:05d5de29511d 17 #define SAMPLENUMBER 5 //しきい値判定に用いるサンプル数 5
Nerosho 18:05d5de29511d 18 #define CLOSETIME 60 //しきい値超えてからのインレット閉鎖機構の稼働時間を設定 60
takepiyo 22:9c062a2def02 19 #define LIMITTIME 1800 //しきい値超えなくてもインターバルモードへ移行
Nerosho 28:c8fabcd38c9a 20 #define INTERVALTIME 1800 //インターバルモードの時間 7200
Nerosho 18:05d5de29511d 21 #define INTERVAL_HIGH 5 //インターバルモードでモーター回す時間 5
Nerosho 18:05d5de29511d 22 #define INTERVAL_LOW 20 //インターバルモードでモーター止める時間 20
takepiyo 8:6b835a82b1eb 23
takepiyo 22:9c062a2def02 24 char fname[]="/sd/CanSat/log0909ARLISStest1.csv";//ファイル名をここで設定
takepiyo 22:9c062a2def02 25 char fname2[]="/sd/CanSat/sensor0909ARLISStest1.csv";//感圧センサーのログファイル
Nerosho 15:bc013c313ef5 26
takepiyo 26:7ec2cf6a6b51 27 ////////////////溶断→シェンロン展開→インレット連続閉鎖→剛性を得た後→インターバル閉鎖→待機モード
takepiyo 26:7ec2cf6a6b51 28 //シーケンス番号/0001//////////0010//////////////0011////////0100///////////0101/////0110
Nerosho 14:a07d2a958617 29 //mbedのLEDが各シーケンス番号を2進数で示す:ex 0011 インレット閉鎖中
Nerosho 15:bc013c313ef5 30 //ただし今回はシーケンス4つなのでそれぞれのシーケンスでそれぞれのLEDが光る
takepiyo 21:fa4360ec5014 31 //しかしながらシーケンスが増えたので2進数を採用する
takepiyo 8:6b835a82b1eb 32
takepiyo 4:0d087e3f731d 33 MU2 MuPort(p28,p27);
Nerosho 16:917a2c03bd7c 34 SDFileSystem sd(p5, p6, p7, p8, "sd");//3号機11,12,13,14 4号機5,6,7,8
Nerosho 16:917a2c03bd7c 35 GPS mygps(p13,p14);//3号機9,10 4号機13,14
takepiyo 3:4f1bac105598 36
Nerosho 15:bc013c313ef5 37 Inlet inlet(p26,p15,p16);//モーター出力,感圧センサー1入力,感圧センサー2入力
Nerosho 0:d0f3991839ec 38
Nerosho 16:917a2c03bd7c 39 DigitalOut FIRE(p25); //3号機24 4号機25
Nerosho 1:a8772ca26d1b 40
Nerosho 1:a8772ca26d1b 41 DigitalOut myled(LED1);
takepiyo 4:0d087e3f731d 42 DigitalOut myled2(LED2);
Nerosho 1:a8772ca26d1b 43 DigitalOut myled3(LED3);
Nerosho 1:a8772ca26d1b 44 DigitalOut myled4(LED4);
Nerosho 0:d0f3991839ec 45
Nerosho 15:bc013c313ef5 46 mbedTimer myTimer;
Nerosho 15:bc013c313ef5 47 Timer timer_rec;//時間計測
Nerosho 15:bc013c313ef5 48
Nerosho 15:bc013c313ef5 49 int val;
Nerosho 16:917a2c03bd7c 50 int val2;
Nerosho 18:05d5de29511d 51 int val3;
Nerosho 18:05d5de29511d 52 int count;
Nerosho 15:bc013c313ef5 53 char sendMessage[128];
Nerosho 17:993f2fcc43df 54 char sensorMessage[128];
Nerosho 16:917a2c03bd7c 55 float ave_sensor;
Nerosho 16:917a2c03bd7c 56 int timer;
Nerosho 16:917a2c03bd7c 57 int timer2;
Nerosho 16:917a2c03bd7c 58 int timer3;
Nerosho 16:917a2c03bd7c 59 int timer4;
Nerosho 14:a07d2a958617 60
Nerosho 14:a07d2a958617 61 /*******************************************************************************
Nerosho 14:a07d2a958617 62 メイン関数
Nerosho 14:a07d2a958617 63 *******************************************************************************/
Nerosho 14:a07d2a958617 64
Nerosho 0:d0f3991839ec 65 int main()
Nerosho 0:d0f3991839ec 66 {
Nerosho 15:bc013c313ef5 67
Nerosho 15:bc013c313ef5 68 timer_rec.start();
Nerosho 18:05d5de29511d 69 wait(5);//起動してからちょっと待つ
takepiyo 21:fa4360ec5014 70
takepiyo 8:6b835a82b1eb 71 inlet.Stop();
Nerosho 15:bc013c313ef5 72 FILE* fp= fopen(fname, "a");
Nerosho 15:bc013c313ef5 73 if(fp == NULL) {
Nerosho 15:bc013c313ef5 74
Nerosho 14:a07d2a958617 75 myled=1;
Nerosho 14:a07d2a958617 76 myled2=1;
Nerosho 14:a07d2a958617 77 myled3=1;
Nerosho 14:a07d2a958617 78 myled4=1;
Nerosho 14:a07d2a958617 79
Nerosho 15:bc013c313ef5 80 fp = fopen(fname, "a");
Nerosho 15:bc013c313ef5 81 if(fp != NULL) {
Nerosho 15:bc013c313ef5 82 myled=0;
Nerosho 15:bc013c313ef5 83 myled2=0;
Nerosho 15:bc013c313ef5 84 myled3=0;
Nerosho 15:bc013c313ef5 85 myled4=0;
Nerosho 15:bc013c313ef5 86 }
takepiyo 21:fa4360ec5014 87 }
Nerosho 15:bc013c313ef5 88
Nerosho 15:bc013c313ef5 89 val=timer_rec.read();
Nerosho 15:bc013c313ef5 90 myTimer.sendMessage(val);
Nerosho 15:bc013c313ef5 91 fprintf(fp, "%s CanSatStart!\r\n",myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 92 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 93 //MuPort.send("CanSat Start!\r\n");
takepiyo 3:4f1bac105598 94
Nerosho 18:05d5de29511d 95 /*******************************************************************************
Nerosho 18:05d5de29511d 96 溶断まで待機
Nerosho 18:05d5de29511d 97 *******************************************************************************/
Nerosho 18:05d5de29511d 98 timer=0;
Nerosho 18:05d5de29511d 99 val2=0;
Nerosho 18:05d5de29511d 100 val3=0;
Nerosho 18:05d5de29511d 101
Nerosho 18:05d5de29511d 102 val=timer_rec.read();
Nerosho 18:05d5de29511d 103 val3=val+val2;
Nerosho 18:05d5de29511d 104 myTimer.sendMessage(val3);
Nerosho 18:05d5de29511d 105 fprintf(fp, "%s GPSstart!\r\n",myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 106 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 107 //MuPort.send("GPS start!\r\n");
Nerosho 18:05d5de29511d 108
Nerosho 18:05d5de29511d 109 while(1) {
Nerosho 18:05d5de29511d 110 myled=0;
Nerosho 20:b70e877cdc0f 111 myled2=0;
takepiyo 21:fa4360ec5014 112 myled3=0;
takepiyo 21:fa4360ec5014 113 myled4=1;
Nerosho 18:05d5de29511d 114
Nerosho 18:05d5de29511d 115 mygps.getGPGGA();
Nerosho 18:05d5de29511d 116 if(mygps.GPSread) {
takepiyo 21:fa4360ec5014 117 myled4=0;
Nerosho 18:05d5de29511d 118 val=timer_rec.read();
Nerosho 18:05d5de29511d 119 val3=val+val2;
Nerosho 18:05d5de29511d 120 myTimer.sendMessage(val3);
takepiyo 27:2d8f63f86ef3 121 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 122 //MuPort.send(mygps.getGPS);
Nerosho 28:c8fabcd38c9a 123 fprintf(fp, "%s,%s",myTimer.timeMessage,mygps.getGPS);
Nerosho 18:05d5de29511d 124 timer++;
Nerosho 18:05d5de29511d 125 }
Nerosho 18:05d5de29511d 126
Nerosho 18:05d5de29511d 127 if(timer>=WAITTIME) { //落下開始してからTBD秒後whileを抜ける.
Nerosho 18:05d5de29511d 128 break;
Nerosho 18:05d5de29511d 129 }
Nerosho 18:05d5de29511d 130
Nerosho 18:05d5de29511d 131 if(val>=1800) {
Nerosho 18:05d5de29511d 132 //timer_rec.stop();
Nerosho 18:05d5de29511d 133 timer_rec.reset();
Nerosho 18:05d5de29511d 134 //timer_rec.start();
Nerosho 18:05d5de29511d 135 val2+=val;
Nerosho 18:05d5de29511d 136 val=0;
Nerosho 18:05d5de29511d 137
Nerosho 18:05d5de29511d 138 }
Nerosho 18:05d5de29511d 139
Nerosho 18:05d5de29511d 140 }
Nerosho 18:05d5de29511d 141
Nerosho 2:d6dc5c2224cc 142
takepiyo 3:4f1bac105598 143 //溶断機構部分
Nerosho 2:d6dc5c2224cc 144
Nerosho 14:a07d2a958617 145 fprintf(fp, "FireStart!\r\n");
takepiyo 27:2d8f63f86ef3 146 //MuPort.send("Fire Start!\r\n");
Nerosho 14:a07d2a958617 147
takepiyo 8:6b835a82b1eb 148 FIRE=1;
Nerosho 15:bc013c313ef5 149 myled=1;
takepiyo 8:6b835a82b1eb 150 wait(FIRETIME);//溶断にかかる時間TBD秒
takepiyo 8:6b835a82b1eb 151 FIRE=0;
Nerosho 15:bc013c313ef5 152 myled=0;
Nerosho 15:bc013c313ef5 153
takepiyo 23:a5d3e9827c43 154 wait(10);
Nerosho 15:bc013c313ef5 155
Nerosho 14:a07d2a958617 156 FIRE=1;
Nerosho 15:bc013c313ef5 157 myled=1;
takepiyo 24:b962d75f2f29 158 wait(FIRETIME);//溶断にかかる時間TBD秒
Nerosho 14:a07d2a958617 159 FIRE=0;
Nerosho 20:b70e877cdc0f 160 myled=0;
Nerosho 14:a07d2a958617 161
Nerosho 14:a07d2a958617 162 fprintf(fp, "FireFinish!\r\n");
takepiyo 27:2d8f63f86ef3 163 //MuPort.send("Fire Finish!\r\n");
Nerosho 14:a07d2a958617 164
takepiyo 3:4f1bac105598 165 //溶断機構終わり
Nerosho 0:d0f3991839ec 166
takepiyo 3:4f1bac105598 167
Nerosho 14:a07d2a958617 168 /*******************************************************************************
Nerosho 18:05d5de29511d 169 シェンロン展開
Nerosho 14:a07d2a958617 170 *******************************************************************************/
Nerosho 16:917a2c03bd7c 171 timer=0;
Nerosho 2:d6dc5c2224cc 172
Nerosho 14:a07d2a958617 173 while(1) {
takepiyo 8:6b835a82b1eb 174 myled=0;
takepiyo 21:fa4360ec5014 175 myled2=0;
takepiyo 21:fa4360ec5014 176 myled3=1;
takepiyo 21:fa4360ec5014 177 myled4=0;
Nerosho 14:a07d2a958617 178
Nerosho 16:917a2c03bd7c 179 mygps.getGPGGA();
Nerosho 16:917a2c03bd7c 180 if(mygps.GPSread) {
takepiyo 21:fa4360ec5014 181 myled3=0;
Nerosho 16:917a2c03bd7c 182 val=timer_rec.read();
Nerosho 18:05d5de29511d 183 val3=val+val2;
Nerosho 18:05d5de29511d 184 myTimer.sendMessage(val3);
takepiyo 27:2d8f63f86ef3 185 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 186 //MuPort.send(mygps.getGPS);
Nerosho 28:c8fabcd38c9a 187 fprintf(fp, "%s,%s",myTimer.timeMessage,mygps.getGPS);
Nerosho 16:917a2c03bd7c 188 timer++;
Nerosho 16:917a2c03bd7c 189 }
takepiyo 3:4f1bac105598 190
Nerosho 18:05d5de29511d 191 if(timer>=FALLTIME) { //落下開始してからTBD秒後whileを抜ける.
Nerosho 15:bc013c313ef5 192 fclose(fp);
Nerosho 15:bc013c313ef5 193 break;
Nerosho 15:bc013c313ef5 194 }
Nerosho 2:d6dc5c2224cc 195
Nerosho 18:05d5de29511d 196 if(val>=1800) {
Nerosho 18:05d5de29511d 197 //timer_rec.stop();
Nerosho 18:05d5de29511d 198 timer_rec.reset();
Nerosho 18:05d5de29511d 199 //timer_rec.start();
Nerosho 18:05d5de29511d 200 val2+=val;
Nerosho 18:05d5de29511d 201 val=0;
Nerosho 18:05d5de29511d 202
Nerosho 18:05d5de29511d 203 }
Nerosho 18:05d5de29511d 204
Nerosho 0:d0f3991839ec 205 }
Nerosho 14:a07d2a958617 206
Nerosho 14:a07d2a958617 207
Nerosho 14:a07d2a958617 208 /*******************************************************************************
Nerosho 16:917a2c03bd7c 209 インレット連続閉鎖
Nerosho 14:a07d2a958617 210 *******************************************************************************/
Nerosho 14:a07d2a958617 211
Nerosho 15:bc013c313ef5 212 fp= fopen(fname, "a");
Nerosho 16:917a2c03bd7c 213 FILE* fp2= fopen(fname2, "a");
Nerosho 15:bc013c313ef5 214 val=timer_rec.read();
Nerosho 18:05d5de29511d 215 val3=val+val2;
Nerosho 18:05d5de29511d 216 myTimer.sendMessage(val3);
Nerosho 16:917a2c03bd7c 217 fprintf(fp, "%s ClosingModeStart!\r\n",myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 218 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 219 //MuPort.send("Closing Mode start!\r\n");
Nerosho 14:a07d2a958617 220
Nerosho 14:a07d2a958617 221 timer=0;//モーター時間で止める用
Nerosho 16:917a2c03bd7c 222 timer2=0;
Nerosho 18:05d5de29511d 223 count=0;
Nerosho 14:a07d2a958617 224
takepiyo 21:fa4360ec5014 225 while(1)
takepiyo 21:fa4360ec5014 226 {
Nerosho 15:bc013c313ef5 227 myled=0;
takepiyo 8:6b835a82b1eb 228 myled2=0;
takepiyo 8:6b835a82b1eb 229 myled3=1;
takepiyo 21:fa4360ec5014 230 myled4=1;
takepiyo 21:fa4360ec5014 231
takepiyo 21:fa4360ec5014 232 inlet.Close();
takepiyo 3:4f1bac105598 233
Nerosho 16:917a2c03bd7c 234 mygps.getGPGGA();
Nerosho 17:993f2fcc43df 235
Nerosho 18:05d5de29511d 236 val=timer_rec.read();
Nerosho 18:05d5de29511d 237 val3=val+val2;
Nerosho 18:05d5de29511d 238 myTimer.sendMessage(val3);
Nerosho 17:993f2fcc43df 239 inlet.getvalue1();
Nerosho 17:993f2fcc43df 240 inlet.getvalue2();
Nerosho 17:993f2fcc43df 241 ave_sensor=(inlet.value1+inlet.value2)/2;
Nerosho 18:05d5de29511d 242 //fp2= fopen(fname2, "a");
Nerosho 18:05d5de29511d 243 fprintf(fp2, "%s,%d,sensor1,%f,sensor2,%f,average,%f\n",myTimer.timeMessage,timer2,inlet.value1,inlet.value2,ave_sensor);
Nerosho 18:05d5de29511d 244 //fclose(fp2);
Nerosho 17:993f2fcc43df 245 timer2++;
Nerosho 17:993f2fcc43df 246
Nerosho 16:917a2c03bd7c 247 if(mygps.GPSread) {
takepiyo 21:fa4360ec5014 248 myled3=0;
takepiyo 21:fa4360ec5014 249 myled4=0;
Nerosho 16:917a2c03bd7c 250 val=timer_rec.read();
Nerosho 18:05d5de29511d 251 val3=val+val2;
Nerosho 18:05d5de29511d 252 myTimer.sendMessage(val3);
takepiyo 27:2d8f63f86ef3 253 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 254 //MuPort.send(mygps.getGPS);
Nerosho 17:993f2fcc43df 255 snprintf(sensorMessage, 128, "%f", ave_sensor);
takepiyo 27:2d8f63f86ef3 256 //MuPort.send(sensorMessage);
Nerosho 28:c8fabcd38c9a 257 fprintf(fp, "%s,%s",myTimer.timeMessage,mygps.getGPS);
Nerosho 19:75067f4d49b6 258 timer++;
Nerosho 16:917a2c03bd7c 259 }
Nerosho 16:917a2c03bd7c 260
Nerosho 16:917a2c03bd7c 261
Nerosho 18:05d5de29511d 262 if(ave_sensor>THRESHOLID) {
Nerosho 18:05d5de29511d 263 count++;
Nerosho 18:05d5de29511d 264 }
takepiyo 3:4f1bac105598 265
takepiyo 21:fa4360ec5014 266 if(count>=SAMPLENUMBER)
takepiyo 21:fa4360ec5014 267 {
Nerosho 16:917a2c03bd7c 268 val=timer_rec.read();
Nerosho 18:05d5de29511d 269 val3=val+val2;
Nerosho 18:05d5de29511d 270 myTimer.sendMessage(val3);
Nerosho 16:917a2c03bd7c 271 fprintf(fp, "%s Get the rigidity!\r\n",myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 272 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 273 //MuPort.send("Get the rigidity!\r\n");
Nerosho 16:917a2c03bd7c 274
Nerosho 16:917a2c03bd7c 275 timer=0;//モーター時間で止める用
takepiyo 3:4f1bac105598 276
takepiyo 21:fa4360ec5014 277 while(1) //剛性を得た後一定時間でとめる
takepiyo 21:fa4360ec5014 278 {
takepiyo 21:fa4360ec5014 279 myled=0;
takepiyo 21:fa4360ec5014 280 myled2=1;
takepiyo 21:fa4360ec5014 281 myled3=0;
takepiyo 21:fa4360ec5014 282 myled4=0;
takepiyo 21:fa4360ec5014 283
Nerosho 16:917a2c03bd7c 284 mygps.getGPGGA();
Nerosho 17:993f2fcc43df 285
Nerosho 18:05d5de29511d 286 val=timer_rec.read();
Nerosho 18:05d5de29511d 287 val3=val+val2;
Nerosho 18:05d5de29511d 288 myTimer.sendMessage(val3);
Nerosho 17:993f2fcc43df 289 inlet.getvalue1();
Nerosho 17:993f2fcc43df 290 inlet.getvalue2();
Nerosho 17:993f2fcc43df 291 ave_sensor=(inlet.value1+inlet.value2)/2;
Nerosho 18:05d5de29511d 292 //fp2= fopen(fname2, "a");
Nerosho 18:05d5de29511d 293 fprintf(fp2, "%s,%d,sensor1,%f,sensor2,%f,average,%f\n",myTimer.timeMessage,timer2,inlet.value1,inlet.value2,ave_sensor);
Nerosho 18:05d5de29511d 294 //fclose(fp2);
Nerosho 17:993f2fcc43df 295 timer2++;
Nerosho 17:993f2fcc43df 296
takepiyo 21:fa4360ec5014 297 if(mygps.GPSread)
takepiyo 21:fa4360ec5014 298 {
takepiyo 21:fa4360ec5014 299 myled2=0;
Nerosho 16:917a2c03bd7c 300 val=timer_rec.read();
Nerosho 18:05d5de29511d 301 val3=val+val2;
Nerosho 18:05d5de29511d 302 myTimer.sendMessage(val3);
takepiyo 27:2d8f63f86ef3 303 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 304 //MuPort.send(mygps.getGPS);
Nerosho 17:993f2fcc43df 305 snprintf(sensorMessage, 128, "%f", ave_sensor);
takepiyo 27:2d8f63f86ef3 306 //MuPort.send(sensorMessage);
Nerosho 28:c8fabcd38c9a 307 fprintf(fp, "%s,%s",myTimer.timeMessage,mygps.getGPS);
Nerosho 16:917a2c03bd7c 308 timer++;
Nerosho 16:917a2c03bd7c 309 }
Nerosho 16:917a2c03bd7c 310
Nerosho 16:917a2c03bd7c 311
takepiyo 21:fa4360ec5014 312 if(timer>=CLOSETIME)
takepiyo 21:fa4360ec5014 313 {
Nerosho 16:917a2c03bd7c 314 break;
Nerosho 16:917a2c03bd7c 315 }
takepiyo 3:4f1bac105598 316 }
Nerosho 15:bc013c313ef5 317
Nerosho 16:917a2c03bd7c 318 inlet.Stop();
Nerosho 16:917a2c03bd7c 319 val=timer_rec.read();
Nerosho 18:05d5de29511d 320 val3=val+val2;
Nerosho 18:05d5de29511d 321 myTimer.sendMessage(val3);
takepiyo 21:fa4360ec5014 322 fprintf(fp, "%s ClosingModeFinish!\r\n",myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 323 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 324 //MuPort.send("Time over. Closing Mode Finish!\r\n");
Nerosho 16:917a2c03bd7c 325 fclose(fp);
Nerosho 16:917a2c03bd7c 326 fclose(fp2);
Nerosho 16:917a2c03bd7c 327 break;
Nerosho 16:917a2c03bd7c 328
takepiyo 3:4f1bac105598 329 }
Nerosho 20:b70e877cdc0f 330
Nerosho 16:917a2c03bd7c 331
Nerosho 18:05d5de29511d 332 if(val>=1800) {
Nerosho 18:05d5de29511d 333 //timer_rec.stop();
Nerosho 18:05d5de29511d 334 timer_rec.reset();
Nerosho 18:05d5de29511d 335 //timer_rec.start();
Nerosho 18:05d5de29511d 336 val2+=val;
Nerosho 18:05d5de29511d 337 val=0;
Nerosho 18:05d5de29511d 338
Nerosho 18:05d5de29511d 339 }
Nerosho 20:b70e877cdc0f 340
takepiyo 21:fa4360ec5014 341 if(timer>LIMITTIME)
takepiyo 21:fa4360ec5014 342 {
takepiyo 21:fa4360ec5014 343
Nerosho 19:75067f4d49b6 344 inlet.Stop();
Nerosho 19:75067f4d49b6 345 val=timer_rec.read();
Nerosho 19:75067f4d49b6 346 val3=val+val2;
Nerosho 19:75067f4d49b6 347 myTimer.sendMessage(val3);
takepiyo 21:fa4360ec5014 348 fprintf(fp, "%s TimeOver!ClosingModeFinsh!\r\n",myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 349 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 350 //MuPort.send("Closing Mode Finish!\r\n");
Nerosho 19:75067f4d49b6 351 fclose(fp);
Nerosho 19:75067f4d49b6 352 fclose(fp2);
Nerosho 19:75067f4d49b6 353 break;
Nerosho 19:75067f4d49b6 354
Nerosho 19:75067f4d49b6 355 }
Nerosho 16:917a2c03bd7c 356 }
Nerosho 16:917a2c03bd7c 357
Nerosho 16:917a2c03bd7c 358 /*******************************************************************************
Nerosho 16:917a2c03bd7c 359 インレットインターバル閉鎖
Nerosho 16:917a2c03bd7c 360 *******************************************************************************/
Nerosho 16:917a2c03bd7c 361
Nerosho 18:05d5de29511d 362 fp= fopen(fname, "a");
Nerosho 18:05d5de29511d 363 fp2= fopen(fname2, "a");
Nerosho 16:917a2c03bd7c 364 val=timer_rec.read();
Nerosho 18:05d5de29511d 365 val3=val+val2;
Nerosho 18:05d5de29511d 366 myTimer.sendMessage(val3);
Nerosho 16:917a2c03bd7c 367 fprintf(fp, "%s IntervalModeStart!\r\n",myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 368 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 369 //MuPort.send("Interval Mode start!\r\n");
Nerosho 18:05d5de29511d 370 fclose(fp);
Nerosho 16:917a2c03bd7c 371
Nerosho 16:917a2c03bd7c 372 timer=0;//モーター時間で止める用
Nerosho 16:917a2c03bd7c 373 timer3=0;
Nerosho 18:05d5de29511d 374
Nerosho 16:917a2c03bd7c 375
Nerosho 16:917a2c03bd7c 376 while(1) {
Nerosho 16:917a2c03bd7c 377
Nerosho 16:917a2c03bd7c 378 myled=0;
takepiyo 21:fa4360ec5014 379 myled2=1;
Nerosho 16:917a2c03bd7c 380 myled3=0;
Nerosho 16:917a2c03bd7c 381 myled4=1;
Nerosho 16:917a2c03bd7c 382
Nerosho 16:917a2c03bd7c 383 mygps.getGPGGA();
Nerosho 16:917a2c03bd7c 384
Nerosho 18:05d5de29511d 385 val=timer_rec.read();
Nerosho 18:05d5de29511d 386 val3=val+val2;
Nerosho 18:05d5de29511d 387 myTimer.sendMessage(val3);
Nerosho 16:917a2c03bd7c 388 inlet.getvalue1();
Nerosho 16:917a2c03bd7c 389 inlet.getvalue2();
Nerosho 16:917a2c03bd7c 390 ave_sensor=(inlet.value1+inlet.value2)/2;
Nerosho 16:917a2c03bd7c 391 //fp2= fopen(fname2, "a");
Nerosho 18:05d5de29511d 392 fprintf(fp2, "%s,%d,sensor1,%f,sensor2,%f,average,%f\n",myTimer.timeMessage,timer2,inlet.value1,inlet.value2,ave_sensor);
Nerosho 16:917a2c03bd7c 393 //fclose(fp2);
Nerosho 16:917a2c03bd7c 394 timer2++;
Nerosho 16:917a2c03bd7c 395
Nerosho 17:993f2fcc43df 396 if(mygps.GPSread) {
takepiyo 21:fa4360ec5014 397 myled2=0;
takepiyo 21:fa4360ec5014 398 myled4=0;
Nerosho 17:993f2fcc43df 399 val=timer_rec.read();
Nerosho 18:05d5de29511d 400 val3=val+val2;
Nerosho 18:05d5de29511d 401 myTimer.sendMessage(val3);
takepiyo 27:2d8f63f86ef3 402 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 403 //MuPort.send(mygps.getGPS);
Nerosho 18:05d5de29511d 404 snprintf(sensorMessage, 128, "%f\n", ave_sensor);
takepiyo 27:2d8f63f86ef3 405 //MuPort.send(sensorMessage);
Nerosho 17:993f2fcc43df 406 fp= fopen(fname, "a");
Nerosho 28:c8fabcd38c9a 407 fprintf(fp, "%s,%s",myTimer.timeMessage,mygps.getGPS);
Nerosho 17:993f2fcc43df 408 fclose(fp);
Nerosho 17:993f2fcc43df 409 fclose(fp2);
Nerosho 17:993f2fcc43df 410 fp2= fopen(fname2, "a");
Nerosho 17:993f2fcc43df 411 timer++;
Nerosho 17:993f2fcc43df 412 timer3++;
Nerosho 17:993f2fcc43df 413 }
Nerosho 17:993f2fcc43df 414
Nerosho 17:993f2fcc43df 415
Nerosho 17:993f2fcc43df 416
Nerosho 18:05d5de29511d 417 if(timer3>=INTERVAL_HIGH) {
Nerosho 16:917a2c03bd7c 418 inlet.Stop();
Nerosho 16:917a2c03bd7c 419
Nerosho 16:917a2c03bd7c 420 timer3=0;
Nerosho 16:917a2c03bd7c 421 timer4=0;
Nerosho 16:917a2c03bd7c 422
Nerosho 16:917a2c03bd7c 423 while(1) {
Nerosho 20:b70e877cdc0f 424 myled=0;
takepiyo 21:fa4360ec5014 425 myled2=1;
Nerosho 20:b70e877cdc0f 426 myled3=0;
Nerosho 20:b70e877cdc0f 427 myled4=1;
Nerosho 16:917a2c03bd7c 428 mygps.getGPGGA();
Nerosho 16:917a2c03bd7c 429
Nerosho 18:05d5de29511d 430 val=timer_rec.read();
Nerosho 18:05d5de29511d 431 val3=val+val2;
Nerosho 18:05d5de29511d 432 myTimer.sendMessage(val3);
Nerosho 16:917a2c03bd7c 433 inlet.getvalue1();
Nerosho 16:917a2c03bd7c 434 inlet.getvalue2();
Nerosho 16:917a2c03bd7c 435 ave_sensor=(inlet.value1+inlet.value2)/2;
Nerosho 16:917a2c03bd7c 436 //fp2= fopen(fname2, "a");
Nerosho 18:05d5de29511d 437 fprintf(fp2, "%s,%d,sensor1,%f,sensor2,%f,average,%f\n",myTimer.timeMessage,timer2,inlet.value1,inlet.value2,ave_sensor);
Nerosho 16:917a2c03bd7c 438 //fclose(fp2);
Nerosho 16:917a2c03bd7c 439 timer2++;
Nerosho 16:917a2c03bd7c 440
Nerosho 17:993f2fcc43df 441 if(mygps.GPSread) {
takepiyo 21:fa4360ec5014 442 myled2=0;
takepiyo 21:fa4360ec5014 443 myled4=0;
Nerosho 18:05d5de29511d 444 val=timer_rec.read();
Nerosho 18:05d5de29511d 445 val3=val+val2;
Nerosho 18:05d5de29511d 446 myTimer.sendMessage(val3);
takepiyo 27:2d8f63f86ef3 447 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 448 //MuPort.send(mygps.getGPS);
Nerosho 18:05d5de29511d 449 snprintf(sensorMessage, 128, "%f\n", ave_sensor);
takepiyo 27:2d8f63f86ef3 450 //MuPort.send(sensorMessage);
Nerosho 17:993f2fcc43df 451 fp= fopen(fname, "a");
Nerosho 28:c8fabcd38c9a 452 fprintf(fp, "%s,%s",myTimer.timeMessage,mygps.getGPS);
Nerosho 17:993f2fcc43df 453 fclose(fp);
Nerosho 17:993f2fcc43df 454 fclose(fp2);
Nerosho 17:993f2fcc43df 455 fp2= fopen(fname2, "a");
Nerosho 17:993f2fcc43df 456 timer++;
Nerosho 17:993f2fcc43df 457 timer4++;
Nerosho 17:993f2fcc43df 458 }
Nerosho 17:993f2fcc43df 459
Nerosho 17:993f2fcc43df 460
Nerosho 18:05d5de29511d 461 if(timer4>=INTERVAL_LOW) {
Nerosho 16:917a2c03bd7c 462 break;
Nerosho 16:917a2c03bd7c 463 }
Nerosho 16:917a2c03bd7c 464
Nerosho 16:917a2c03bd7c 465 }
Nerosho 16:917a2c03bd7c 466
Nerosho 16:917a2c03bd7c 467 }
Nerosho 16:917a2c03bd7c 468
Nerosho 18:05d5de29511d 469 if(val>=1800) {
Nerosho 17:993f2fcc43df 470 //timer_rec.stop();
Nerosho 16:917a2c03bd7c 471 timer_rec.reset();
Nerosho 17:993f2fcc43df 472 //timer_rec.start();
Nerosho 16:917a2c03bd7c 473 val2+=val;
Nerosho 16:917a2c03bd7c 474 val=0;
Nerosho 18:05d5de29511d 475
Nerosho 16:917a2c03bd7c 476 }
Nerosho 16:917a2c03bd7c 477
Nerosho 16:917a2c03bd7c 478
Nerosho 18:05d5de29511d 479 if(timer>=INTERVALTIME) {
Nerosho 16:917a2c03bd7c 480 inlet.Stop();
Nerosho 16:917a2c03bd7c 481 val=timer_rec.read();
Nerosho 18:05d5de29511d 482 val3=val+val2;
Nerosho 18:05d5de29511d 483 myTimer.sendMessage(val3);
Nerosho 16:917a2c03bd7c 484 fprintf(fp, "%s IntervalModeFinish!\r\n",myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 485 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 486 //MuPort.send("Interval Mode finish!\r\n");
Nerosho 16:917a2c03bd7c 487 fclose(fp);
Nerosho 16:917a2c03bd7c 488 fclose(fp2);
Nerosho 15:bc013c313ef5 489 break;
Nerosho 15:bc013c313ef5 490 }
takepiyo 3:4f1bac105598 491
takepiyo 21:fa4360ec5014 492 inlet.Close();
Nerosho 16:917a2c03bd7c 493
takepiyo 3:4f1bac105598 494 }
Nerosho 14:a07d2a958617 495
Nerosho 14:a07d2a958617 496
Nerosho 14:a07d2a958617 497 /*******************************************************************************
Nerosho 14:a07d2a958617 498 待機モード(何もせずGPS信号を発する)
Nerosho 14:a07d2a958617 499 *******************************************************************************/
Nerosho 14:a07d2a958617 500
Nerosho 15:bc013c313ef5 501 fp= fopen(fname, "a");
Nerosho 15:bc013c313ef5 502 val=timer_rec.read();
Nerosho 18:05d5de29511d 503 val3=val+val2;
Nerosho 18:05d5de29511d 504 myTimer.sendMessage(val3);
Nerosho 15:bc013c313ef5 505 fprintf(fp, "%s StandbyModeStart!\r\n",myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 506 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 507 //MuPort.send("Standby mode start!\r\n");
Nerosho 15:bc013c313ef5 508 fclose(fp);
Nerosho 14:a07d2a958617 509
Nerosho 14:a07d2a958617 510
Nerosho 14:a07d2a958617 511 while(1) {
Nerosho 15:bc013c313ef5 512 myled=0;
takepiyo 21:fa4360ec5014 513 myled2=1;
takepiyo 21:fa4360ec5014 514 myled3=1;
Nerosho 20:b70e877cdc0f 515 myled4=0;
takepiyo 6:b7bf39bc3487 516
Nerosho 16:917a2c03bd7c 517 mygps.getGPGGA();
takepiyo 21:fa4360ec5014 518 if(mygps.GPSread)
takepiyo 21:fa4360ec5014 519 {
takepiyo 21:fa4360ec5014 520 myled2=0;
takepiyo 21:fa4360ec5014 521 myled3=0;
Nerosho 18:05d5de29511d 522 val=timer_rec.read();
Nerosho 18:05d5de29511d 523 val3=val+val2;
Nerosho 18:05d5de29511d 524 myTimer.sendMessage(val3);
takepiyo 27:2d8f63f86ef3 525 //MuPort.send(myTimer.timeMessage);
takepiyo 27:2d8f63f86ef3 526 //MuPort.send(mygps.getGPS);
Nerosho 16:917a2c03bd7c 527 fp= fopen(fname, "a");
Nerosho 28:c8fabcd38c9a 528 fprintf(fp, "%s,%s",myTimer.timeMessage,mygps.getGPS);
Nerosho 16:917a2c03bd7c 529 fclose(fp);
Nerosho 16:917a2c03bd7c 530 //wait(1.0);
Nerosho 16:917a2c03bd7c 531 }
Nerosho 17:993f2fcc43df 532
Nerosho 18:05d5de29511d 533 if(val>=1800) {
Nerosho 17:993f2fcc43df 534 //timer_rec.stop();
Nerosho 16:917a2c03bd7c 535 timer_rec.reset();
Nerosho 17:993f2fcc43df 536 //timer_rec.start();
Nerosho 16:917a2c03bd7c 537 val2+=val;
Nerosho 16:917a2c03bd7c 538 val=0;
Nerosho 16:917a2c03bd7c 539 }
takepiyo 6:b7bf39bc3487 540
takepiyo 6:b7bf39bc3487 541 }
Nerosho 14:a07d2a958617 542
Nerosho 2:d6dc5c2224cc 543 }
Nerosho 2:d6dc5c2224cc 544