research_king / Mbed 2 deprecated WiFi_Camera

Dependencies:   EthernetInterface mbed-rtos mbed

Fork of WiFi_Camera by Hiroshi Nakanishi

Committer:
h_nakanishi
Date:
Thu Nov 03 16:26:35 2016 +0000
Revision:
5:dd5bc7b037c7
Parent:
4:4ea6299ad00e
Child:
6:ac677b091f76
TEST

Who changed what in which revision?

UserRevisionLine numberNew contents of line
thorai 4:4ea6299ad00e 1 #include "mbed.h"
thorai 4:4ea6299ad00e 2 #include "ESP8266.h"
h_nakanishi 5:dd5bc7b037c7 3 #include "gps.h"
h_nakanishi 5:dd5bc7b037c7 4
h_nakanishi 5:dd5bc7b037c7 5 #define GPS_ENABLE 1
thorai 4:4ea6299ad00e 6
thorai 4:4ea6299ad00e 7 Serial mc(P2_14, P2_15); //tx rx
thorai 4:4ea6299ad00e 8
thorai 4:4ea6299ad00e 9 /****************************************************************************/
thorai 4:4ea6299ad00e 10 /* Wi-Fi関連の定義 */
thorai 4:4ea6299ad00e 11 /****************************************************************************/
h_nakanishi 5:dd5bc7b037c7 12 SerialBuffered serial_buffered(P8_14, P8_15);
thorai 4:4ea6299ad00e 13 ESP8266 wifi;
thorai 4:4ea6299ad00e 14 #define WLAN_SSID "4CE67630E22B" // AP Name
thorai 4:4ea6299ad00e 15 #define WLAN_PASS "t3340pn5mkmkh" // AP PassWord
h_nakanishi 5:dd5bc7b037c7 16 #define HOST_NAME "104.199.222.173" // HOST Address
h_nakanishi 5:dd5bc7b037c7 17 #define HOST_URL "/r-king/space/webapi.php?" // HOST URL
h_nakanishi 5:dd5bc7b037c7 18 #define HOST_PORT (80) // HOST Port
thorai 4:4ea6299ad00e 19 #define ESP_Serial serial_buffered // WiFi Module Port
thorai 4:4ea6299ad00e 20 #define ESP_Baud 115200 // WiFi Module Port
thorai 4:4ea6299ad00e 21 #define WIFI_BUF 256 // WiFi Buffer Length
thorai 4:4ea6299ad00e 22
thorai 4:4ea6299ad00e 23 /****************************************************************************/
thorai 4:4ea6299ad00e 24 /* グローバル変数の定義 */
thorai 4:4ea6299ad00e 25 /****************************************************************************/
h_nakanishi 5:dd5bc7b037c7 26 int isEnableWiFi = false;
h_nakanishi 5:dd5bc7b037c7 27 int isEnableGPS = false;
h_nakanishi 5:dd5bc7b037c7 28 double g_lat = 12.3f;
h_nakanishi 5:dd5bc7b037c7 29 double g_lon = 45.6f;
h_nakanishi 5:dd5bc7b037c7 30 double g_alt = 78.9f;
h_nakanishi 5:dd5bc7b037c7 31 int g_year = 2016;
h_nakanishi 5:dd5bc7b037c7 32 int g_month = 01;
h_nakanishi 5:dd5bc7b037c7 33 int g_day = 01;
h_nakanishi 5:dd5bc7b037c7 34 int g_hour = 00;
h_nakanishi 5:dd5bc7b037c7 35 int g_min = 00;
h_nakanishi 5:dd5bc7b037c7 36 int g_sec = 00;
thorai 4:4ea6299ad00e 37
thorai 4:4ea6299ad00e 38 /****************************************************************************/
thorai 4:4ea6299ad00e 39 /* プロトタイプ宣言 */
thorai 4:4ea6299ad00e 40 /****************************************************************************/
h_nakanishi 5:dd5bc7b037c7 41 static void loop(void);
h_nakanishi 5:dd5bc7b037c7 42 static int setupWiFi();
h_nakanishi 5:dd5bc7b037c7 43 static int sendWiFi();
h_nakanishi 5:dd5bc7b037c7 44 static void resetWiFi();
h_nakanishi 5:dd5bc7b037c7 45 #if GPS_ENABLE
h_nakanishi 5:dd5bc7b037c7 46 int setupGPS();
h_nakanishi 5:dd5bc7b037c7 47 static void onGpsGdaReceivedCallback(SerialGPS::NMEA_GGA* data);
h_nakanishi 5:dd5bc7b037c7 48 static void onGpsZdaReceivedCallback(SerialGPS::NMEA_ZDA* data);
h_nakanishi 5:dd5bc7b037c7 49 static SerialGPS s_SerialGPS(P2_14, P2_15); // ★PIN番号は機器にあわせること★
h_nakanishi 5:dd5bc7b037c7 50 static SerialGPS::GpsCallbackTable s_GpsCallbackTable = {
h_nakanishi 5:dd5bc7b037c7 51 /*.log_cbfunc = */ NULL,
h_nakanishi 5:dd5bc7b037c7 52 /*.gga_cbfunc = */ onGpsGdaReceivedCallback,
h_nakanishi 5:dd5bc7b037c7 53 /*.gll_cbfunc = */ NULL,
h_nakanishi 5:dd5bc7b037c7 54 /*.gsa_cbfunc = */ NULL,
h_nakanishi 5:dd5bc7b037c7 55 /*.gsv_cbfunc = */ NULL,
h_nakanishi 5:dd5bc7b037c7 56 /*.rmc_cbfunc = */ NULL,
h_nakanishi 5:dd5bc7b037c7 57 /*.vtg_cbfunc = */ NULL,
h_nakanishi 5:dd5bc7b037c7 58 /*.zda_cbfunc = */ onGpsZdaReceivedCallback
h_nakanishi 5:dd5bc7b037c7 59 };
h_nakanishi 5:dd5bc7b037c7 60 #endif //GPS_ENABLE
thorai 4:4ea6299ad00e 61
thorai 4:4ea6299ad00e 62 int main() {
h_nakanishi 5:dd5bc7b037c7 63 printf("[Serial Start]\r\n");
thorai 4:4ea6299ad00e 64
thorai 4:4ea6299ad00e 65 // Setup Wi-Fi
thorai 4:4ea6299ad00e 66 isEnableWiFi = setupWiFi();
thorai 4:4ea6299ad00e 67
h_nakanishi 5:dd5bc7b037c7 68 // Setup GPS
h_nakanishi 5:dd5bc7b037c7 69 isEnableGPS = setupGPS();
thorai 4:4ea6299ad00e 70
h_nakanishi 5:dd5bc7b037c7 71 //mc.baud(115200);
h_nakanishi 5:dd5bc7b037c7 72 /*
thorai 4:4ea6299ad00e 73 char data1[7] = {0xFF,0x1C,0x04,0x03,0x01,0x01,0x28};//時計回り
thorai 4:4ea6299ad00e 74 mc.printf(data1);
thorai 4:4ea6299ad00e 75 printf(data1);
thorai 4:4ea6299ad00e 76
thorai 4:4ea6299ad00e 77 wait(3);
thorai 4:4ea6299ad00e 78
thorai 4:4ea6299ad00e 79 char data2[7] = {0xFF,0x1C,0x04,0x03,0x01,0x02,0x28};//反時計まわり
thorai 4:4ea6299ad00e 80 mc.printf(data2);
thorai 4:4ea6299ad00e 81 printf(data2);
thorai 4:4ea6299ad00e 82
thorai 4:4ea6299ad00e 83 wait(3);
thorai 4:4ea6299ad00e 84
thorai 4:4ea6299ad00e 85 char data3[7] = {0xFF,0x1C,0x04,0x03,0x01,0x00,0x3C};//モータ停止TODO:00
thorai 4:4ea6299ad00e 86 // mc.printf(data3);
thorai 4:4ea6299ad00e 87 for(int i = 0 ; i < sizeof(data3) ; i++){
thorai 4:4ea6299ad00e 88 mc.putc(data3[i]);
thorai 4:4ea6299ad00e 89 }
thorai 4:4ea6299ad00e 90 // printf(data3);
thorai 4:4ea6299ad00e 91
thorai 4:4ea6299ad00e 92 printf("[Serial End]\n");
h_nakanishi 5:dd5bc7b037c7 93 */
thorai 4:4ea6299ad00e 94
h_nakanishi 5:dd5bc7b037c7 95 loop();
h_nakanishi 5:dd5bc7b037c7 96 }
h_nakanishi 5:dd5bc7b037c7 97 int cnt = 0;
h_nakanishi 5:dd5bc7b037c7 98 void loop(void)
h_nakanishi 5:dd5bc7b037c7 99 {
h_nakanishi 5:dd5bc7b037c7 100 while(true)
h_nakanishi 5:dd5bc7b037c7 101 {
h_nakanishi 5:dd5bc7b037c7 102 #if GPS_ENABLE
h_nakanishi 5:dd5bc7b037c7 103 s_SerialGPS.Processing();//
h_nakanishi 5:dd5bc7b037c7 104 #endif //GPS_ENABLE
h_nakanishi 5:dd5bc7b037c7 105 wait_ms(10);
h_nakanishi 5:dd5bc7b037c7 106
h_nakanishi 5:dd5bc7b037c7 107 if(cnt >= 1000)
h_nakanishi 5:dd5bc7b037c7 108 {
h_nakanishi 5:dd5bc7b037c7 109 if(isEnableWiFi == true)
h_nakanishi 5:dd5bc7b037c7 110 {
h_nakanishi 5:dd5bc7b037c7 111 sendWiFi();
h_nakanishi 5:dd5bc7b037c7 112 }
h_nakanishi 5:dd5bc7b037c7 113 cnt = 0;
h_nakanishi 5:dd5bc7b037c7 114 }
h_nakanishi 5:dd5bc7b037c7 115 cnt++;
h_nakanishi 5:dd5bc7b037c7 116 }
thorai 4:4ea6299ad00e 117 }
thorai 4:4ea6299ad00e 118
thorai 4:4ea6299ad00e 119 /****************************************************************************/
thorai 4:4ea6299ad00e 120 // 機能 : Wi-Fi通信機能のセットアップ
thorai 4:4ea6299ad00e 121 // 引数 : なし
thorai 4:4ea6299ad00e 122 // 返り値 : ret FALSE(0):失敗 TRUE(1):成功
thorai 4:4ea6299ad00e 123 // 備考 : なし
thorai 4:4ea6299ad00e 124 /****************************************************************************/
h_nakanishi 5:dd5bc7b037c7 125 static int setupWiFi()
thorai 4:4ea6299ad00e 126 {
thorai 4:4ea6299ad00e 127 int ret = false;
thorai 4:4ea6299ad00e 128
h_nakanishi 5:dd5bc7b037c7 129 // Wi-Fiとのシリアル通信を開始する
thorai 4:4ea6299ad00e 130 wifi.begin(ESP_Serial, ESP_Baud);
h_nakanishi 5:dd5bc7b037c7 131
h_nakanishi 5:dd5bc7b037c7 132 // Wi-Fiモジュールをリセット
h_nakanishi 5:dd5bc7b037c7 133 resetWiFi();
h_nakanishi 5:dd5bc7b037c7 134
h_nakanishi 5:dd5bc7b037c7 135 // FWバージョンを取得
thorai 4:4ea6299ad00e 136 printf("FW Version:");
h_nakanishi 5:dd5bc7b037c7 137 printf(wifi.getVersion().c_str()); // AT+GMR
thorai 4:4ea6299ad00e 138 printf("\r\n");
thorai 4:4ea6299ad00e 139
h_nakanishi 5:dd5bc7b037c7 140 // 既に接続済みであれば切断
h_nakanishi 5:dd5bc7b037c7 141 wifi.leaveAP(); // AT+CWQAP
h_nakanishi 5:dd5bc7b037c7 142
thorai 4:4ea6299ad00e 143 // 接続の準備
h_nakanishi 5:dd5bc7b037c7 144 if (wifi.setOprToStationSoftAP()) { // AT+CWMODE=3
thorai 4:4ea6299ad00e 145 printf("to station + softap ok\r\n");
thorai 4:4ea6299ad00e 146 } else {
thorai 4:4ea6299ad00e 147 printf("to station + softap err\r\n");
thorai 4:4ea6299ad00e 148 //return ret;
thorai 4:4ea6299ad00e 149 }
h_nakanishi 5:dd5bc7b037c7 150
h_nakanishi 5:dd5bc7b037c7 151 // 接続可能なAP一覧を表示
h_nakanishi 5:dd5bc7b037c7 152 //printf("%s\r\n", wifi.getAPList().c_str()); // AT+CWLAP
h_nakanishi 5:dd5bc7b037c7 153
thorai 4:4ea6299ad00e 154 // APに接続する
h_nakanishi 5:dd5bc7b037c7 155 if (wifi.joinAP(WLAN_SSID, WLAN_PASS)) { // AT+CWJAP="SSID","PASSWORD"
thorai 4:4ea6299ad00e 156 printf("Join AP success\r\n");
thorai 4:4ea6299ad00e 157 printf("IP:");
thorai 4:4ea6299ad00e 158 printf( wifi.getLocalIP().c_str());
thorai 4:4ea6299ad00e 159 printf("\r\n");
thorai 4:4ea6299ad00e 160 } else {
thorai 4:4ea6299ad00e 161 printf("Join AP failure\r\n");
thorai 4:4ea6299ad00e 162 return ret;
thorai 4:4ea6299ad00e 163 }
thorai 4:4ea6299ad00e 164
thorai 4:4ea6299ad00e 165 // コネクションを1つのみに設定
h_nakanishi 5:dd5bc7b037c7 166
h_nakanishi 5:dd5bc7b037c7 167 if (wifi.disableMUX()) { // AT+CIPMUX=0
h_nakanishi 5:dd5bc7b037c7 168 printf("multi ok\r\n");
thorai 4:4ea6299ad00e 169 } else {
h_nakanishi 5:dd5bc7b037c7 170 printf("multi err\r\n");
thorai 4:4ea6299ad00e 171 return ret;
thorai 4:4ea6299ad00e 172 }
thorai 4:4ea6299ad00e 173
thorai 4:4ea6299ad00e 174 printf("setup end\r\n");
thorai 4:4ea6299ad00e 175 ret = true;
thorai 4:4ea6299ad00e 176
thorai 4:4ea6299ad00e 177 return ret;
thorai 4:4ea6299ad00e 178 }
thorai 4:4ea6299ad00e 179
thorai 4:4ea6299ad00e 180 /****************************************************************************/
thorai 4:4ea6299ad00e 181 // 機能 : Wi-Fi送信機能
thorai 4:4ea6299ad00e 182 // 引数 : buffer 送信データ
thorai 4:4ea6299ad00e 183 // 返り値 : ret FALSE(0):失敗 TRUE(1):成功
thorai 4:4ea6299ad00e 184 // 備考 : なし
thorai 4:4ea6299ad00e 185 /****************************************************************************/
h_nakanishi 5:dd5bc7b037c7 186 static int sendWiFi()
thorai 4:4ea6299ad00e 187 {
thorai 4:4ea6299ad00e 188 int ret = false;
thorai 4:4ea6299ad00e 189
thorai 4:4ea6299ad00e 190 uint8_t buffer[2048] = {0};
thorai 4:4ea6299ad00e 191 bool sendRet = false;
thorai 4:4ea6299ad00e 192
h_nakanishi 5:dd5bc7b037c7 193 printf("sendWiFi\r\n");
h_nakanishi 5:dd5bc7b037c7 194 if (wifi.createTCP(HOST_NAME, HOST_PORT)) { // AT+CIPSTART="TCP","104.199.222.173",80
thorai 4:4ea6299ad00e 195 printf("create tcp ok\r\n");
thorai 4:4ea6299ad00e 196 } else {
thorai 4:4ea6299ad00e 197 printf("create tcp err\r\n");
h_nakanishi 5:dd5bc7b037c7 198 // Wi-Fiモジュールをリセット
h_nakanishi 5:dd5bc7b037c7 199 resetWiFi();
h_nakanishi 5:dd5bc7b037c7 200 return ret;
thorai 4:4ea6299ad00e 201 }
h_nakanishi 5:dd5bc7b037c7 202 wait(1);
h_nakanishi 5:dd5bc7b037c7 203
h_nakanishi 5:dd5bc7b037c7 204 // build GET Request
h_nakanishi 5:dd5bc7b037c7 205 char buf[1024] = {'\0'};
h_nakanishi 5:dd5bc7b037c7 206 // sprintf(buf, "GET %saction=add&token=001&lat=%lf&lon=%lf&height=%lf HTTP/1.1\r\nHost: %s\r\nConnection: close\r\n\r\n",
h_nakanishi 5:dd5bc7b037c7 207 sprintf(buf, "GET %saction=add&token=001&lat=%lf&lon=%lf&height=%lf HTTP/1.1\r\nHost: %s\r\n\r\n",
h_nakanishi 5:dd5bc7b037c7 208 HOST_URL,
h_nakanishi 5:dd5bc7b037c7 209 g_lat,
h_nakanishi 5:dd5bc7b037c7 210 g_lon,
h_nakanishi 5:dd5bc7b037c7 211 g_alt,
h_nakanishi 5:dd5bc7b037c7 212 HOST_NAME);
thorai 4:4ea6299ad00e 213
h_nakanishi 5:dd5bc7b037c7 214 printf(buf);
thorai 4:4ea6299ad00e 215
h_nakanishi 5:dd5bc7b037c7 216 // Send GET Request
h_nakanishi 5:dd5bc7b037c7 217 sendRet = wifi.send((const uint8_t*)buf, strlen(buf)); // AT+CIPSEND=送信バイト数
thorai 4:4ea6299ad00e 218 if(sendRet == true) {
thorai 4:4ea6299ad00e 219 printf("Success!!\r\n");
h_nakanishi 5:dd5bc7b037c7 220 ret = true;
thorai 4:4ea6299ad00e 221 } else {
thorai 4:4ea6299ad00e 222 printf("Fail!!\r\n");
h_nakanishi 5:dd5bc7b037c7 223 // Wi-Fiモジュールをリセット
h_nakanishi 5:dd5bc7b037c7 224 resetWiFi();
h_nakanishi 5:dd5bc7b037c7 225 return ret;
thorai 4:4ea6299ad00e 226 }
h_nakanishi 5:dd5bc7b037c7 227 wait(1);
thorai 4:4ea6299ad00e 228
h_nakanishi 5:dd5bc7b037c7 229 // wait Response (T/O 10Sec)
thorai 4:4ea6299ad00e 230 uint32_t len = wifi.recv(buffer, sizeof(buffer), 10000);
thorai 4:4ea6299ad00e 231 if (len > 0) {
thorai 4:4ea6299ad00e 232 printf("Received:[");
thorai 4:4ea6299ad00e 233 for(uint32_t i = 0; i < len; i++) {
thorai 4:4ea6299ad00e 234 printf("%c", buffer[i]);
thorai 4:4ea6299ad00e 235 }
thorai 4:4ea6299ad00e 236 printf("]\r\n");
thorai 4:4ea6299ad00e 237 }
h_nakanishi 5:dd5bc7b037c7 238
h_nakanishi 5:dd5bc7b037c7 239 // release TCP
thorai 4:4ea6299ad00e 240 if (wifi.releaseTCP()) {
thorai 4:4ea6299ad00e 241 printf("release tcp ok\r\n");
thorai 4:4ea6299ad00e 242 } else {
thorai 4:4ea6299ad00e 243 printf("release tcp err\r\n");
thorai 4:4ea6299ad00e 244 }
h_nakanishi 5:dd5bc7b037c7 245
h_nakanishi 5:dd5bc7b037c7 246 return ret;
h_nakanishi 5:dd5bc7b037c7 247 }
h_nakanishi 5:dd5bc7b037c7 248
h_nakanishi 5:dd5bc7b037c7 249 /****************************************************************************/
h_nakanishi 5:dd5bc7b037c7 250 // 機能 : Wi-Fiリセット機能
h_nakanishi 5:dd5bc7b037c7 251 // 引数 : buffer 送信データ
h_nakanishi 5:dd5bc7b037c7 252 // 返り値 : ret FALSE(0):失敗 TRUE(1):成功
h_nakanishi 5:dd5bc7b037c7 253 // 備考 : なし
h_nakanishi 5:dd5bc7b037c7 254 /****************************************************************************/
h_nakanishi 5:dd5bc7b037c7 255 static void resetWiFi()
h_nakanishi 5:dd5bc7b037c7 256 {
h_nakanishi 5:dd5bc7b037c7 257 printf("Wi-Fi kick\r\n");
h_nakanishi 5:dd5bc7b037c7 258 wifi.kick(); // AT
h_nakanishi 5:dd5bc7b037c7 259 printf("Wi-Fi reset\r\n");
h_nakanishi 5:dd5bc7b037c7 260 wifi.restart(); // AT+RST
h_nakanishi 5:dd5bc7b037c7 261 wait(10);
h_nakanishi 5:dd5bc7b037c7 262 }
h_nakanishi 5:dd5bc7b037c7 263
h_nakanishi 5:dd5bc7b037c7 264
h_nakanishi 5:dd5bc7b037c7 265 #if GPS_ENABLE
h_nakanishi 5:dd5bc7b037c7 266 /****************************************************************************
h_nakanishi 5:dd5bc7b037c7 267 モジュール名 : GPS Setup
h_nakanishi 5:dd5bc7b037c7 268 関数名 : setupGPS
h_nakanishi 5:dd5bc7b037c7 269 引数 : なし
h_nakanishi 5:dd5bc7b037c7 270 戻り値 : GPS受信データ
h_nakanishi 5:dd5bc7b037c7 271 処理概要 : GPS受信処理
h_nakanishi 5:dd5bc7b037c7 272 注意事項 : なし
h_nakanishi 5:dd5bc7b037c7 273 ****************************************************************************/
h_nakanishi 5:dd5bc7b037c7 274 int setupGPS()
h_nakanishi 5:dd5bc7b037c7 275 {
h_nakanishi 5:dd5bc7b037c7 276 int ret = false;
h_nakanishi 5:dd5bc7b037c7 277 #if GPS_ENABLE
h_nakanishi 5:dd5bc7b037c7 278 // GPSライブラリの呼び出しサンプルコード
h_nakanishi 5:dd5bc7b037c7 279 s_SerialGPS.Init(); // GPS初期化
h_nakanishi 5:dd5bc7b037c7 280 s_SerialGPS.SetGpsCallback(&s_GpsCallbackTable); // GPSコールバック登録
h_nakanishi 5:dd5bc7b037c7 281 s_SerialGPS.RcvIsrEnable(); // GPS受信有効
h_nakanishi 5:dd5bc7b037c7 282 ret = true;
h_nakanishi 5:dd5bc7b037c7 283 #endif // GPS_ENABLE
thorai 4:4ea6299ad00e 284 return ret;
thorai 4:4ea6299ad00e 285 }
thorai 4:4ea6299ad00e 286
h_nakanishi 5:dd5bc7b037c7 287
h_nakanishi 5:dd5bc7b037c7 288 /****************************************************************************
h_nakanishi 5:dd5bc7b037c7 289 モジュール名 : GPS受信コールバック
h_nakanishi 5:dd5bc7b037c7 290 関数名 : onGpsGdaReceivedCallback
h_nakanishi 5:dd5bc7b037c7 291 引数 : なし
h_nakanishi 5:dd5bc7b037c7 292 戻り値 : GPS受信データ
h_nakanishi 5:dd5bc7b037c7 293 処理概要 : GPS受信処理
h_nakanishi 5:dd5bc7b037c7 294 注意事項 : なし
h_nakanishi 5:dd5bc7b037c7 295 ****************************************************************************/
h_nakanishi 5:dd5bc7b037c7 296 void onGpsGdaReceivedCallback(SerialGPS::NMEA_GGA* data)
h_nakanishi 5:dd5bc7b037c7 297 {
h_nakanishi 5:dd5bc7b037c7 298 double d_lat,d_lon,m_lat,m_lon;
h_nakanishi 5:dd5bc7b037c7 299
h_nakanishi 5:dd5bc7b037c7 300 // lat
h_nakanishi 5:dd5bc7b037c7 301 d_lat=int(data->latitude/100);
h_nakanishi 5:dd5bc7b037c7 302 m_lat=(data->latitude - d_lat*100)/60;
h_nakanishi 5:dd5bc7b037c7 303 g_lat=d_lat+m_lat;
h_nakanishi 5:dd5bc7b037c7 304
h_nakanishi 5:dd5bc7b037c7 305 // lon
h_nakanishi 5:dd5bc7b037c7 306 d_lon=int(data->longitude/100);
h_nakanishi 5:dd5bc7b037c7 307 m_lon=(data->longitude - d_lon*100)/60;
h_nakanishi 5:dd5bc7b037c7 308 g_lon=d_lon+m_lon;
h_nakanishi 5:dd5bc7b037c7 309
h_nakanishi 5:dd5bc7b037c7 310 // alt
h_nakanishi 5:dd5bc7b037c7 311 g_alt = data->altitude;
h_nakanishi 5:dd5bc7b037c7 312
h_nakanishi 5:dd5bc7b037c7 313 printf("lat=%lf, lon=%lf, alt=%lf\r\n", g_lat, g_lon, g_alt);
h_nakanishi 5:dd5bc7b037c7 314 }
h_nakanishi 5:dd5bc7b037c7 315
h_nakanishi 5:dd5bc7b037c7 316 /****************************************************************************
h_nakanishi 5:dd5bc7b037c7 317 モジュール名 : GPS受信コールバック
h_nakanishi 5:dd5bc7b037c7 318 関数名 : onGpsZdaReceivedCallback
h_nakanishi 5:dd5bc7b037c7 319 引数 : なし
h_nakanishi 5:dd5bc7b037c7 320 戻り値 : GPS受信データ
h_nakanishi 5:dd5bc7b037c7 321 処理概要 : GPS受信処理
h_nakanishi 5:dd5bc7b037c7 322 注意事項 : なし
h_nakanishi 5:dd5bc7b037c7 323 ****************************************************************************/
h_nakanishi 5:dd5bc7b037c7 324 void onGpsZdaReceivedCallback(SerialGPS::NMEA_ZDA* data)
h_nakanishi 5:dd5bc7b037c7 325 {
h_nakanishi 5:dd5bc7b037c7 326 g_year = data->year;
h_nakanishi 5:dd5bc7b037c7 327 g_month = data->month;
h_nakanishi 5:dd5bc7b037c7 328 g_day = data->day;
h_nakanishi 5:dd5bc7b037c7 329 g_hour = (data->hour) + (data->hour_diff);
h_nakanishi 5:dd5bc7b037c7 330 g_min = (data->min) + (data->min_diff);
h_nakanishi 5:dd5bc7b037c7 331 g_sec = data->sec;
h_nakanishi 5:dd5bc7b037c7 332
h_nakanishi 5:dd5bc7b037c7 333 printf("TIME:%04d/%02d/%02d %02d:%02d:%02d\r\n",
h_nakanishi 5:dd5bc7b037c7 334 g_year,
h_nakanishi 5:dd5bc7b037c7 335 g_month,
h_nakanishi 5:dd5bc7b037c7 336 g_day,
h_nakanishi 5:dd5bc7b037c7 337 g_hour,
h_nakanishi 5:dd5bc7b037c7 338 g_min,
h_nakanishi 5:dd5bc7b037c7 339 g_sec);
h_nakanishi 5:dd5bc7b037c7 340 }
h_nakanishi 5:dd5bc7b037c7 341 #endif //GPS_ENABLE