modify

Dependencies:   Adafruit_GFX Adafruit_ST7735 GMMP_mbed NTPClient SDFileSystem WIZnet_Library mbed

Fork of ThingPlug_Ethernet_Example_temp_V2 by irina kim

Committer:
irinakim
Date:
Sat Aug 15 23:33:44 2015 +0000
Revision:
11:f15177f282a6
Parent:
9:9179158a0fef
TFT_Ethernet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lesmin 0:fdbd2c6947ea 1 #include "mbed.h"
irinakim 11:f15177f282a6 2 #include "Adafruit_ST7735.h"
irinakim 11:f15177f282a6 3 #include "SDFileSystem.h"
irinakim 11:f15177f282a6 4 #include "mbed_debug.h"
irinakim 11:f15177f282a6 5
irinakim 11:f15177f282a6 6 #define BUTTON_NONE 0
irinakim 11:f15177f282a6 7 #define BUTTON_DOWN 1
irinakim 11:f15177f282a6 8 #define BUTTON_RIGHT 2
irinakim 11:f15177f282a6 9 #define BUTTON_SELECT 3
irinakim 11:f15177f282a6 10 #define BUTTON_UP 4
irinakim 11:f15177f282a6 11 #define BUTTON_LEFT 5
lesmin 0:fdbd2c6947ea 12
irinakim 11:f15177f282a6 13 #define BUFFPIXEL 20
irinakim 11:f15177f282a6 14 #define MAX_SIZE 100
irinakim 11:f15177f282a6 15
irinakim 11:f15177f282a6 16 SDFileSystem sd(D11, D12, D13, D4, "sd"); // the pinout on the mbed
irinakim 11:f15177f282a6 17 Adafruit_ST7735 tft(D11, D12, D13, D10, D8, D9); // MOSI, MISO, SCLK, SSEL, TFT_DC, TFT_RST
irinakim 11:f15177f282a6 18 AnalogIn joystick(A3);
irinakim 11:f15177f282a6 19 Serial pc(D1,D0);
irinakim 11:f15177f282a6 20 Serial device(D8,D2);
irinakim 11:f15177f282a6 21 LocateDef locate;
irinakim 11:f15177f282a6 22 LocateDef org;
irinakim 11:f15177f282a6 23 uint8_t readButton(void);
irinakim 11:f15177f282a6 24 void bmpDraw(char *filename, uint8_t x, uint8_t y);
irinakim 11:f15177f282a6 25 char str[MAX_SIZE];
irinakim 11:f15177f282a6 26 char str_l[MAX_SIZE];
irinakim 11:f15177f282a6 27
lesmin 0:fdbd2c6947ea 28
lesmin 0:fdbd2c6947ea 29 #include "config.h"
lesmin 0:fdbd2c6947ea 30
lesmin 6:f3e13103ea9d 31 #ifdef USE_SNIC_WIFI
lesmin 6:f3e13103ea9d 32 #include "SNIC_WifiInterface.h"
lesmin 6:f3e13103ea9d 33 C_SNIC_WifiInterface wifi( D8, D2, NC, NC, D3);
lesmin 6:f3e13103ea9d 34 #endif//USE_SNIC_WIFI
lesmin 6:f3e13103ea9d 35
lesmin 6:f3e13103ea9d 36 #ifdef USE_WIZNET_W5500
lesmin 6:f3e13103ea9d 37 #include "WIZnetInterface.h"
lesmin 6:f3e13103ea9d 38 WIZnetInterface ethernet(PA_7, PA_6, PA_5, PB_6, PA_9);//scs(PB_6), nRESET(PA_9); // reset pin is dummy, don't affect any pin of WIZ550io
lesmin 6:f3e13103ea9d 39 #endif//USE_WIZNET_W5500
lesmin 6:f3e13103ea9d 40
lesmin 0:fdbd2c6947ea 41 /**
lesmin 0:fdbd2c6947ea 42 * GMMP Test Code
lesmin 0:fdbd2c6947ea 43 */
lesmin 0:fdbd2c6947ea 44
lesmin 0:fdbd2c6947ea 45 #include "GMMP.h"
lesmin 0:fdbd2c6947ea 46
lesmin 0:fdbd2c6947ea 47 #define USER_CONTROL_LED 0x80
lesmin 0:fdbd2c6947ea 48
lesmin 0:fdbd2c6947ea 49 #define HIGH 0x1
lesmin 0:fdbd2c6947ea 50 #define LOW 0x0
lesmin 0:fdbd2c6947ea 51
lesmin 1:468ac9167975 52 byte serverIp[4] = THINGPLUG_GMMP_IP_ADDR;
lesmin 0:fdbd2c6947ea 53 const int nServerPort = THINGPLUG_GMMP_PORT_NUM;
lesmin 0:fdbd2c6947ea 54 const char* pszDomainCode = THINGPLUG_GMMP_SERVICE_NAME;
lesmin 0:fdbd2c6947ea 55 const char* pszGWAuthID = THINGPLUG_GMMP_DEVICE_SERIAL_NUM;
lesmin 0:fdbd2c6947ea 56 const char* pszGWMFID = THINGPLUG_GMMP_DEVICE_MANUFACTURER_ID;
lesmin 0:fdbd2c6947ea 57 const char* pszDeviceMFID = THINGPLUG_GMMP_SUB_DEVICE_MANUFACTURER_ID;
lesmin 0:fdbd2c6947ea 58
lesmin 0:fdbd2c6947ea 59 char* deviceId[LEN_DEVICE_ID];
lesmin 0:fdbd2c6947ea 60 unsigned char g_mac[6] = DEFAULT_MAC_ADDR;
lesmin 0:fdbd2c6947ea 61
lesmin 0:fdbd2c6947ea 62
lesmin 0:fdbd2c6947ea 63 uint32_t lastDeliverMilli = 0;
lesmin 0:fdbd2c6947ea 64 uint32_t reportPeriodMilli = 3000;
lesmin 0:fdbd2c6947ea 65 uint32_t lastHeartbeatMilli = 0;
lesmin 0:fdbd2c6947ea 66 uint32_t heartbeatPeriodMilli = 10000;
lesmin 0:fdbd2c6947ea 67 byte regDevCount = 0;
lesmin 0:fdbd2c6947ea 68 byte regGwCount = 0;
lesmin 0:fdbd2c6947ea 69
lesmin 0:fdbd2c6947ea 70 void startSensingTemp();
lesmin 0:fdbd2c6947ea 71 void delay(int d);
lesmin 0:fdbd2c6947ea 72
lesmin 0:fdbd2c6947ea 73 int Recv(GMMPHeader* pstGMMPHeader, void* pBody)
lesmin 0:fdbd2c6947ea 74 {
lesmin 0:fdbd2c6947ea 75 U8 cMessageType = pstGMMPHeader->ucMessageType;
lesmin 0:fdbd2c6947ea 76
lesmin 0:fdbd2c6947ea 77 //info(F("MsgType: "));
lesmin 0:fdbd2c6947ea 78 //infoln(cMessageType);
lesmin 0:fdbd2c6947ea 79 INFO("MsgType: %d", cMessageType);
lesmin 0:fdbd2c6947ea 80
lesmin 0:fdbd2c6947ea 81 if (cMessageType == OPERATION_GW_REG_RSP) {
lesmin 0:fdbd2c6947ea 82 stGwRegistrationRspHdr* pstRspHdr = (stGwRegistrationRspHdr*) pBody;
lesmin 0:fdbd2c6947ea 83
lesmin 0:fdbd2c6947ea 84 if (pstRspHdr->ucResultCode != 0x00) {
lesmin 0:fdbd2c6947ea 85 //error(F("GWRegRes Error: "));
lesmin 0:fdbd2c6947ea 86 //errorln(pstRspHdr->ucResultCode);
lesmin 0:fdbd2c6947ea 87 ERR("GWRegRes Error: %d", pstRspHdr->ucResultCode);
lesmin 0:fdbd2c6947ea 88 free(pBody);
lesmin 0:fdbd2c6947ea 89 return 1;
lesmin 0:fdbd2c6947ea 90 }
lesmin 0:fdbd2c6947ea 91
lesmin 0:fdbd2c6947ea 92 SetAuthKey((char*) pstGMMPHeader->usAuthKey);
lesmin 0:fdbd2c6947ea 93 SetGWID((char*) pstRspHdr->usGWID);
lesmin 0:fdbd2c6947ea 94 infoln(("GWRegRes has been received:"));
lesmin 0:fdbd2c6947ea 95 infoln(g_szAuthKey);
lesmin 0:fdbd2c6947ea 96 infoln(GetGWID());
lesmin 0:fdbd2c6947ea 97 INFO("GWRegRes has been received:\r\n%s\r\n%s", g_szAuthKey, GetGWID());
lesmin 0:fdbd2c6947ea 98 regGwCount++;
lesmin 0:fdbd2c6947ea 99
lesmin 0:fdbd2c6947ea 100 int ret = GO_Profile(GetGWID(), NULL, 0);
lesmin 0:fdbd2c6947ea 101
lesmin 0:fdbd2c6947ea 102 if (ret != GMMP_SUCCESS) {
lesmin 0:fdbd2c6947ea 103 errorln("ReqProfile Err!!");
lesmin 0:fdbd2c6947ea 104 free(pBody);
lesmin 0:fdbd2c6947ea 105 return 1;
lesmin 0:fdbd2c6947ea 106 }
lesmin 0:fdbd2c6947ea 107
lesmin 0:fdbd2c6947ea 108 infoln("ProfileReq has been sent.");
lesmin 0:fdbd2c6947ea 109 } else if (cMessageType == OPERATION_PROFILE_RSP) {
lesmin 0:fdbd2c6947ea 110 stProfileRspHdr* pstRspHdr = (stProfileRspHdr*) pBody;
lesmin 0:fdbd2c6947ea 111
lesmin 0:fdbd2c6947ea 112 if (pstRspHdr->ucResultCode != 0x00) {
lesmin 0:fdbd2c6947ea 113 errorln("ProfileRes Error!");
lesmin 0:fdbd2c6947ea 114 free(pBody);
lesmin 0:fdbd2c6947ea 115 return 1;
lesmin 0:fdbd2c6947ea 116 }
lesmin 0:fdbd2c6947ea 117
lesmin 0:fdbd2c6947ea 118 //infoln(F("ProfileRes has been received:"));
lesmin 0:fdbd2c6947ea 119 //infoln(Char2int(pstRspHdr->unHeartbeatPeriod, 4));
lesmin 0:fdbd2c6947ea 120 //infoln(Char2int(pstRspHdr->unReportOffset, 4));
lesmin 0:fdbd2c6947ea 121 //infoln(Char2int(pstRspHdr->unReportPeriod, 4));
lesmin 0:fdbd2c6947ea 122 //infoln(Char2int(pstRspHdr->unResponseTimeout, 4));
lesmin 0:fdbd2c6947ea 123 INFO("ProfileRes has been received:\r\n%d\r\n%d\r\n%d\r\n%d",
lesmin 0:fdbd2c6947ea 124 Char2int(pstRspHdr->unHeartbeatPeriod, 4),
lesmin 0:fdbd2c6947ea 125 Char2int(pstRspHdr->unReportOffset, 4),
lesmin 0:fdbd2c6947ea 126 Char2int(pstRspHdr->unReportPeriod, 4),
lesmin 0:fdbd2c6947ea 127 Char2int(pstRspHdr->unResponseTimeout,4) );
lesmin 0:fdbd2c6947ea 128 /* 주기값 재설정
lesmin 0:fdbd2c6947ea 129 pstRspHdr->unHeartbeatPeriod;
lesmin 0:fdbd2c6947ea 130 pstRspHdr->unReportOffset;
lesmin 0:fdbd2c6947ea 131 pstRspHdr->unReportPeriod;
lesmin 0:fdbd2c6947ea 132 pstRspHdr->unResponseTimeout;
lesmin 0:fdbd2c6947ea 133 */
lesmin 0:fdbd2c6947ea 134
lesmin 0:fdbd2c6947ea 135 reportPeriodMilli = Char2int(pstRspHdr->unReportPeriod, 4) * 1000 * 60;
lesmin 0:fdbd2c6947ea 136 //reportPeriodMilli = Char2int(pstRspHdr->unReportPeriod, 4) * 300;
lesmin 0:fdbd2c6947ea 137 heartbeatPeriodMilli = Char2int(pstRspHdr->unHeartbeatPeriod, 4) * 1000 * 60;
lesmin 0:fdbd2c6947ea 138
lesmin 0:fdbd2c6947ea 139 long nHeartBeat = Char2int((char*) pstRspHdr->unHeartbeatPeriod, sizeof(pstGMMPHeader->usTID)); //수신받은 Heartbeat 주기 값을 확인.
lesmin 0:fdbd2c6947ea 140
lesmin 0:fdbd2c6947ea 141 //Profile 요청 수신 값에 Heartbeat 주기 값으로 변경
lesmin 0:fdbd2c6947ea 142 if (nHeartBeat > 0) {
lesmin 0:fdbd2c6947ea 143 //nTimerSec = nHeartBeat;
lesmin 0:fdbd2c6947ea 144 }
lesmin 0:fdbd2c6947ea 145
lesmin 0:fdbd2c6947ea 146 int ret = GO_Reg(GetGWID(), pszDeviceMFID);
lesmin 0:fdbd2c6947ea 147
lesmin 0:fdbd2c6947ea 148 if (ret != GMMP_SUCCESS) {
lesmin 0:fdbd2c6947ea 149 errorln("DevRegReq Err!!");
lesmin 0:fdbd2c6947ea 150 free(pBody);
lesmin 0:fdbd2c6947ea 151 return 1;
lesmin 0:fdbd2c6947ea 152 }
lesmin 0:fdbd2c6947ea 153
lesmin 0:fdbd2c6947ea 154 infoln("DevRegReq has been sent.");
lesmin 0:fdbd2c6947ea 155 } else if (cMessageType == OPERATION_DEVICE_REG_RSP) {
lesmin 0:fdbd2c6947ea 156 stDeviceRegistrationRspHdr* pstRspHdr = (stDeviceRegistrationRspHdr*) pBody;
lesmin 0:fdbd2c6947ea 157
lesmin 0:fdbd2c6947ea 158 if (pstRspHdr->ucResultCode != 0x00) {
lesmin 0:fdbd2c6947ea 159 errorln("DevRegRes Error!");
lesmin 0:fdbd2c6947ea 160 free(pBody);
lesmin 0:fdbd2c6947ea 161 return 1;
lesmin 0:fdbd2c6947ea 162 }
lesmin 0:fdbd2c6947ea 163
lesmin 0:fdbd2c6947ea 164 if (strlen((char*) pstRspHdr->usDeviceID) <= 0) {
lesmin 0:fdbd2c6947ea 165 errorln("No DeviceID!");
lesmin 0:fdbd2c6947ea 166 free(pBody);
lesmin 0:fdbd2c6947ea 167 return 1;
lesmin 0:fdbd2c6947ea 168 }
lesmin 0:fdbd2c6947ea 169
lesmin 0:fdbd2c6947ea 170 int len = strlen((char*) pstRspHdr->usDeviceID);
lesmin 0:fdbd2c6947ea 171 memset(deviceId, 0, LEN_DEVICE_ID);
lesmin 0:fdbd2c6947ea 172 memcpy(deviceId, pstRspHdr->usDeviceID, len);
lesmin 0:fdbd2c6947ea 173 infoln("DevRegRes has been received:");
lesmin 0:fdbd2c6947ea 174 infoln((char*) deviceId);
lesmin 0:fdbd2c6947ea 175 regDevCount++;
lesmin 0:fdbd2c6947ea 176
lesmin 0:fdbd2c6947ea 177 } else if (cMessageType == OPERATION_DELIVERY_RSP) {
lesmin 0:fdbd2c6947ea 178 stPacketDeliveryRspHdr* pstRspHdr = (stPacketDeliveryRspHdr*) pBody;
lesmin 0:fdbd2c6947ea 179
lesmin 0:fdbd2c6947ea 180 if (pstRspHdr->ucResultCode != 0x00) {
lesmin 0:fdbd2c6947ea 181 // errorln("DeliverRes Err!!");
lesmin 0:fdbd2c6947ea 182 ERR("DeliverRes Err(0x%2x)!!", pstRspHdr->ucResultCode); //lesmin
lesmin 0:fdbd2c6947ea 183 free(pBody);
lesmin 0:fdbd2c6947ea 184 return 1;
lesmin 0:fdbd2c6947ea 185 }
lesmin 0:fdbd2c6947ea 186
lesmin 0:fdbd2c6947ea 187 infoln("DeliveryRes has been received.");
lesmin 0:fdbd2c6947ea 188 } else if (pstGMMPHeader->ucMessageType == OPERATION_HEARTBEAT_RSP) {
lesmin 0:fdbd2c6947ea 189 //stHeartBeatMsgRspHdr* pstRspHdr = (stHeartBeatMsgRspHdr*) pBody;
lesmin 0:fdbd2c6947ea 190
lesmin 0:fdbd2c6947ea 191 infoln("HeartbeatRes has been received.");
lesmin 0:fdbd2c6947ea 192 } else if (cMessageType == OPERATION_CONTROL_REQ) {
lesmin 0:fdbd2c6947ea 193 stControlReqHdr* pstReqHdr = (stControlReqHdr*) pBody;
lesmin 0:fdbd2c6947ea 194
lesmin 0:fdbd2c6947ea 195 infoln("ControlReq has been received.");
lesmin 0:fdbd2c6947ea 196
lesmin 0:fdbd2c6947ea 197 char cResult = 0x00;
lesmin 0:fdbd2c6947ea 198
lesmin 0:fdbd2c6947ea 199 int len = 0;
lesmin 0:fdbd2c6947ea 200 if (pstReqHdr->usMessageBody) {
lesmin 0:fdbd2c6947ea 201 len = strlen((char*) pstReqHdr->usMessageBody);
lesmin 0:fdbd2c6947ea 202 }
lesmin 0:fdbd2c6947ea 203 if (len > 0) {
lesmin 0:fdbd2c6947ea 204 info("Control Msg Body: ");
lesmin 0:fdbd2c6947ea 205 infoln((char*) pstReqHdr->usMessageBody);
lesmin 0:fdbd2c6947ea 206 }
lesmin 0:fdbd2c6947ea 207
lesmin 0:fdbd2c6947ea 208 long nTID = Char2int((char*) pstGMMPHeader->usTID, sizeof(pstGMMPHeader->usTID));
lesmin 0:fdbd2c6947ea 209
lesmin 0:fdbd2c6947ea 210 //debug(F("Received TID: "));
lesmin 0:fdbd2c6947ea 211 //debugln(nTID);
lesmin 0:fdbd2c6947ea 212 DBG("Received TID: %d\r\n", nTID);
lesmin 0:fdbd2c6947ea 213
lesmin 0:fdbd2c6947ea 214 int ret = GO_Control((char*) pstReqHdr->usGWID, (char*) pstReqHdr->usDeviceID, nTID,
lesmin 0:fdbd2c6947ea 215 (char)pstReqHdr->ucControlType, cResult);
lesmin 0:fdbd2c6947ea 216
lesmin 0:fdbd2c6947ea 217 if (ret != GMMP_SUCCESS) {
lesmin 0:fdbd2c6947ea 218 errorln("ControRes Err!!");
lesmin 0:fdbd2c6947ea 219 free(pBody);
lesmin 0:fdbd2c6947ea 220 return 1;
lesmin 0:fdbd2c6947ea 221 }
lesmin 0:fdbd2c6947ea 222
lesmin 0:fdbd2c6947ea 223 infoln("ControlRes has been sent.");
lesmin 0:fdbd2c6947ea 224
lesmin 0:fdbd2c6947ea 225 //infoln(pstReqHdr->ucControlType);
lesmin 0:fdbd2c6947ea 226 INFO("%d\r\n", pstReqHdr->ucControlType);
lesmin 0:fdbd2c6947ea 227
lesmin 0:fdbd2c6947ea 228 if (pstReqHdr->ucControlType != USER_CONTROL_LED) {
lesmin 0:fdbd2c6947ea 229 ERR("Unknown Control Msg: %d\r\n", pstReqHdr->ucControlType);
lesmin 0:fdbd2c6947ea 230 free(pBody);
lesmin 0:fdbd2c6947ea 231 return 1;
lesmin 0:fdbd2c6947ea 232 }
lesmin 0:fdbd2c6947ea 233
lesmin 0:fdbd2c6947ea 234 if (pstReqHdr->usMessageBody[0] == '1') {
lesmin 9:9179158a0fef 235 //myled = 1;
lesmin 0:fdbd2c6947ea 236 infoln("LED ON");
lesmin 0:fdbd2c6947ea 237 } else if (pstReqHdr->usMessageBody[0] == '0') {
lesmin 9:9179158a0fef 238 //myled = 0;
lesmin 0:fdbd2c6947ea 239 infoln("LED OFF");
lesmin 0:fdbd2c6947ea 240 } else {
lesmin 0:fdbd2c6947ea 241 errorln("Unknown Control Msg Body; it must be '1' or '0'.");
lesmin 0:fdbd2c6947ea 242 free(pBody);
lesmin 0:fdbd2c6947ea 243 return 1;
lesmin 0:fdbd2c6947ea 244 }
lesmin 0:fdbd2c6947ea 245
lesmin 0:fdbd2c6947ea 246 delay(1000); //msec
lesmin 0:fdbd2c6947ea 247
lesmin 0:fdbd2c6947ea 248 ret = GO_Notifi((char*) pstReqHdr->usGWID, (char*) pstReqHdr->usDeviceID,
lesmin 0:fdbd2c6947ea 249 (char)pstReqHdr->ucControlType, cResult, (char*) pstReqHdr->usMessageBody, 0);
lesmin 0:fdbd2c6947ea 250
lesmin 0:fdbd2c6947ea 251 if (ret != GMMP_SUCCESS) {
lesmin 0:fdbd2c6947ea 252 ERR("NotiReq Err: %d\r\n", ret);
lesmin 0:fdbd2c6947ea 253 free(pBody);
lesmin 0:fdbd2c6947ea 254 return 1;
lesmin 0:fdbd2c6947ea 255 }
lesmin 0:fdbd2c6947ea 256
lesmin 0:fdbd2c6947ea 257 infoln("Control NotiReq has been sent.");
lesmin 0:fdbd2c6947ea 258 } else if (cMessageType == OPERATION_NOTIFICATION_RSP) {
lesmin 0:fdbd2c6947ea 259 stNotificationRspHdr* pstRspHdr = (stNotificationRspHdr*) pBody;
lesmin 0:fdbd2c6947ea 260
lesmin 0:fdbd2c6947ea 261 if (pstRspHdr->ucResultCode != 0x00) {
lesmin 0:fdbd2c6947ea 262 //error(F("NotiRes Err: "));
lesmin 0:fdbd2c6947ea 263 //errorln(pstRspHdr->ucResultCode);
lesmin 0:fdbd2c6947ea 264 ERR("NotiRes Err: %d\r\n", pstRspHdr->ucResultCode);
lesmin 0:fdbd2c6947ea 265 free(pBody);
lesmin 0:fdbd2c6947ea 266 return 1;
lesmin 0:fdbd2c6947ea 267 }
lesmin 0:fdbd2c6947ea 268
lesmin 0:fdbd2c6947ea 269 infoln("NotiRes has been received.");
lesmin 0:fdbd2c6947ea 270 } else if (cMessageType == OPERATION_GW_DEREG_RSP) {
lesmin 0:fdbd2c6947ea 271 stGwRegistrationRspHdr* pstRspHdr = (stGwRegistrationRspHdr*) pBody;
lesmin 0:fdbd2c6947ea 272
lesmin 0:fdbd2c6947ea 273 if (pstRspHdr->ucResultCode != 0x00) {
lesmin 0:fdbd2c6947ea 274 //error(F("DeregGwRes Err: "));
lesmin 0:fdbd2c6947ea 275 //errorln(pstRspHdr->ucResultCode);
lesmin 0:fdbd2c6947ea 276 ERR("DeregGwRes Err: %d\r\n", pstRspHdr->ucResultCode);
lesmin 0:fdbd2c6947ea 277 free(pBody);
lesmin 0:fdbd2c6947ea 278 return 1;
lesmin 0:fdbd2c6947ea 279 }
lesmin 0:fdbd2c6947ea 280
lesmin 0:fdbd2c6947ea 281 if (strlen((char*) pstRspHdr->usGWID) <= 0) {
lesmin 0:fdbd2c6947ea 282 errorln("No GW ID!!");
lesmin 0:fdbd2c6947ea 283 free(pBody);
lesmin 0:fdbd2c6947ea 284 return 1;
lesmin 0:fdbd2c6947ea 285 }
lesmin 0:fdbd2c6947ea 286
lesmin 0:fdbd2c6947ea 287 if (strlen((char*) pstGMMPHeader->usAuthKey) <= 0) {
lesmin 0:fdbd2c6947ea 288 errorln("No Auth Key!!");
lesmin 0:fdbd2c6947ea 289 free(pBody);
lesmin 0:fdbd2c6947ea 290 return 1;
lesmin 0:fdbd2c6947ea 291 }
lesmin 0:fdbd2c6947ea 292
lesmin 0:fdbd2c6947ea 293 infoln("DeregGwRes has been received.");
lesmin 0:fdbd2c6947ea 294 } else if (cMessageType == OPERATION_DEVICE_DEREG_RSP) {
lesmin 0:fdbd2c6947ea 295 stDeviceRegistrationRspHdr* pstRspHdr = (stDeviceRegistrationRspHdr*) pBody;
lesmin 0:fdbd2c6947ea 296
lesmin 0:fdbd2c6947ea 297 if (pstRspHdr->ucResultCode != 0x00) {
lesmin 0:fdbd2c6947ea 298 //error(F("DeregDevRes Err: "));
lesmin 0:fdbd2c6947ea 299 //errorln(pstRspHdr->ucResultCode);
lesmin 0:fdbd2c6947ea 300 ERR("DeregDevRes Err: %d\r\n", pstRspHdr->ucResultCode);
lesmin 0:fdbd2c6947ea 301 free(pBody);
lesmin 0:fdbd2c6947ea 302 return 1;
lesmin 0:fdbd2c6947ea 303 }
lesmin 0:fdbd2c6947ea 304
lesmin 0:fdbd2c6947ea 305 if (strlen((char*) pstRspHdr->usDeviceID) <= 0) {
lesmin 0:fdbd2c6947ea 306 errorln("No device ID!!");
lesmin 0:fdbd2c6947ea 307 free(pBody);
lesmin 0:fdbd2c6947ea 308 return 1;
lesmin 0:fdbd2c6947ea 309 }
lesmin 0:fdbd2c6947ea 310
lesmin 0:fdbd2c6947ea 311 infoln("DeregDevRes has been received.");
lesmin 0:fdbd2c6947ea 312 }
lesmin 0:fdbd2c6947ea 313
lesmin 0:fdbd2c6947ea 314 free(pBody);
lesmin 0:fdbd2c6947ea 315 return 0;
lesmin 0:fdbd2c6947ea 316 }
lesmin 0:fdbd2c6947ea 317
lesmin 0:fdbd2c6947ea 318 byte isSensing = 0;
lesmin 0:fdbd2c6947ea 319
lesmin 0:fdbd2c6947ea 320 void startSensingTemp()
lesmin 0:fdbd2c6947ea 321 {
lesmin 0:fdbd2c6947ea 322 printf("Sensing started!\r\n");
lesmin 0:fdbd2c6947ea 323 isSensing = 1;
lesmin 0:fdbd2c6947ea 324 }
lesmin 0:fdbd2c6947ea 325
irinakim 11:f15177f282a6 326 void tft_operation(void)
irinakim 11:f15177f282a6 327 {
irinakim 11:f15177f282a6 328 char temp1[40];
irinakim 11:f15177f282a6 329 char temp2[10];
irinakim 11:f15177f282a6 330 char buf[40];
irinakim 11:f15177f282a6 331 char data[30];
irinakim 11:f15177f282a6 332 uint8_t b;
irinakim 11:f15177f282a6 333 uint8_t i=0;
irinakim 11:f15177f282a6 334 int cnt = 0;
irinakim 11:f15177f282a6 335 char ret;
irinakim 11:f15177f282a6 336 buf[0] = 0xec;
irinakim 11:f15177f282a6 337 buf[1] = 0xec;
irinakim 11:f15177f282a6 338 buf[2] = 0xd6;
irinakim 11:f15177f282a6 339 buf[3] = 0xf6;
irinakim 11:f15177f282a6 340 buf[4] = 0x56;
irinakim 11:f15177f282a6 341 buf[5] = 0x36;
irinakim 11:f15177f282a6 342 buf[6] = 0xf6;
irinakim 11:f15177f282a6 343 buf[7] = 0x36;
irinakim 11:f15177f282a6 344 buf[8] = 0xf6;
irinakim 11:f15177f282a6 345 buf[9] = 0xb6;
irinakim 11:f15177f282a6 346 buf[10] = 0x16;
irinakim 11:f15177f282a6 347 buf[11] = 0xf6;
irinakim 11:f15177f282a6 348 buf[12] = 0x56;
irinakim 11:f15177f282a6 349 buf[13] = 0x76;
irinakim 11:f15177f282a6 350
irinakim 11:f15177f282a6 351 tft.fillScreen(ST7735_BLACK);
irinakim 11:f15177f282a6 352 sprintf(data,"Name Date Etc\n");
irinakim 11:f15177f282a6 353 tft.printf("%s",data);
irinakim 11:f15177f282a6 354 /* FILE *fp = fopen("/sd/fr_list.txt", "w");
irinakim 11:f15177f282a6 355 if(fp == NULL) {
irinakim 11:f15177f282a6 356 error("Could not open file for write\n");
irinakim 11:f15177f282a6 357 }
irinakim 11:f15177f282a6 358 */
irinakim 11:f15177f282a6 359
irinakim 11:f15177f282a6 360
irinakim 11:f15177f282a6 361 FILE *db = fopen("/sd/db.txt", "r");
irinakim 11:f15177f282a6 362 fscanf(db,"%s%s",&temp1, &temp2);
irinakim 11:f15177f282a6 363
irinakim 11:f15177f282a6 364 printf("test\r\n");
irinakim 11:f15177f282a6 365 printf("d : %x, %x\r\n", temp1[0], temp1[1]);
irinakim 11:f15177f282a6 366 printf("s : %s\r\n", temp2);
irinakim 11:f15177f282a6 367
irinakim 11:f15177f282a6 368 while(1) {
irinakim 11:f15177f282a6 369
irinakim 11:f15177f282a6 370 if(device.readable()) {
irinakim 11:f15177f282a6 371 buf[cnt] = device.getc();
irinakim 11:f15177f282a6 372 if(buf[cnt] == 0)
irinakim 11:f15177f282a6 373 {
irinakim 11:f15177f282a6 374 for(int i=0; i<cnt; i++)
irinakim 11:f15177f282a6 375 printf("%x ", buf[i]);
irinakim 11:f15177f282a6 376 printf("\r\n");
irinakim 11:f15177f282a6 377 cnt = 0;
irinakim 11:f15177f282a6 378
irinakim 11:f15177f282a6 379 }
irinakim 11:f15177f282a6 380 else
irinakim 11:f15177f282a6 381 cnt ++;
irinakim 11:f15177f282a6 382 }
irinakim 11:f15177f282a6 383 }
irinakim 11:f15177f282a6 384 FILE *fp = fopen("/sd/fr_list.txt", "w");
irinakim 11:f15177f282a6 385 if(fp == NULL) {
irinakim 11:f15177f282a6 386 error("Could not open file for write\n");
irinakim 11:f15177f282a6 387 }
irinakim 11:f15177f282a6 388 /////////////ADD/////////////
irinakim 11:f15177f282a6 389
irinakim 11:f15177f282a6 390 fp = fopen("/sd/fr_list.txt", "r");
irinakim 11:f15177f282a6 391 while(fgets(str,MAX_SIZE,fp)!=NULL)
irinakim 11:f15177f282a6 392 {
irinakim 11:f15177f282a6 393 sprintf(str_l, "%s", str);
irinakim 11:f15177f282a6 394 tft.printf("%s",str_l);
irinakim 11:f15177f282a6 395 } fclose(fp);
irinakim 11:f15177f282a6 396
irinakim 11:f15177f282a6 397 tft.setCursor(0,0);
irinakim 11:f15177f282a6 398 tft.getCursor(&org);
irinakim 11:f15177f282a6 399 int8_t count=0;
irinakim 11:f15177f282a6 400 while(1)
irinakim 11:f15177f282a6 401 {
irinakim 11:f15177f282a6 402 b = readButton();
irinakim 11:f15177f282a6 403 tft.getCursor(&locate);
irinakim 11:f15177f282a6 404 if(b == BUTTON_DOWN)
irinakim 11:f15177f282a6 405 {
irinakim 11:f15177f282a6 406 tft.setCursor(120,locate.y_data-8);
irinakim 11:f15177f282a6 407 count--;
irinakim 11:f15177f282a6 408 if(count <=0)
irinakim 11:f15177f282a6 409 {
irinakim 11:f15177f282a6 410 count =0;
irinakim 11:f15177f282a6 411 tft.printf("%s",count);
irinakim 11:f15177f282a6 412 }
irinakim 11:f15177f282a6 413 tft.printf("%s",count);
irinakim 11:f15177f282a6 414
irinakim 11:f15177f282a6 415 }
irinakim 11:f15177f282a6 416 else if(b == BUTTON_UP)
irinakim 11:f15177f282a6 417 {
irinakim 11:f15177f282a6 418
irinakim 11:f15177f282a6 419 tft.setCursor(120,locate.y_data-8);
irinakim 11:f15177f282a6 420 count++;
irinakim 11:f15177f282a6 421 if(count >=255)
irinakim 11:f15177f282a6 422 {
irinakim 11:f15177f282a6 423 count =0;
irinakim 11:f15177f282a6 424 tft.printf("%s",count);
irinakim 11:f15177f282a6 425 }
irinakim 11:f15177f282a6 426 tft.printf("%s",count);
irinakim 11:f15177f282a6 427 }
irinakim 11:f15177f282a6 428 else if(b == BUTTON_SELECT)
irinakim 11:f15177f282a6 429 {
irinakim 11:f15177f282a6 430 tft.getCursor(&org);
irinakim 11:f15177f282a6 431 tft.setCursor(org.x_data,org.y_data+8);
irinakim 11:f15177f282a6 432 // printf("x =%d, y=%d\r\n",org.x_data,org.y_data);
irinakim 11:f15177f282a6 433
irinakim 11:f15177f282a6 434 }
irinakim 11:f15177f282a6 435
irinakim 11:f15177f282a6 436 }
irinakim 11:f15177f282a6 437 }
irinakim 11:f15177f282a6 438
lesmin 0:fdbd2c6947ea 439 #define BUF_SIZE 10
lesmin 0:fdbd2c6947ea 440 GMMPHeader header;
lesmin 0:fdbd2c6947ea 441 void *pBody = NULL;
lesmin 0:fdbd2c6947ea 442 char sendBuf[BUF_SIZE];
lesmin 0:fdbd2c6947ea 443
lesmin 0:fdbd2c6947ea 444 Timer g_t; //for Millis()
lesmin 0:fdbd2c6947ea 445
lesmin 0:fdbd2c6947ea 446 int setup(void) {
lesmin 0:fdbd2c6947ea 447
lesmin 0:fdbd2c6947ea 448 pc.baud(9600);
lesmin 0:fdbd2c6947ea 449
lesmin 0:fdbd2c6947ea 450 g_t.start();
lesmin 0:fdbd2c6947ea 451
lesmin 0:fdbd2c6947ea 452 infoln("Start setup()");
irinakim 11:f15177f282a6 453 tft.initR(INITR_BLACKTAB); // initialize a ST7735S chip, black tab
irinakim 11:f15177f282a6 454 tft.fillScreen(ST7735_BLACK);
irinakim 11:f15177f282a6 455 mkdir("/sd/fridge_care", 0777);
lesmin 6:f3e13103ea9d 456 #ifdef USE_SNIC_WIFI
lesmin 6:f3e13103ea9d 457 wifi.init();
lesmin 6:f3e13103ea9d 458
lesmin 6:f3e13103ea9d 459 wait(0.5);
lesmin 6:f3e13103ea9d 460 int s = wifi.disconnect();
lesmin 6:f3e13103ea9d 461 if( s != 0 ) {
lesmin 6:f3e13103ea9d 462 return -1;
lesmin 6:f3e13103ea9d 463 }
lesmin 6:f3e13103ea9d 464
lesmin 6:f3e13103ea9d 465 wait(0.3);
lesmin 6:f3e13103ea9d 466 // Connect AP
lesmin 6:f3e13103ea9d 467 wifi.connect( MBED_AP_SSID
lesmin 6:f3e13103ea9d 468 , strlen(MBED_AP_SSID)
lesmin 6:f3e13103ea9d 469 , MBED_AP_SECURITY_TYPE
lesmin 6:f3e13103ea9d 470 , MBED_AP_SECUTIRY_KEY
lesmin 6:f3e13103ea9d 471 , strlen(MBED_AP_SECUTIRY_KEY) );
lesmin 6:f3e13103ea9d 472 wait(0.5);
lesmin 6:f3e13103ea9d 473 wifi.setIPConfig( true ); //Use DHCP
lesmin 6:f3e13103ea9d 474 wait(0.5);
lesmin 6:f3e13103ea9d 475
lesmin 6:f3e13103ea9d 476 tagWIFI_STATUS_T wifi_status;
lesmin 6:f3e13103ea9d 477 if( wifi.getWifiStatus(&wifi_status) ) printf("wifi_status error!\r\n");
lesmin 6:f3e13103ea9d 478
lesmin 6:f3e13103ea9d 479 printf("MAC Address is %02x:%02x:%02x:%02x:%02x:%02x\r\n",
lesmin 6:f3e13103ea9d 480 wifi_status.mac_address[0], wifi_status.mac_address[1], wifi_status.mac_address[2],
lesmin 6:f3e13103ea9d 481 wifi_status.mac_address[3], wifi_status.mac_address[4], wifi_status.mac_address[5]);
lesmin 6:f3e13103ea9d 482 printf("IP Address is %s\r\n", wifi.getIPAddress());
lesmin 6:f3e13103ea9d 483 #endif//USE_SNIC_WIFI
lesmin 6:f3e13103ea9d 484
lesmin 6:f3e13103ea9d 485 #ifdef USE_WIZNET_W5500
lesmin 6:f3e13103ea9d 486 //mbed_mac_address((char *)MAC_Addr); //Use mbed mac addres
lesmin 6:f3e13103ea9d 487 printf("input MAC Address is %02x:%02x:%02x:%02x:%02x:%02x\r\n",
lesmin 6:f3e13103ea9d 488 g_mac[0], g_mac[1], g_mac[2], g_mac[3], g_mac[4], g_mac[5]);
lesmin 6:f3e13103ea9d 489
lesmin 7:6534e4a59e63 490 int ret = ethernet.init(g_mac);
lesmin 6:f3e13103ea9d 491 //printf("SPI Initialized \r\n");
lesmin 6:f3e13103ea9d 492 //wait(1); // 1 second for stable state
lesmin 6:f3e13103ea9d 493
lesmin 6:f3e13103ea9d 494 printf("W5500 Networking Started \r\n");
lesmin 6:f3e13103ea9d 495 //wait(1); // 1 second for stable state
lesmin 6:f3e13103ea9d 496
lesmin 7:6534e4a59e63 497 if (!ret) {
lesmin 6:f3e13103ea9d 498 printf("Initialized, MAC: %s\r\n", ethernet.getMACAddress());
lesmin 7:6534e4a59e63 499 ret = ethernet.connect();
lesmin 7:6534e4a59e63 500 if (!ret) {
lesmin 6:f3e13103ea9d 501 printf("IP: %s, MASK: %s, GW: %s\r\n",
lesmin 6:f3e13103ea9d 502 ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway());
lesmin 6:f3e13103ea9d 503 } else {
lesmin 7:6534e4a59e63 504 printf("Error ethernet.connect() - ret = %d\r\n", ret);
lesmin 6:f3e13103ea9d 505 //exit(0);
lesmin 7:6534e4a59e63 506
lesmin 7:6534e4a59e63 507 // ## 20150812 Eric added, Ethernet interface re-initialize code
lesmin 7:6534e4a59e63 508 ///////////////////////////////////////////////////////////////////////////
lesmin 7:6534e4a59e63 509 do{
lesmin 7:6534e4a59e63 510 //printf("Ethernet Interface Re-initialize\r\n");
lesmin 7:6534e4a59e63 511 #if defined(TARGET_LPC1768)
lesmin 7:6534e4a59e63 512 SPI spi(p5, p6, p7); // mosi, miso, sclk
lesmin 7:6534e4a59e63 513 #elif defined(TARGET_NUCLEO_F411RE) || defined(TARGET_NUCLEO_F401RE) || defined(TARGET_NUCLEO_F303RE) || defined(TARGET_NUCLEO_F334R8) || defined(TARGET_NUCLEO_L152RE)
lesmin 7:6534e4a59e63 514 SPI spi(PA_7, PA_6, PA_5);
lesmin 7:6534e4a59e63 515 #endif
lesmin 7:6534e4a59e63 516 //wait(0.5);
lesmin 7:6534e4a59e63 517
lesmin 7:6534e4a59e63 518 ethernet.init(g_mac);
lesmin 7:6534e4a59e63 519 ret = ethernet.connect();
lesmin 7:6534e4a59e63 520 printf("Re-initialized, MAC: %s\r\n", ethernet.getMACAddress());
lesmin 7:6534e4a59e63 521 printf("IP: %s, MASK: %s, GW: %s\r\n",
lesmin 7:6534e4a59e63 522 ethernet.getIPAddress(), ethernet.getNetworkMask(), ethernet.getGateway());
lesmin 7:6534e4a59e63 523 } while(ret);
lesmin 7:6534e4a59e63 524 ///////////////////////////////////////////////////////////////////////////
lesmin 6:f3e13103ea9d 525 }
lesmin 6:f3e13103ea9d 526 } else {
lesmin 7:6534e4a59e63 527 printf("Error ethernet.init() - ret = %d\r\n", ret);
lesmin 6:f3e13103ea9d 528 //exit(0);
lesmin 6:f3e13103ea9d 529 }
lesmin 6:f3e13103ea9d 530
lesmin 6:f3e13103ea9d 531 #endif//USE_WIZNET_W5500
lesmin 6:f3e13103ea9d 532
lesmin 6:f3e13103ea9d 533
lesmin 0:fdbd2c6947ea 534 startSensingTemp(); //lesmin
lesmin 0:fdbd2c6947ea 535
lesmin 0:fdbd2c6947ea 536 if ( Initialize(serverIp, nServerPort, pszDomainCode, pszGWAuthID, g_mac) ) {
lesmin 0:fdbd2c6947ea 537 infoln("Initialize failed!");
lesmin 0:fdbd2c6947ea 538 return -1; //lesmin
lesmin 0:fdbd2c6947ea 539 }
lesmin 0:fdbd2c6947ea 540
lesmin 0:fdbd2c6947ea 541 infoln("SetCallFunction");
lesmin 0:fdbd2c6947ea 542 SetCallFunction(Recv);
lesmin 0:fdbd2c6947ea 543
lesmin 7:6534e4a59e63 544 ret = GO_Reg(NULL, pszGWMFID);
lesmin 0:fdbd2c6947ea 545
lesmin 0:fdbd2c6947ea 546 if (ret != GMMP_SUCCESS) {
lesmin 0:fdbd2c6947ea 547 errorln("RegReq Error!!");
lesmin 0:fdbd2c6947ea 548 for(;;);
lesmin 0:fdbd2c6947ea 549 }
lesmin 0:fdbd2c6947ea 550
lesmin 0:fdbd2c6947ea 551 infoln("GW RegReq has been sent.");
lesmin 0:fdbd2c6947ea 552 return 0;
lesmin 0:fdbd2c6947ea 553 }
lesmin 0:fdbd2c6947ea 554
lesmin 0:fdbd2c6947ea 555 int millis(void) {
lesmin 0:fdbd2c6947ea 556 return g_t.read_ms();
lesmin 0:fdbd2c6947ea 557 }
lesmin 0:fdbd2c6947ea 558
lesmin 0:fdbd2c6947ea 559 float getTemperature(void) {
lesmin 0:fdbd2c6947ea 560 return 33.3;
lesmin 0:fdbd2c6947ea 561 }
lesmin 0:fdbd2c6947ea 562
lesmin 0:fdbd2c6947ea 563 void delay(int d) {
lesmin 0:fdbd2c6947ea 564 float delay_time = d/1000.0;
lesmin 0:fdbd2c6947ea 565 wait(delay_time);
lesmin 0:fdbd2c6947ea 566 }
lesmin 0:fdbd2c6947ea 567
irinakim 11:f15177f282a6 568 uint8_t readButton(void) {
irinakim 11:f15177f282a6 569 float a = joystick.read();
irinakim 11:f15177f282a6 570
irinakim 11:f15177f282a6 571 a *= 5.0;
irinakim 11:f15177f282a6 572
irinakim 11:f15177f282a6 573 // printf("Button read analog = %f\r\n",a);
irinakim 11:f15177f282a6 574 if (a < 0.2) return BUTTON_DOWN;//BUTTON_LEFT;
irinakim 11:f15177f282a6 575 if (a < 1.0) return BUTTON_RIGHT;//BUTTON_DOWN;
irinakim 11:f15177f282a6 576 if (a < 1.7) return BUTTON_SELECT;
irinakim 11:f15177f282a6 577 if (a < 2.6) return BUTTON_UP;//BUTTON_RIGHT;
irinakim 11:f15177f282a6 578 if (a < 4.6) return BUTTON_LEFT;//BUTTON_UP;
irinakim 11:f15177f282a6 579
irinakim 11:f15177f282a6 580 else return BUTTON_NONE;
irinakim 11:f15177f282a6 581 }
irinakim 11:f15177f282a6 582
lesmin 0:fdbd2c6947ea 583 void loop(void)
lesmin 0:fdbd2c6947ea 584 {
lesmin 0:fdbd2c6947ea 585 int ret = GetReadData(&header, &pBody);
lesmin 0:fdbd2c6947ea 586 if (ret != E_WOULDBLOCK) {
lesmin 0:fdbd2c6947ea 587 //infoln("******** NOT E_WOULDBLOCK *********");
lesmin 0:fdbd2c6947ea 588 //info(F("Free memory size: "));
lesmin 0:fdbd2c6947ea 589 //infoln(freeRam());
lesmin 0:fdbd2c6947ea 590 }
lesmin 0:fdbd2c6947ea 591
lesmin 0:fdbd2c6947ea 592 //byte addr[8];
lesmin 0:fdbd2c6947ea 593 float temperature;
lesmin 0:fdbd2c6947ea 594
lesmin 0:fdbd2c6947ea 595 int curMilli = millis();
lesmin 0:fdbd2c6947ea 596 byte mustDeliver = (curMilli - lastDeliverMilli) > reportPeriodMilli;
lesmin 0:fdbd2c6947ea 597 byte mustHeartbeat = (curMilli - lastHeartbeatMilli) > heartbeatPeriodMilli;
lesmin 0:fdbd2c6947ea 598
lesmin 0:fdbd2c6947ea 599 if (!isSensing) {
lesmin 0:fdbd2c6947ea 600 printf("Sensor is off...\r\n");
lesmin 0:fdbd2c6947ea 601 return;
lesmin 0:fdbd2c6947ea 602 }
lesmin 0:fdbd2c6947ea 603
lesmin 0:fdbd2c6947ea 604 #if 1
lesmin 0:fdbd2c6947ea 605 //int mustGwDereg = digitalRead(DEREGISTRATION_GW_SWITCH_PIN);
lesmin 0:fdbd2c6947ea 606 int mustGwDereg = LOW; //lesmin
lesmin 0:fdbd2c6947ea 607
lesmin 0:fdbd2c6947ea 608 if (mustGwDereg == HIGH && regGwCount > 0) {
lesmin 0:fdbd2c6947ea 609 ret = GO_DeReg(GetGWID(), NULL);
lesmin 0:fdbd2c6947ea 610
lesmin 0:fdbd2c6947ea 611 if (ret != GMMP_SUCCESS) {
lesmin 0:fdbd2c6947ea 612 errorln("DeregGwReq Error!!");
lesmin 0:fdbd2c6947ea 613 delay(1000);
lesmin 0:fdbd2c6947ea 614 return;
lesmin 0:fdbd2c6947ea 615 }
lesmin 0:fdbd2c6947ea 616
lesmin 0:fdbd2c6947ea 617 regGwCount--;
lesmin 0:fdbd2c6947ea 618 return;
lesmin 0:fdbd2c6947ea 619 }
lesmin 0:fdbd2c6947ea 620
lesmin 0:fdbd2c6947ea 621 //int mustDevDereg = digitalRead(DEREGISTRATION_DEVICE_SWITCH_PIN);
lesmin 0:fdbd2c6947ea 622 int mustDevDereg = LOW;
lesmin 0:fdbd2c6947ea 623
lesmin 0:fdbd2c6947ea 624 if (mustDevDereg == HIGH && regDevCount > 0) {
lesmin 0:fdbd2c6947ea 625 ret = GO_DeReg(GetGWID(), (char*) deviceId);
lesmin 0:fdbd2c6947ea 626
lesmin 0:fdbd2c6947ea 627 if (ret != GMMP_SUCCESS) {
lesmin 0:fdbd2c6947ea 628 errorln("DeregDevReq Error!!");
lesmin 0:fdbd2c6947ea 629 delay(1000);
lesmin 0:fdbd2c6947ea 630 return;
lesmin 0:fdbd2c6947ea 631 }
lesmin 0:fdbd2c6947ea 632
lesmin 0:fdbd2c6947ea 633 regDevCount--;
lesmin 0:fdbd2c6947ea 634 return;
lesmin 0:fdbd2c6947ea 635 }
lesmin 0:fdbd2c6947ea 636
lesmin 0:fdbd2c6947ea 637 if (mustHeartbeat) {
lesmin 0:fdbd2c6947ea 638 DBG("lastHeartbeatMilli: %d\r\ncurMilli: %d\r\n", lastHeartbeatMilli, curMilli);
lesmin 0:fdbd2c6947ea 639
lesmin 0:fdbd2c6947ea 640 ret = GO_HB(GetGWID());
lesmin 0:fdbd2c6947ea 641
lesmin 0:fdbd2c6947ea 642 if (ret != GMMP_SUCCESS) {
lesmin 0:fdbd2c6947ea 643 errorln("HeartbeatReq Error!!");
lesmin 0:fdbd2c6947ea 644 return;
lesmin 0:fdbd2c6947ea 645 }
lesmin 0:fdbd2c6947ea 646
lesmin 0:fdbd2c6947ea 647 infoln("HeartbeatReq has been sent.");
lesmin 0:fdbd2c6947ea 648
lesmin 0:fdbd2c6947ea 649 lastHeartbeatMilli = curMilli;
lesmin 0:fdbd2c6947ea 650 }
lesmin 0:fdbd2c6947ea 651
lesmin 0:fdbd2c6947ea 652 if (!mustDeliver) {
lesmin 0:fdbd2c6947ea 653 return;
lesmin 0:fdbd2c6947ea 654 }
lesmin 0:fdbd2c6947ea 655 #endif
lesmin 0:fdbd2c6947ea 656
lesmin 0:fdbd2c6947ea 657 temperature = getTemperature();
lesmin 0:fdbd2c6947ea 658
lesmin 0:fdbd2c6947ea 659 memset(sendBuf, 0, BUF_SIZE);
lesmin 0:fdbd2c6947ea 660
lesmin 0:fdbd2c6947ea 661 sprintf(sendBuf, "%.1f", temperature);
lesmin 0:fdbd2c6947ea 662
lesmin 0:fdbd2c6947ea 663 ret = GO_Delivery(GetGWID(), NULL, DELIVERY_COLLECT_DATA, 0x01, sendBuf);
lesmin 0:fdbd2c6947ea 664
lesmin 0:fdbd2c6947ea 665 info("Sent Data: ");
lesmin 0:fdbd2c6947ea 666 infoln(sendBuf);
lesmin 0:fdbd2c6947ea 667 INFO("Sent Data: %s\r\n", sendBuf);
lesmin 0:fdbd2c6947ea 668
lesmin 0:fdbd2c6947ea 669 if (ret != GMMP_SUCCESS) {
lesmin 0:fdbd2c6947ea 670 errorln("DeliveryReq Error!!");
lesmin 0:fdbd2c6947ea 671 return;
lesmin 0:fdbd2c6947ea 672 }
lesmin 0:fdbd2c6947ea 673
lesmin 0:fdbd2c6947ea 674 lastDeliverMilli = curMilli;
lesmin 0:fdbd2c6947ea 675 }
lesmin 0:fdbd2c6947ea 676
lesmin 0:fdbd2c6947ea 677 int main() {
lesmin 0:fdbd2c6947ea 678
irinakim 11:f15177f282a6 679 time_t ctTime;
irinakim 11:f15177f282a6 680 char buffer[50];
irinakim 11:f15177f282a6 681 char data[30];
irinakim 11:f15177f282a6 682 uint8_t b;
irinakim 11:f15177f282a6 683 uint8_t i=0;
lesmin 0:fdbd2c6947ea 684 if( setup() < 0 ) return 0;
lesmin 0:fdbd2c6947ea 685
lesmin 0:fdbd2c6947ea 686 while(1) {
irinakim 11:f15177f282a6 687 ctTime = time(NULL)+(3600*9); //TIME with offset for eastern time KR
irinakim 11:f15177f282a6 688 //FORMAT TIME FOR DISPLAY AND STORE FORMATTED RESULT IN BUFFER
irinakim 11:f15177f282a6 689 strftime(buffer,80,"%a %b %d\r\n%T %p %z\r\n %Z\r\n",localtime(&ctTime));
irinakim 11:f15177f282a6 690
lesmin 0:fdbd2c6947ea 691 loop();
irinakim 11:f15177f282a6 692 tft_operation();
irinakim 11:f15177f282a6 693
lesmin 0:fdbd2c6947ea 694 }
lesmin 0:fdbd2c6947ea 695 }