change2shinsu

Dependencies:   mbed mbedTimer SDFileSystem MU2 GPS

Committer:
Nerosho
Date:
Mon Sep 02 14:15:47 2019 +0000
Revision:
16:917a2c03bd7c
Parent:
15:bc013c313ef5
Child:
17:993f2fcc43df
0902

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