change2shinsu

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Committer:
Nerosho
Date:
Mon Sep 09 05:41:18 2019 +0000
Revision:
20:b70e877cdc0f
Parent:
19:75067f4d49b6
Child:
21:fa4360ec5014
0908 for test

Who changed what in which revision?

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