Titech Cansat / Mbed 2 deprecated FM_ver4_for_TEST_noMU2

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Committer:
Nerosho
Date:
Wed Sep 11 02:36:52 2019 +0000
Revision:
28:295ed570a51d
Parent:
27:6ac03194e45e
Child:
29:b3c88e7c4043
0910 EtoE OK!

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