高高度CanSat Space SWANの投下時に使用したプログラム.(IZU2019)

Dependencies:   Nichrome_lib mbed ads1115_test BNO055_lib ADXL375_i2c ES920LR CCS811_lib SDFileSystem BME280_lib INA226_lib EEPROM_lib GPS_interrupt

Committer:
Sigma884
Date:
Tue Feb 19 15:00:39 2019 +0000
Revision:
0:03be138291de
Child:
1:6dea30c8b406
20190219 ver.0.1

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Sigma884 0:03be138291de 1 #include "mbed.h"
Sigma884 0:03be138291de 2 #include "math.h"
Sigma884 0:03be138291de 3
Sigma884 0:03be138291de 4 #include "Adafruit_ADS1015.h"
Sigma884 0:03be138291de 5 #include "ADXL375_i2c.h"
Sigma884 0:03be138291de 6 #include "BME280_lib.h"
Sigma884 0:03be138291de 7 #include "BNO055_lib.h"
Sigma884 0:03be138291de 8 #include "CCS811_lib.h"
Sigma884 0:03be138291de 9 #include "EEPROM_lib.h"
Sigma884 0:03be138291de 10 #include "ES920LR.hpp"
Sigma884 0:03be138291de 11 #include "GPS_interrupt.h"
Sigma884 0:03be138291de 12 #include "INA226.h"
Sigma884 0:03be138291de 13 #include "Nichrome_lib.h"
Sigma884 0:03be138291de 14 #include "SDFileSystem.h"
Sigma884 0:03be138291de 15
Sigma884 0:03be138291de 16
Sigma884 0:03be138291de 17 /*******************************************************************************
Sigma884 0:03be138291de 18 設定値
Sigma884 0:03be138291de 19 投下前に必ず確認!!
Sigma884 0:03be138291de 20 *******************************************************************************/
Sigma884 0:03be138291de 21
Sigma884 0:03be138291de 22
Sigma884 0:03be138291de 23 /*******************************************************************************
Sigma884 0:03be138291de 24 コンストラクタ
Sigma884 0:03be138291de 25 *******************************************************************************/
Sigma884 0:03be138291de 26 RawSerial pc(USBTX, USBRX, 115200);
Sigma884 0:03be138291de 27
Sigma884 0:03be138291de 28 RawSerial serial_es920(p9, p10);
Sigma884 0:03be138291de 29 ES920LR es920(serial_es920, pc, 115200);
Sigma884 0:03be138291de 30
Sigma884 0:03be138291de 31 Serial GPS_serial(p13, p14, 38400);
Sigma884 0:03be138291de 32 GPS_interrupt GPS(&GPS_serial);
Sigma884 0:03be138291de 33 float GPS_freq = 4;
Sigma884 0:03be138291de 34
Sigma884 0:03be138291de 35 SDFileSystem sd(p5, p6, p7, p8, "sd");
Sigma884 0:03be138291de 36 const char file_name[64] = "/sd/Space_SWAN_LOG.txt";
Sigma884 0:03be138291de 37
Sigma884 0:03be138291de 38 I2C i2c_bus(p28, p27);
Sigma884 0:03be138291de 39 ADXL375_i2c ADXL375(i2c_bus, ADXL375_i2c::ALT_ADDRESS_HIGH);
Sigma884 0:03be138291de 40 myINA226 INA226(i2c_bus, myINA226::A1_VDD, myINA226::A0_VDD);
Sigma884 0:03be138291de 41 BME280_lib BME280(i2c_bus, BME280_lib::AD0_LOW);
Sigma884 0:03be138291de 42 BNO055_lib BNO055(i2c_bus, BNO055_lib::AD0_HIGH);
Sigma884 0:03be138291de 43 CCS811_lib CCS811(i2c_bus, CCS811_lib::AD0_LOW);
Sigma884 0:03be138291de 44 EEPROM_lib EEPROM(i2c_bus, 4);
Sigma884 0:03be138291de 45
Sigma884 0:03be138291de 46 Adafruit_ADS1115 ADS1115(&i2c_bus, ADS1015_ADDRESS);
Sigma884 0:03be138291de 47
Sigma884 0:03be138291de 48 DigitalOut valve1(p23);
Sigma884 0:03be138291de 49 DigitalOut valve2(p24);
Sigma884 0:03be138291de 50 DigitalOut valve3(p24);
Sigma884 0:03be138291de 51 DigitalOut valve4(p25);
Sigma884 0:03be138291de 52 DigitalOut Buzzer(p22);
Sigma884 0:03be138291de 53
Sigma884 0:03be138291de 54 DigitalIn FlightPin(p15);
Sigma884 0:03be138291de 55
Sigma884 0:03be138291de 56 Timeout timeout_stop;
Sigma884 0:03be138291de 57 Timeout timeout_sep;
Sigma884 0:03be138291de 58 Timeout timeout_recovery;
Sigma884 0:03be138291de 59
Sigma884 0:03be138291de 60 Timer time_main;
Sigma884 0:03be138291de 61 Timer time_flight;
Sigma884 0:03be138291de 62
Sigma884 0:03be138291de 63 Ticker tick_gps;
Sigma884 0:03be138291de 64 Ticker tick_print;
Sigma884 0:03be138291de 65 Ticker tick_header_data;
Sigma884 0:03be138291de 66
Sigma884 0:03be138291de 67
Sigma884 0:03be138291de 68 /*******************************************************************************
Sigma884 0:03be138291de 69 関数のプロトタイプ宣言
Sigma884 0:03be138291de 70 *******************************************************************************/
Sigma884 0:03be138291de 71 void setup(); //無線あり
Sigma884 0:03be138291de 72
Sigma884 0:03be138291de 73 void modeChange(); //無線あり
Sigma884 0:03be138291de 74
Sigma884 0:03be138291de 75 void readSensor();
Sigma884 0:03be138291de 76 void readGPS();
Sigma884 0:03be138291de 77
Sigma884 0:03be138291de 78 void printData();
Sigma884 0:03be138291de 79 void readPC();
Sigma884 0:03be138291de 80 void printHelp();
Sigma884 0:03be138291de 81
Sigma884 0:03be138291de 82 void sendDownLink();//無線あり
Sigma884 0:03be138291de 83 void readUpLink(); //無線あり
Sigma884 0:03be138291de 84
Sigma884 0:03be138291de 85 void startRecSlow();
Sigma884 0:03be138291de 86 void startRecFast();
Sigma884 0:03be138291de 87 void stopRec();
Sigma884 0:03be138291de 88 void recData();
Sigma884 0:03be138291de 89
Sigma884 0:03be138291de 90
Sigma884 0:03be138291de 91 /*******************************************************************************
Sigma884 0:03be138291de 92 変数の宣言
Sigma884 0:03be138291de 93 *******************************************************************************/
Sigma884 0:03be138291de 94 char CanSat_phase;
Sigma884 0:03be138291de 95 bool do_first = false;
Sigma884 0:03be138291de 96
Sigma884 0:03be138291de 97 bool es920_using = false;
Sigma884 0:03be138291de 98 char es920_uplink_command = '-';
Sigma884 0:03be138291de 99
Sigma884 0:03be138291de 100 float adxl_acc[3];
Sigma884 0:03be138291de 101
Sigma884 0:03be138291de 102 float ina_v, ina_i;
Sigma884 0:03be138291de 103
Sigma884 0:03be138291de 104 double amg[9], quart[4], euler[3];
Sigma884 0:03be138291de 105
Sigma884 0:03be138291de 106 float pres, temp, hum, alt, pres_0, temp_0;
Sigma884 0:03be138291de 107 float pres_now;
Sigma884 0:03be138291de 108 int speed_time_old;
Sigma884 0:03be138291de 109 float alt_buf[10], alt_ave, alt_ave_old, speed, speed_buf[10], speed_ave;
Sigma884 0:03be138291de 110 int alt_count = 0, speed_count = 0;
Sigma884 0:03be138291de 111
Sigma884 0:03be138291de 112 float gps_lat, gps_lon, gps_alt, gps_utc[6], gps_knot, gps_deg;
Sigma884 0:03be138291de 113 int gps_sat;
Sigma884 0:03be138291de 114 bool gps_yn;
Sigma884 0:03be138291de 115
Sigma884 0:03be138291de 116 bool flight_pin;
Sigma884 0:03be138291de 117
Sigma884 0:03be138291de 118 FILE *fp;
Sigma884 0:03be138291de 119 bool save_slow = false;
Sigma884 0:03be138291de 120 bool save_fast = false;
Sigma884 0:03be138291de 121 int save_c = 0;
Sigma884 0:03be138291de 122
Sigma884 0:03be138291de 123 int time_read, time_reset = 0;
Sigma884 0:03be138291de 124 int time_min, time_sec, time_ms;
Sigma884 0:03be138291de 125
Sigma884 0:03be138291de 126 int flight_time_read, flight_time_read_old, flight_time_reset = 0;
Sigma884 0:03be138291de 127 int flight_time_min, flight_time_sec, flight_time_ms;
Sigma884 0:03be138291de 128
Sigma884 0:03be138291de 129
Sigma884 0:03be138291de 130 /*******************************************************************************
Sigma884 0:03be138291de 131 定数
Sigma884 0:03be138291de 132 *******************************************************************************/
Sigma884 0:03be138291de 133
Sigma884 0:03be138291de 134
Sigma884 0:03be138291de 135 /*******************************************************************************
Sigma884 0:03be138291de 136 無線のヘッダまとめ(CANSAT -> GND)
Sigma884 0:03be138291de 137 *******************************************************************************/
Sigma884 0:03be138291de 138 const char HEADER_SENSOR_SETUP = 0x01;
Sigma884 0:03be138291de 139 // 0x01, ADXL, INA, BME, BNO, CCS, PRES, SD
Sigma884 0:03be138291de 140 // 0 1 1 1 1 1 1 1
Sigma884 0:03be138291de 141 // 0 1 2 3 4 5 6
Sigma884 0:03be138291de 142
Sigma884 0:03be138291de 143 const char HEADER_GPS_SETUP = 0x02;
Sigma884 0:03be138291de 144 // 0x02, readable, wait_count
Sigma884 0:03be138291de 145 // 0 1 4
Sigma884 0:03be138291de 146 // 0 1
Sigma884 0:03be138291de 147 // 0x00 : NG
Sigma884 0:03be138291de 148 // 0x01 : OK
Sigma884 0:03be138291de 149 // 0xAA : Finish
Sigma884 0:03be138291de 150 // 0xFF : Ignore
Sigma884 0:03be138291de 151
Sigma884 0:03be138291de 152 const char HEADER_DATA = 0x10;
Sigma884 0:03be138291de 153
Sigma884 0:03be138291de 154 const char HEADER_START = 0x11;
Sigma884 0:03be138291de 155
Sigma884 0:03be138291de 156
Sigma884 0:03be138291de 157 /*******************************************************************************
Sigma884 0:03be138291de 158 無線のヘッダまとめ(GND -> CANSAT)
Sigma884 0:03be138291de 159 *******************************************************************************/
Sigma884 0:03be138291de 160 const char HEADER_COMMAND = 0xcd:
Sigma884 0:03be138291de 161 // 0xcd, command
Sigma884 0:03be138291de 162 // 0 1
Sigma884 0:03be138291de 163 // 0
Sigma884 0:03be138291de 164
Sigma884 0:03be138291de 165
Sigma884 0:03be138291de 166 /*******************************************************************************
Sigma884 0:03be138291de 167 CanSatのフェーズ
Sigma884 0:03be138291de 168 *******************************************************************************/
Sigma884 0:03be138291de 169 const char CANSAT_SETUP = 0x00; //セットアップ中
Sigma884 0:03be138291de 170 const char CANSAT_SAFETY = 0x01; //安全モード
Sigma884 0:03be138291de 171 const char CANSAT_WAIT = 0x02; //待機モード
Sigma884 0:03be138291de 172 const char CANSAT_FLIGHT = 0x03; //フライトモード
Sigma884 0:03be138291de 173 const char CANSAT_RECOVERY = 0x04; //回収モード
Sigma884 0:03be138291de 174
Sigma884 0:03be138291de 175
Sigma884 0:03be138291de 176 /*******************************************************************************
Sigma884 0:03be138291de 177 メイン関数
Sigma884 0:03be138291de 178 *******************************************************************************/
Sigma884 0:03be138291de 179 int main() {
Sigma884 0:03be138291de 180 CanSat_phase = CANSAT_SETUP;
Sigma884 0:03be138291de 181 setup();
Sigma884 0:03be138291de 182
Sigma884 0:03be138291de 183 pc.attach(&readPC, Serial::RxIrq);
Sigma884 0:03be138291de 184
Sigma884 0:03be138291de 185 tick_gps.attach(&readGPS, 1.0/GPS_freq);
Sigma884 0:03be138291de 186 tick_print.attach(&printData, 1.0f);
Sigma884 0:03be138291de 187 tick_header_data.attach(&sendDownLink, 1.0f);
Sigma884 0:03be138291de 188
Sigma884 0:03be138291de 189 es920.attach(&readUpLink, HEADER_COMMAND);
Sigma884 0:03be138291de 190
Sigma884 0:03be138291de 191 FlightPin.mode(PullUp);
Sigma884 0:03be138291de 192
Sigma884 0:03be138291de 193 time_main.reset();
Sigma884 0:03be138291de 194 time_main.start();
Sigma884 0:03be138291de 195 startRecSlow();
Sigma884 0:03be138291de 196
Sigma884 0:03be138291de 197 CanSat_phase = CANSAT_SAFETY;
Sigma884 0:03be138291de 198 while(1) {
Sigma884 0:03be138291de 199 readSensor();
Sigma884 0:03be138291de 200 recData();
Sigma884 0:03be138291de 201 modeChange(); //状態遷移の判断
Sigma884 0:03be138291de 202 }
Sigma884 0:03be138291de 203 }
Sigma884 0:03be138291de 204
Sigma884 0:03be138291de 205
Sigma884 0:03be138291de 206 /*******************************************************************************
Sigma884 0:03be138291de 207 状態遷移の判断
Sigma884 0:03be138291de 208 無線あり:HEADER_START
Sigma884 0:03be138291de 209 *******************************************************************************/
Sigma884 0:03be138291de 210 void modeChange();
Sigma884 0:03be138291de 211
Sigma884 0:03be138291de 212
Sigma884 0:03be138291de 213 /*******************************************************************************
Sigma884 0:03be138291de 214 センサー読み取り
Sigma884 0:03be138291de 215 *******************************************************************************/
Sigma884 0:03be138291de 216 void readSensor();
Sigma884 0:03be138291de 217
Sigma884 0:03be138291de 218
Sigma884 0:03be138291de 219 /*******************************************************************************
Sigma884 0:03be138291de 220 GPS読み取り
Sigma884 0:03be138291de 221 *******************************************************************************/
Sigma884 0:03be138291de 222 void readGPS();
Sigma884 0:03be138291de 223
Sigma884 0:03be138291de 224
Sigma884 0:03be138291de 225 /*******************************************************************************
Sigma884 0:03be138291de 226 データ表示
Sigma884 0:03be138291de 227 *******************************************************************************/
Sigma884 0:03be138291de 228 void printData();
Sigma884 0:03be138291de 229
Sigma884 0:03be138291de 230
Sigma884 0:03be138291de 231 /*******************************************************************************
Sigma884 0:03be138291de 232 PC読み取り
Sigma884 0:03be138291de 233 *******************************************************************************/
Sigma884 0:03be138291de 234 void readPC();
Sigma884 0:03be138291de 235
Sigma884 0:03be138291de 236
Sigma884 0:03be138291de 237 /*******************************************************************************
Sigma884 0:03be138291de 238 ヘルプ表示
Sigma884 0:03be138291de 239 *******************************************************************************/
Sigma884 0:03be138291de 240 void printHelp();
Sigma884 0:03be138291de 241
Sigma884 0:03be138291de 242
Sigma884 0:03be138291de 243 /*******************************************************************************
Sigma884 0:03be138291de 244 ダウンリンク送信
Sigma884 0:03be138291de 245 無線あり:HEADER_DATA
Sigma884 0:03be138291de 246 *******************************************************************************/
Sigma884 0:03be138291de 247 void sendDownLink();
Sigma884 0:03be138291de 248
Sigma884 0:03be138291de 249
Sigma884 0:03be138291de 250 /*******************************************************************************
Sigma884 0:03be138291de 251 アップリンク受信
Sigma884 0:03be138291de 252 無線あり:HEADER_COMMAND
Sigma884 0:03be138291de 253 *******************************************************************************/
Sigma884 0:03be138291de 254 void readUpLink();
Sigma884 0:03be138291de 255
Sigma884 0:03be138291de 256
Sigma884 0:03be138291de 257 /*******************************************************************************
Sigma884 0:03be138291de 258 データを1秒ごとに書き込み開始
Sigma884 0:03be138291de 259 *******************************************************************************/
Sigma884 0:03be138291de 260 void startRecSlow();
Sigma884 0:03be138291de 261
Sigma884 0:03be138291de 262
Sigma884 0:03be138291de 263 /*******************************************************************************
Sigma884 0:03be138291de 264 データを最速で書き込み開始
Sigma884 0:03be138291de 265 *******************************************************************************/
Sigma884 0:03be138291de 266 void startRecFast();
Sigma884 0:03be138291de 267
Sigma884 0:03be138291de 268
Sigma884 0:03be138291de 269 /*******************************************************************************
Sigma884 0:03be138291de 270 データ記録停止
Sigma884 0:03be138291de 271 *******************************************************************************/
Sigma884 0:03be138291de 272 void stopRec();
Sigma884 0:03be138291de 273
Sigma884 0:03be138291de 274
Sigma884 0:03be138291de 275 /*******************************************************************************
Sigma884 0:03be138291de 276 データの記録
Sigma884 0:03be138291de 277 *******************************************************************************/
Sigma884 0:03be138291de 278 void recData();
Sigma884 0:03be138291de 279
Sigma884 0:03be138291de 280
Sigma884 0:03be138291de 281 /*******************************************************************************
Sigma884 0:03be138291de 282 セットアップ(最初に1回実行)
Sigma884 0:03be138291de 283 無線あり:HEADER_SETUP_SENSOR
Sigma884 0:03be138291de 284 無線あり:HEADER_GPS_SETUP
Sigma884 0:03be138291de 285 *******************************************************************************/
Sigma884 0:03be138291de 286 void setup(){
Sigma884 0:03be138291de 287 wait(1.0f);
Sigma884 0:03be138291de 288 char setup_string[1024];
Sigma884 0:03be138291de 289
Sigma884 0:03be138291de 290 pc.printf("\r\n******************************\r\n");
Sigma884 0:03be138291de 291 pc.printf("Sensor Setting Start!!\r\n");
Sigma884 0:03be138291de 292 strcat(setup_string, "Sensor Setting Start!!\r\n");
Sigma884 0:03be138291de 293 es920 << HEADER_SENSOR_SETUP;
Sigma884 0:03be138291de 294
Sigma884 0:03be138291de 295 //////////////////////////////////////////////////ADXL375
Sigma884 0:03be138291de 296 ADXL375.setDataRate(ADXL375_100HZ);
Sigma884 0:03be138291de 297 if(ADXL375.whoAmI() == 1){
Sigma884 0:03be138291de 298 pc.printf("ADXL375 : OK\r\n");
Sigma884 0:03be138291de 299 strcat(setup_string, "ADXL375 : OK\r\n");
Sigma884 0:03be138291de 300 es920 << (char)0x01;
Sigma884 0:03be138291de 301 }
Sigma884 0:03be138291de 302 else{
Sigma884 0:03be138291de 303 pc.printf("ADXL375 : NG\r\n");
Sigma884 0:03be138291de 304 strcat(setup_string, "ADXL375 : NG\r\n");
Sigma884 0:03be138291de 305 es920 << (char)0x00;
Sigma884 0:03be138291de 306 }
Sigma884 0:03be138291de 307 ADXL375.offset(0.0f, 0.0f, 0.0f);
Sigma884 0:03be138291de 308
Sigma884 0:03be138291de 309 //////////////////////////////////////////////////INA226
Sigma884 0:03be138291de 310 INA226.set_callibretion();
Sigma884 0:03be138291de 311 if(INA226.Connection_check() == 0){
Sigma884 0:03be138291de 312 pc.printf("INA226 : OK\r\n");
Sigma884 0:03be138291de 313 strcat(setup_string, "INA226 : OK!!\r\n");
Sigma884 0:03be138291de 314 es920 << (char)0x01;
Sigma884 0:03be138291de 315 }
Sigma884 0:03be138291de 316 else{
Sigma884 0:03be138291de 317 pc.printf("INA226 : NG\r\n");
Sigma884 0:03be138291de 318 strcat(setup_string, "INA226 : NG\r\n");
Sigma884 0:03be138291de 319 es920 << (char)0x00;
Sigma884 0:03be138291de 320 }
Sigma884 0:03be138291de 321
Sigma884 0:03be138291de 322 //////////////////////////////////////////////////BME280
Sigma884 0:03be138291de 323 BME280.configMeasure(BME280_lib::NORMAL, 1, 2, 1);
Sigma884 0:03be138291de 324 BME280.configFilter(4);
Sigma884 0:03be138291de 325 if(BME280.connectCheck() == 1){
Sigma884 0:03be138291de 326 pc.printf("BME280 OK!!\r\n");
Sigma884 0:03be138291de 327 strcat(setup_string, "BME280 : OK!!\r\n");
Sigma884 0:03be138291de 328 es920 << (char)0x01;
Sigma884 0:03be138291de 329 }
Sigma884 0:03be138291de 330 else{
Sigma884 0:03be138291de 331 pc.printf("BME280 NG\r\n");
Sigma884 0:03be138291de 332 strcat(setup_string, "BME280 : NG\r\n");
Sigma884 0:03be138291de 333 es920 << (char)0x00;
Sigma884 0:03be138291de 334 }
Sigma884 0:03be138291de 335
Sigma884 0:03be138291de 336 //////////////////////////////////////////////////BNO055
Sigma884 0:03be138291de 337 BNO055.setOperationMode(BNO055_lib::CONFIG);
Sigma884 0:03be138291de 338 BNO055.setAccRange(BNO055_lib::_16G);
Sigma884 0:03be138291de 339 BNO055.setAxis(BNO055_lib::Z, BNO055_lib::Y, BNO055_lib::X);
Sigma884 0:03be138291de 340 BNO055.setAxisPM(1, 1, -1);
Sigma884 0:03be138291de 341 if(BNO055.connectCheck() == 1){
Sigma884 0:03be138291de 342 pc.printf("BNO055 OK!!\r\n");
Sigma884 0:03be138291de 343 strcat(setup_string, "BNO055 : OK!!\r\n");
Sigma884 0:03be138291de 344 es920 << (char)0x01;
Sigma884 0:03be138291de 345 }
Sigma884 0:03be138291de 346 else{
Sigma884 0:03be138291de 347 pc.printf("BNO055 NG\r\n");
Sigma884 0:03be138291de 348 strcat(setup_string, "BNO055 : NG\r\n");
Sigma884 0:03be138291de 349 es920 << (char)0x00;
Sigma884 0:03be138291de 350 }
Sigma884 0:03be138291de 351
Sigma884 0:03be138291de 352 //////////////////////////////////////////////////CCS811
Sigma884 0:03be138291de 353 if(CCS811.connectCheck() == 1){
Sigma884 0:03be138291de 354 pc.printf("CCS811 OK!!\r\n");
Sigma884 0:03be138291de 355 strcat(setup_string, "CCS811 : OK!!\r\n");
Sigma884 0:03be138291de 356 es920 << (char)0x01;
Sigma884 0:03be138291de 357 }
Sigma884 0:03be138291de 358 else{
Sigma884 0:03be138291de 359 pc.printf("CCS811 NG\r\n");
Sigma884 0:03be138291de 360 strcat(setup_string, "CCS811 : NG\r\n");
Sigma884 0:03be138291de 361 es920 << (char)0x00;
Sigma884 0:03be138291de 362 }
Sigma884 0:03be138291de 363
Sigma884 0:03be138291de 364 //////////////////////////////////////////////////圧力センサ
Sigma884 0:03be138291de 365 pc.printf("PRES : ");
Sigma884 0:03be138291de 366 ADS1115.setGain(GAIN_TWOTHIRDS);
Sigma884 0:03be138291de 367 pc.printf("OK!!\r\n");
Sigma884 0:03be138291de 368 strcat(setup_string, "PRES : OK!!\r\n");
Sigma884 0:03be138291de 369 es920 << (char)0x01;
Sigma884 0:03be138291de 370
Sigma884 0:03be138291de 371 //////////////////////////////////////////////////SD
Sigma884 0:03be138291de 372 fp = fopen("/sd/Space_SWAN_setup.txt", "r");
Sigma884 0:03be138291de 373 if(fp != NULL){
Sigma884 0:03be138291de 374 pc.printf("SD : OK!!\r\n");
Sigma884 0:03be138291de 375 strcat(setup_string, "SD : OK!!\r\n");
Sigma884 0:03be138291de 376 es920 << (char)0x01;
Sigma884 0:03be138291de 377 fclose(fp);
Sigma884 0:03be138291de 378 }
Sigma884 0:03be138291de 379 else{
Sigma884 0:03be138291de 380 pc.printf("SD : NG...\r\n");
Sigma884 0:03be138291de 381 strcat(setup_string, "SD : NG...\r\n");
Sigma884 0:03be138291de 382 es920 << (char)0x00;
Sigma884 0:03be138291de 383 }
Sigma884 0:03be138291de 384
Sigma884 0:03be138291de 385 pc.printf("Sensor Setting Finished!!\r\n");
Sigma884 0:03be138291de 386 pc.printf("******************************\r\n");
Sigma884 0:03be138291de 387 strcat(setup_string, "Sensor Setting Finished!!\r\n");
Sigma884 0:03be138291de 388 es920.send();
Sigma884 0:03be138291de 389 wait(1.0f);
Sigma884 0:03be138291de 390
Sigma884 0:03be138291de 391 pc.printf("\r\n******************************\r\n");
Sigma884 0:03be138291de 392 if(wait_GPS){
Sigma884 0:03be138291de 393 pc.printf("GPS Setting Start!!\r\n");
Sigma884 0:03be138291de 394 strcat(setup_string, "GPS Setting Start!!\r\n");
Sigma884 0:03be138291de 395
Sigma884 0:03be138291de 396 pc.printf("Waiting : 0");
Sigma884 0:03be138291de 397 strcat(setup_string, "Wait : ");
Sigma884 0:03be138291de 398 int gps_wait_count = 0;
Sigma884 0:03be138291de 399 while(!GPS.gps_readable){
Sigma884 0:03be138291de 400 pc.printf("\rWaiting : %d", gps_wait_count);//
Sigma884 0:03be138291de 401 es920 << HEADER_GPS_SETUP;
Sigma884 0:03be138291de 402 es920 << (char)GPS.gps_readable;
Sigma884 0:03be138291de 403 es920 << (int)gps_wait_count;
Sigma884 0:03be138291de 404 es920.send();
Sigma884 0:03be138291de 405 wait(1.0f);
Sigma884 0:03be138291de 406 gps_wait_count ++;
Sigma884 0:03be138291de 407 }
Sigma884 0:03be138291de 408 char ss[8];
Sigma884 0:03be138291de 409 sprintf(ss, "%d", gps_wait_count);
Sigma884 0:03be138291de 410 strcat(setup_string, ss);
Sigma884 0:03be138291de 411 pc.printf(" OK!!\r\n");
Sigma884 0:03be138291de 412 strcat(setup_string, " OK!!\r\n");
Sigma884 0:03be138291de 413 pc.printf("GPS Setting Finished!!\r\n");
Sigma884 0:03be138291de 414 strcat(setup_string, "GPS Setting Finished!!\r\n");
Sigma884 0:03be138291de 415 es920 << HEADER_GPS_SETUP;
Sigma884 0:03be138291de 416 es920 << (char)0xAA;
Sigma884 0:03be138291de 417 es920 << (int)0;
Sigma884 0:03be138291de 418 es920.send();
Sigma884 0:03be138291de 419 }
Sigma884 0:03be138291de 420 else{
Sigma884 0:03be138291de 421 pc.printf("GPS Setting Ignore...\r\n");
Sigma884 0:03be138291de 422 strcat(setup_string, "GPS Setting Ignore...\r\n");
Sigma884 0:03be138291de 423 es920 << HEADER_GPS_SETUP;
Sigma884 0:03be138291de 424 es920 << (char)0xFF;
Sigma884 0:03be138291de 425 es920 << (int)0;
Sigma884 0:03be138291de 426 es920.send();
Sigma884 0:03be138291de 427 }
Sigma884 0:03be138291de 428 pc.printf("******************************\r\n");
Sigma884 0:03be138291de 429 fp = fopen(file_name, "a");
Sigma884 0:03be138291de 430 fprintf(fp, setup_string);
Sigma884 0:03be138291de 431 fclose(fp);
Sigma884 0:03be138291de 432 setup_string[0] = NULL;
Sigma884 0:03be138291de 433
Sigma884 0:03be138291de 434 printHelp();
Sigma884 0:03be138291de 435 wait(1.0f);
Sigma884 0:03be138291de 436 }