all ok noMU2

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Committer:
takepiyo
Date:
Mon Sep 09 08:17:18 2019 +0000
Revision:
25:5abbad34f941
Parent:
24:b962d75f2f29
Child:
26:7ec2cf6a6b51
syusei

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