Modified for W5500 Ethernet initialize Added the Ethernet interface re-initialize code Added the connection retry

Dependents:   ThingPlug_Ethernet_Example

Fork of GMMP_mbed by Eric Jung

Committer:
hkjung
Date:
Wed Aug 12 08:58:58 2015 +0000
Revision:
5:9bbb6933559b
Parent:
0:7e575e5f88ec
Ethernet interface reinitialize code added

Who changed what in which revision?

UserRevisionLine numberNew contents of line
lesmin 0:7e575e5f88ec 1 #include "GMMP_Reg.h"
lesmin 0:7e575e5f88ec 2
lesmin 0:7e575e5f88ec 3 //Request
lesmin 0:7e575e5f88ec 4 int GMMP_GW_Reg_Req(GwRegist_Req* pRegist_Req)
lesmin 0:7e575e5f88ec 5 {
lesmin 0:7e575e5f88ec 6 debugln("GMMP_GW_Reg_Req()");
lesmin 0:7e575e5f88ec 7 if(pRegist_Req == NULL)
lesmin 0:7e575e5f88ec 8 {
lesmin 0:7e575e5f88ec 9 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 10 }
lesmin 0:7e575e5f88ec 11
lesmin 0:7e575e5f88ec 12 if(CheckSocket() != 0)
lesmin 0:7e575e5f88ec 13 {
lesmin 0:7e575e5f88ec 14 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 15 }
lesmin 0:7e575e5f88ec 16
lesmin 0:7e575e5f88ec 17 return WriteTCP( (char*)pRegist_Req, sizeof(GwRegist_Req) );
lesmin 0:7e575e5f88ec 18 }
lesmin 0:7e575e5f88ec 19
lesmin 0:7e575e5f88ec 20 int GMMP_GW_Reg_Rsp(GwRegist_Rsp* pRegist_Rsp)
lesmin 0:7e575e5f88ec 21 {
lesmin 0:7e575e5f88ec 22 if(pRegist_Rsp == NULL)
lesmin 0:7e575e5f88ec 23 {
lesmin 0:7e575e5f88ec 24 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 25 }
lesmin 0:7e575e5f88ec 26
lesmin 0:7e575e5f88ec 27 if(CheckSocket() != 0)
lesmin 0:7e575e5f88ec 28 {
lesmin 0:7e575e5f88ec 29 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 30 }
lesmin 0:7e575e5f88ec 31
lesmin 0:7e575e5f88ec 32 int nRet = ReadTCP( (char*)&pRegist_Rsp->header , sizeof(pRegist_Rsp->header) );
lesmin 0:7e575e5f88ec 33 if(nRet != GMMP_SUCCESS)
lesmin 0:7e575e5f88ec 34 {
lesmin 0:7e575e5f88ec 35 return nRet;
lesmin 0:7e575e5f88ec 36 }
lesmin 0:7e575e5f88ec 37
lesmin 0:7e575e5f88ec 38 ConvertShort cvtshort;
lesmin 0:7e575e5f88ec 39 cvtshort.sU8 = 0;
lesmin 0:7e575e5f88ec 40 memcpy(cvtshort.usShort, pRegist_Rsp->header.usMessageLength, sizeof(pRegist_Rsp->header.usMessageLength) );
lesmin 0:7e575e5f88ec 41
lesmin 0:7e575e5f88ec 42 int nReadSize = ltobs(cvtshort.sU8)- sizeof(pRegist_Rsp->header);
lesmin 0:7e575e5f88ec 43
lesmin 0:7e575e5f88ec 44 return ReadTCP( (char*)&pRegist_Rsp->body, nReadSize);
lesmin 0:7e575e5f88ec 45 }
lesmin 0:7e575e5f88ec 46
lesmin 0:7e575e5f88ec 47 int GMMP_Device_Reg_Req(DeviceRegist_Req* pRegist_Req)
lesmin 0:7e575e5f88ec 48 {
lesmin 0:7e575e5f88ec 49 if(pRegist_Req == NULL)
lesmin 0:7e575e5f88ec 50 {
lesmin 0:7e575e5f88ec 51 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 52 }
lesmin 0:7e575e5f88ec 53
lesmin 0:7e575e5f88ec 54 if(CheckSocket() != 0)
lesmin 0:7e575e5f88ec 55 {
lesmin 0:7e575e5f88ec 56 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 57 }
lesmin 0:7e575e5f88ec 58
lesmin 0:7e575e5f88ec 59 return WriteTCP( (char*)pRegist_Req, sizeof(DeviceRegist_Req) );
lesmin 0:7e575e5f88ec 60 }
lesmin 0:7e575e5f88ec 61
lesmin 0:7e575e5f88ec 62 int GMMP_Device_Reg_Rsp(DeviceRegist_Rsp* pRegist_Rsp)
lesmin 0:7e575e5f88ec 63 {
lesmin 0:7e575e5f88ec 64 if(pRegist_Rsp == NULL)
lesmin 0:7e575e5f88ec 65 {
lesmin 0:7e575e5f88ec 66 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 67 }
lesmin 0:7e575e5f88ec 68
lesmin 0:7e575e5f88ec 69 if(CheckSocket() != 0)
lesmin 0:7e575e5f88ec 70 {
lesmin 0:7e575e5f88ec 71 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 72 }
lesmin 0:7e575e5f88ec 73
lesmin 0:7e575e5f88ec 74 int nRet = ReadTCP( (char*)&pRegist_Rsp->header , sizeof(pRegist_Rsp->header) );
lesmin 0:7e575e5f88ec 75 if(nRet != GMMP_SUCCESS)
lesmin 0:7e575e5f88ec 76 {
lesmin 0:7e575e5f88ec 77 return nRet;
lesmin 0:7e575e5f88ec 78 }
lesmin 0:7e575e5f88ec 79
lesmin 0:7e575e5f88ec 80 ConvertShort cvtshort;
lesmin 0:7e575e5f88ec 81 cvtshort.sU8 = 0;
lesmin 0:7e575e5f88ec 82 memcpy(cvtshort.usShort, pRegist_Rsp->header.usMessageLength, sizeof(pRegist_Rsp->header.usMessageLength) );
lesmin 0:7e575e5f88ec 83
lesmin 0:7e575e5f88ec 84 int nReadSize = ltobs(cvtshort.sU8)- sizeof(pRegist_Rsp->header);
lesmin 0:7e575e5f88ec 85
lesmin 0:7e575e5f88ec 86 return ReadTCP( (char*)&pRegist_Rsp->body, nReadSize);
lesmin 0:7e575e5f88ec 87 }
lesmin 0:7e575e5f88ec 88
lesmin 0:7e575e5f88ec 89
lesmin 0:7e575e5f88ec 90 int GMMP_GW_DeReg_Req(GwDeRegist_Req* pDeRegist_Req)
lesmin 0:7e575e5f88ec 91 {
lesmin 0:7e575e5f88ec 92 if(pDeRegist_Req == NULL)
lesmin 0:7e575e5f88ec 93 {
lesmin 0:7e575e5f88ec 94 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 95 }
lesmin 0:7e575e5f88ec 96
lesmin 0:7e575e5f88ec 97 if(CheckSocket() != 0)
lesmin 0:7e575e5f88ec 98 {
lesmin 0:7e575e5f88ec 99 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 100 }
lesmin 0:7e575e5f88ec 101
lesmin 0:7e575e5f88ec 102 return WriteTCP( (char*)pDeRegist_Req, sizeof(GwDeRegist_Req) );
lesmin 0:7e575e5f88ec 103 }
lesmin 0:7e575e5f88ec 104
lesmin 0:7e575e5f88ec 105 int GMMP_GW_DeReg_Rsp(GwDeRegist_Rsp* pDeRegist_Rsp)
lesmin 0:7e575e5f88ec 106 {
lesmin 0:7e575e5f88ec 107 if(pDeRegist_Rsp == NULL)
lesmin 0:7e575e5f88ec 108 {
lesmin 0:7e575e5f88ec 109 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 110 }
lesmin 0:7e575e5f88ec 111
lesmin 0:7e575e5f88ec 112 if(CheckSocket() != 0)
lesmin 0:7e575e5f88ec 113 {
lesmin 0:7e575e5f88ec 114 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 115 }
lesmin 0:7e575e5f88ec 116
lesmin 0:7e575e5f88ec 117 int nRet = ReadTCP( (char*)&pDeRegist_Rsp->header , sizeof(pDeRegist_Rsp->header) );
lesmin 0:7e575e5f88ec 118 if(nRet != GMMP_SUCCESS)
lesmin 0:7e575e5f88ec 119 {
lesmin 0:7e575e5f88ec 120 return nRet;
lesmin 0:7e575e5f88ec 121 }
lesmin 0:7e575e5f88ec 122
lesmin 0:7e575e5f88ec 123 ConvertShort cvtshort;
lesmin 0:7e575e5f88ec 124 cvtshort.sU8 = 0;
lesmin 0:7e575e5f88ec 125 memcpy(cvtshort.usShort, pDeRegist_Rsp->header.usMessageLength, sizeof(pDeRegist_Rsp->header.usMessageLength) );
lesmin 0:7e575e5f88ec 126
lesmin 0:7e575e5f88ec 127 int nReadSize = ltobs(cvtshort.sU8)- sizeof(pDeRegist_Rsp->header);
lesmin 0:7e575e5f88ec 128
lesmin 0:7e575e5f88ec 129 return ReadTCP( (char*)&pDeRegist_Rsp->body, nReadSize);
lesmin 0:7e575e5f88ec 130 }
lesmin 0:7e575e5f88ec 131
lesmin 0:7e575e5f88ec 132 int GMMP_Device_DeReg_Req(DeviceDeRegist_Req* pDeRegist_Req)
lesmin 0:7e575e5f88ec 133 {
lesmin 0:7e575e5f88ec 134 if(pDeRegist_Req == NULL)
lesmin 0:7e575e5f88ec 135 {
lesmin 0:7e575e5f88ec 136 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 137 }
lesmin 0:7e575e5f88ec 138
lesmin 0:7e575e5f88ec 139 if(CheckSocket() != 0)
lesmin 0:7e575e5f88ec 140 {
lesmin 0:7e575e5f88ec 141 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 142 }
lesmin 0:7e575e5f88ec 143
lesmin 0:7e575e5f88ec 144 return WriteTCP( (char*)pDeRegist_Req, sizeof(DeviceDeRegist_Req) );
lesmin 0:7e575e5f88ec 145 }
lesmin 0:7e575e5f88ec 146
lesmin 0:7e575e5f88ec 147 int GMMP_Device_DeReg_Rsp(DeviceDeRegist_Rsp* pDeRegist_Req)
lesmin 0:7e575e5f88ec 148 {
lesmin 0:7e575e5f88ec 149 if(pDeRegist_Req == NULL)
lesmin 0:7e575e5f88ec 150 {
lesmin 0:7e575e5f88ec 151 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 152 }
lesmin 0:7e575e5f88ec 153
lesmin 0:7e575e5f88ec 154 if(CheckSocket() != 0)
lesmin 0:7e575e5f88ec 155 {
lesmin 0:7e575e5f88ec 156 return SERVER_INFO_NOT_FOUND;
lesmin 0:7e575e5f88ec 157 }
lesmin 0:7e575e5f88ec 158
lesmin 0:7e575e5f88ec 159 int nRet = ReadTCP( (char*)&pDeRegist_Req->header , sizeof(pDeRegist_Req->header) );
lesmin 0:7e575e5f88ec 160 if(nRet != GMMP_SUCCESS)
lesmin 0:7e575e5f88ec 161 {
lesmin 0:7e575e5f88ec 162 return nRet;
lesmin 0:7e575e5f88ec 163 }
lesmin 0:7e575e5f88ec 164
lesmin 0:7e575e5f88ec 165 ConvertShort cvtshort;
lesmin 0:7e575e5f88ec 166 cvtshort.sU8 = 0;
lesmin 0:7e575e5f88ec 167 memcpy(cvtshort.usShort, pDeRegist_Req->header.usMessageLength, sizeof(pDeRegist_Req->header.usMessageLength) );
lesmin 0:7e575e5f88ec 168
lesmin 0:7e575e5f88ec 169 int nReadSize = ltobs(cvtshort.sU8)- sizeof(pDeRegist_Req->header);
lesmin 0:7e575e5f88ec 170
lesmin 0:7e575e5f88ec 171 return ReadTCP( (char*)&pDeRegist_Req->body, nReadSize);
lesmin 0:7e575e5f88ec 172 }