all ok yesMU2

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Committer:
Nerosho
Date:
Tue Sep 10 23:25:05 2019 +0000
Revision:
27:6ac03194e45e
Parent:
26:7ec2cf6a6b51
Child:
28:295ed570a51d
Sequence version

Who changed what in which revision?

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