all ok noMU2

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Committer:
takepiyo
Date:
Mon Sep 09 09:29:03 2019 +0000
Revision:
26:7ec2cf6a6b51
Parent:
25:5abbad34f941
Child:
27:2d8f63f86ef3
ok yesmu2

Who changed what in which revision?

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