all ok noMU2

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Committer:
takepiyo
Date:
Mon Sep 09 07:50:44 2019 +0000
Revision:
23:a5d3e9827c43
Parent:
22:9c062a2def02
Child:
24:b962d75f2f29
MU2nashi

Who changed what in which revision?

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