change2shinsu

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Committer:
Nerosho
Date:
Tue Sep 03 20:34:51 2019 +0000
Revision:
18:05d5de29511d
Parent:
17:993f2fcc43df
Child:
19:75067f4d49b6
0904LAST

Who changed what in which revision?

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