v1

Dependencies:   MQTTSN mbed-http

Committer:
m_ahsan
Date:
Mon Mar 11 07:51:06 2019 +0000
Revision:
15:557d0008dd2d
123

Who changed what in which revision?

UserRevisionLine numberNew contents of line
m_ahsan 15:557d0008dd2d 1 #include <string>
m_ahsan 15:557d0008dd2d 2 void process_rsc(MbedJSONValue &MSG);
m_ahsan 15:557d0008dd2d 3
m_ahsan 15:557d0008dd2d 4 bool reg_resp = false;
m_ahsan 15:557d0008dd2d 5
m_ahsan 15:557d0008dd2d 6 char* CSE_ID = "cse1";
m_ahsan 15:557d0008dd2d 7 char* AE_ID;
m_ahsan 15:557d0008dd2d 8
m_ahsan 15:557d0008dd2d 9 struct Mendatory
m_ahsan 15:557d0008dd2d 10 {
m_ahsan 15:557d0008dd2d 11 string To;
m_ahsan 15:557d0008dd2d 12 string From;
m_ahsan 15:557d0008dd2d 13 string Request_Identifier;
m_ahsan 15:557d0008dd2d 14 int Operation;
m_ahsan 15:557d0008dd2d 15 int Resource_Type;
m_ahsan 15:557d0008dd2d 16 }m1;
m_ahsan 15:557d0008dd2d 17
m_ahsan 15:557d0008dd2d 18 struct CreateAE
m_ahsan 15:557d0008dd2d 19 {
m_ahsan 15:557d0008dd2d 20 string resourceName;
m_ahsan 15:557d0008dd2d 21 string App_ID;
m_ahsan 15:557d0008dd2d 22 string pointOfAccess;
m_ahsan 15:557d0008dd2d 23 bool requestReachability;
m_ahsan 15:557d0008dd2d 24 }CAE;
m_ahsan 15:557d0008dd2d 25
m_ahsan 15:557d0008dd2d 26 const char* Create_AE()
m_ahsan 15:557d0008dd2d 27 {
m_ahsan 15:557d0008dd2d 28 MbedJSONValue MSG, demo, demo2, demo3;
m_ahsan 15:557d0008dd2d 29
m_ahsan 15:557d0008dd2d 30 std::string s;
m_ahsan 15:557d0008dd2d 31
m_ahsan 15:557d0008dd2d 32 //fill the object
m_ahsan 15:557d0008dd2d 33
m_ahsan 15:557d0008dd2d 34 demo3["api"] = CAE.App_ID;
m_ahsan 15:557d0008dd2d 35 demo3["rn"] = CAE.resourceName;
m_ahsan 15:557d0008dd2d 36 demo3["rr"] = CAE.requestReachability;
m_ahsan 15:557d0008dd2d 37 demo2["m2m:ae"] = demo3;
m_ahsan 15:557d0008dd2d 38 demo["fr"] = m1.From;
m_ahsan 15:557d0008dd2d 39 demo["op"] = m1.Operation;
m_ahsan 15:557d0008dd2d 40 demo["pc"] = demo2;
m_ahsan 15:557d0008dd2d 41 demo["rqi"] = m1.Request_Identifier;
m_ahsan 15:557d0008dd2d 42 demo["to"] = m1.To;
m_ahsan 15:557d0008dd2d 43 demo["ty"] = m1.Resource_Type;
m_ahsan 15:557d0008dd2d 44
m_ahsan 15:557d0008dd2d 45 //serialize it into a JSON string
m_ahsan 15:557d0008dd2d 46 s = demo.serialize();
m_ahsan 15:557d0008dd2d 47 printf("\nMSG SIZE: %d\n", s.length());
m_ahsan 15:557d0008dd2d 48 //printf("json: %s\r\n", s.c_str());
m_ahsan 15:557d0008dd2d 49 return s.c_str();
m_ahsan 15:557d0008dd2d 50 }
m_ahsan 15:557d0008dd2d 51
m_ahsan 15:557d0008dd2d 52 void process_msg()
m_ahsan 15:557d0008dd2d 53 {
m_ahsan 15:557d0008dd2d 54 MbedJSONValue MSG;
m_ahsan 15:557d0008dd2d 55 //printf("Before Parsing\n");
m_ahsan 15:557d0008dd2d 56 parse(MSG, messageBuffer);
m_ahsan 15:557d0008dd2d 57 //bool temp; //Check fot parameters presence
m_ahsan 15:557d0008dd2d 58
m_ahsan 15:557d0008dd2d 59 ////////////////////////resource Type Parameter (Mendatory parameter)//////////////////////
m_ahsan 15:557d0008dd2d 60 if(MSG.hasMember("rsc"))
m_ahsan 15:557d0008dd2d 61 {
m_ahsan 15:557d0008dd2d 62 rsc = MSG["rsc"].get<int>();
m_ahsan 15:557d0008dd2d 63 printf("Response Status Code: %d\r\n", rsc);
m_ahsan 15:557d0008dd2d 64 Response_Type();
m_ahsan 15:557d0008dd2d 65 printf("Response Status: %s\r\n", response.c_str());
m_ahsan 15:557d0008dd2d 66 process_rsc(MSG);
m_ahsan 15:557d0008dd2d 67 return;
m_ahsan 15:557d0008dd2d 68 }
m_ahsan 15:557d0008dd2d 69
m_ahsan 15:557d0008dd2d 70 ////////////////////////resource Type Parameter (Mendatory parameter)//////////////////////
m_ahsan 15:557d0008dd2d 71 if(MSG.hasMember("ty"))
m_ahsan 15:557d0008dd2d 72 {
m_ahsan 15:557d0008dd2d 73 ty = MSG["ty"].get<int>();
m_ahsan 15:557d0008dd2d 74 printf("ResourceType: %d\r\n", ty);
m_ahsan 15:557d0008dd2d 75 resource_type();
m_ahsan 15:557d0008dd2d 76 printf("ResourceType: %s\r\n", resourceType.c_str());
m_ahsan 15:557d0008dd2d 77 }
m_ahsan 15:557d0008dd2d 78 else {
m_ahsan 15:557d0008dd2d 79 //add response code for no mendatory parameter
m_ahsan 15:557d0008dd2d 80 return; }
m_ahsan 15:557d0008dd2d 81
m_ahsan 15:557d0008dd2d 82 ////////////////////////From parameter (Mendatory parameter[optional for Create AE])//////////
m_ahsan 15:557d0008dd2d 83 if(MSG.hasMember("fr"))
m_ahsan 15:557d0008dd2d 84 {
m_ahsan 15:557d0008dd2d 85 From = MSG["fr"].get<std::string>();
m_ahsan 15:557d0008dd2d 86 printf("From: %s\r\n", From.c_str());
m_ahsan 15:557d0008dd2d 87 }
m_ahsan 15:557d0008dd2d 88 else {
m_ahsan 15:557d0008dd2d 89 //add Response Status Code for no mendatory parameter BAD_REQUEST
m_ahsan 15:557d0008dd2d 90 return; }
m_ahsan 15:557d0008dd2d 91
m_ahsan 15:557d0008dd2d 92 ////////////////////////Operation Parameter (Mendatory parameter)//////////////////////
m_ahsan 15:557d0008dd2d 93 if(MSG.hasMember("op"))
m_ahsan 15:557d0008dd2d 94 {
m_ahsan 15:557d0008dd2d 95 op = MSG["op"].get<int>();
m_ahsan 15:557d0008dd2d 96 printf("Operation: %d\r\n", op);
m_ahsan 15:557d0008dd2d 97 Operation_Type();
m_ahsan 15:557d0008dd2d 98 printf("Operation: %s\r\n", operation.c_str());
m_ahsan 15:557d0008dd2d 99 }
m_ahsan 15:557d0008dd2d 100 else {
m_ahsan 15:557d0008dd2d 101 //add response code for no mendatory parameter
m_ahsan 15:557d0008dd2d 102 return; }
m_ahsan 15:557d0008dd2d 103
m_ahsan 15:557d0008dd2d 104 ////////////////////////To Parameter (Mendatory parameter)//////////////////////
m_ahsan 15:557d0008dd2d 105 if(MSG.hasMember("to"))
m_ahsan 15:557d0008dd2d 106 {
m_ahsan 15:557d0008dd2d 107 to = MSG["to"].get<std::string>();
m_ahsan 15:557d0008dd2d 108 printf("To: %s\r\n", to.c_str());
m_ahsan 15:557d0008dd2d 109 }
m_ahsan 15:557d0008dd2d 110 else {
m_ahsan 15:557d0008dd2d 111 //add response code for no mendatory parameter
m_ahsan 15:557d0008dd2d 112 return; }
m_ahsan 15:557d0008dd2d 113
m_ahsan 15:557d0008dd2d 114 ////////////////////////Request Identifier (Mendatory parameter)//////////////////////
m_ahsan 15:557d0008dd2d 115 if(MSG.hasMember("rqi"))
m_ahsan 15:557d0008dd2d 116 {
m_ahsan 15:557d0008dd2d 117 rqi = MSG["rqi"].get<std::string>();
m_ahsan 15:557d0008dd2d 118 printf("Request Identifier: %s\r\n", rqi.c_str());
m_ahsan 15:557d0008dd2d 119 }
m_ahsan 15:557d0008dd2d 120 else {
m_ahsan 15:557d0008dd2d 121 //add response code for no mendatory parameter
m_ahsan 15:557d0008dd2d 122 return; }
m_ahsan 15:557d0008dd2d 123
m_ahsan 15:557d0008dd2d 124 ////////////////////////Response Status Code
m_ahsan 15:557d0008dd2d 125 if(MSG.hasMember("rsc"))
m_ahsan 15:557d0008dd2d 126 {
m_ahsan 15:557d0008dd2d 127 rsc = MSG["rsc"].get<int>();
m_ahsan 15:557d0008dd2d 128 printf("Response Status Code: %d\r\n", rsc);
m_ahsan 15:557d0008dd2d 129 Response_Type();
m_ahsan 15:557d0008dd2d 130 printf("Response Status: %s\r\n", response.c_str());
m_ahsan 15:557d0008dd2d 131 }
m_ahsan 15:557d0008dd2d 132 MbedJSONValue &MSG_1 = MSG["pc"][content]; //content value depends on the resource type e.g. m2m:ae for resource type 2
m_ahsan 15:557d0008dd2d 133
m_ahsan 15:557d0008dd2d 134 //////////////////////// Resource specific attributes CSE-ID
m_ahsan 15:557d0008dd2d 135 if(MSG_1.hasMember("csi"))
m_ahsan 15:557d0008dd2d 136 {
m_ahsan 15:557d0008dd2d 137 csi = MSG_1["csi"].get<std::string>();
m_ahsan 15:557d0008dd2d 138 printf("CSI: %s\r\n", csi.c_str());
m_ahsan 15:557d0008dd2d 139 }
m_ahsan 15:557d0008dd2d 140
m_ahsan 15:557d0008dd2d 141 //////////////////////// Resource specific attributes Point of Access
m_ahsan 15:557d0008dd2d 142 if(MSG_1.hasMember("poa"))
m_ahsan 15:557d0008dd2d 143 {
m_ahsan 15:557d0008dd2d 144 poa = MSG_1["poa"].get<std::string>();
m_ahsan 15:557d0008dd2d 145 printf("POA: %s\r\n", poa.c_str());
m_ahsan 15:557d0008dd2d 146 }
m_ahsan 15:557d0008dd2d 147
m_ahsan 15:557d0008dd2d 148 /////////////////////// Resource specific attributes CSE Type
m_ahsan 15:557d0008dd2d 149 if(MSG_1.hasMember("cst"))
m_ahsan 15:557d0008dd2d 150 {
m_ahsan 15:557d0008dd2d 151 cst = MSG_1["cst"].get<int>();
m_ahsan 15:557d0008dd2d 152 printf("CSE Type: %d\r\n", cst);
m_ahsan 15:557d0008dd2d 153 CSE_Type();
m_ahsan 15:557d0008dd2d 154 printf("CSE Type: %s\r\n", cseType.c_str());
m_ahsan 15:557d0008dd2d 155 }
m_ahsan 15:557d0008dd2d 156
m_ahsan 15:557d0008dd2d 157 /////////////////////// Resource specific attributes RequestReachability
m_ahsan 15:557d0008dd2d 158 if(MSG_1.hasMember("rr"))
m_ahsan 15:557d0008dd2d 159 {
m_ahsan 15:557d0008dd2d 160 RequestReachability = MSG_1["rr"].get<bool>();
m_ahsan 15:557d0008dd2d 161 printf("RR: %s\r\n", RequestReachability? "true" : "false");
m_ahsan 15:557d0008dd2d 162 }
m_ahsan 15:557d0008dd2d 163
m_ahsan 15:557d0008dd2d 164 /////////////////////// Resource specific attributes App-ID
m_ahsan 15:557d0008dd2d 165 if(MSG_1.hasMember("api"))
m_ahsan 15:557d0008dd2d 166 {
m_ahsan 15:557d0008dd2d 167 api = MSG_1["api"].get<std::string>();
m_ahsan 15:557d0008dd2d 168 printf("App-ID: %s\r\n", api.c_str());
m_ahsan 15:557d0008dd2d 169 }
m_ahsan 15:557d0008dd2d 170 // msg[0] = '\0';
m_ahsan 15:557d0008dd2d 171 //MSG.~MbedJSONValue();
m_ahsan 15:557d0008dd2d 172 //MSG_1.~MbedJSONValue();*/
m_ahsan 15:557d0008dd2d 173 }
m_ahsan 15:557d0008dd2d 174
m_ahsan 15:557d0008dd2d 175 void process_rsc(MbedJSONValue &MSG)
m_ahsan 15:557d0008dd2d 176 {
m_ahsan 15:557d0008dd2d 177 if(MSG.hasMember("rqi"))
m_ahsan 15:557d0008dd2d 178 {
m_ahsan 15:557d0008dd2d 179 rqi = MSG["rqi"].get<std::string>();
m_ahsan 15:557d0008dd2d 180 printf("Request Identifier: %s\r\n", rqi.c_str());
m_ahsan 15:557d0008dd2d 181 }
m_ahsan 15:557d0008dd2d 182 else {
m_ahsan 15:557d0008dd2d 183 //add response code for no mendatory parameter
m_ahsan 15:557d0008dd2d 184 return; }
m_ahsan 15:557d0008dd2d 185 if(MSG.hasMember("to"))
m_ahsan 15:557d0008dd2d 186 {
m_ahsan 15:557d0008dd2d 187 to = MSG["to"].get<std::string>();
m_ahsan 15:557d0008dd2d 188 printf("To: %s\r\n", to.c_str());
m_ahsan 15:557d0008dd2d 189 }
m_ahsan 15:557d0008dd2d 190 else {
m_ahsan 15:557d0008dd2d 191 //add response code for no mendatory parameter
m_ahsan 15:557d0008dd2d 192 return; }
m_ahsan 15:557d0008dd2d 193 if(MSG.hasMember("fr"))
m_ahsan 15:557d0008dd2d 194 {
m_ahsan 15:557d0008dd2d 195 From = MSG["fr"].get<std::string>();
m_ahsan 15:557d0008dd2d 196 printf("From: %s\r\n", From.c_str());
m_ahsan 15:557d0008dd2d 197 }
m_ahsan 15:557d0008dd2d 198 else {
m_ahsan 15:557d0008dd2d 199 //add response code for no mendatory parameter
m_ahsan 15:557d0008dd2d 200 return; }
m_ahsan 15:557d0008dd2d 201
m_ahsan 15:557d0008dd2d 202 MbedJSONValue &MSG_1 = MSG["pc"][content];
m_ahsan 15:557d0008dd2d 203
m_ahsan 15:557d0008dd2d 204 if(MSG_1.hasMember("ty"))
m_ahsan 15:557d0008dd2d 205 {
m_ahsan 15:557d0008dd2d 206 ty = MSG_1["ty"].get<int>();
m_ahsan 15:557d0008dd2d 207 printf("ResourceType: %d\r\n", ty);
m_ahsan 15:557d0008dd2d 208 resource_type();
m_ahsan 15:557d0008dd2d 209 printf("ResourceType: %s\r\n", resourceType.c_str());
m_ahsan 15:557d0008dd2d 210 }
m_ahsan 15:557d0008dd2d 211 else {
m_ahsan 15:557d0008dd2d 212 //add response code for no mendatory parameter
m_ahsan 15:557d0008dd2d 213 return; }
m_ahsan 15:557d0008dd2d 214
m_ahsan 15:557d0008dd2d 215 if(MSG_1.hasMember("rr"))
m_ahsan 15:557d0008dd2d 216 {
m_ahsan 15:557d0008dd2d 217 RequestReachability = MSG_1["rr"].get<bool>();
m_ahsan 15:557d0008dd2d 218 printf("RR: %s\r\n", RequestReachability? "true" : "false");
m_ahsan 15:557d0008dd2d 219 }
m_ahsan 15:557d0008dd2d 220 if(MSG_1.hasMember("aei"))
m_ahsan 15:557d0008dd2d 221 {
m_ahsan 15:557d0008dd2d 222 aei = MSG_1["aei"].get<std::string>();
m_ahsan 15:557d0008dd2d 223 printf("AE_ID: %s\r\n", aei.c_str());
m_ahsan 15:557d0008dd2d 224 }
m_ahsan 15:557d0008dd2d 225 if(MSG_1.hasMember("poa"))
m_ahsan 15:557d0008dd2d 226 {
m_ahsan 15:557d0008dd2d 227 poa = MSG_1["poa"].get<std::string>();
m_ahsan 15:557d0008dd2d 228 printf("POA: %s\r\n", poa.c_str());
m_ahsan 15:557d0008dd2d 229 }
m_ahsan 15:557d0008dd2d 230 if(MSG_1.hasMember("rn"))
m_ahsan 15:557d0008dd2d 231 {
m_ahsan 15:557d0008dd2d 232 rn = MSG_1["rn"].get<std::string>();
m_ahsan 15:557d0008dd2d 233 printf("Resource Name: %s\r\n", rn.c_str());
m_ahsan 15:557d0008dd2d 234 }
m_ahsan 15:557d0008dd2d 235 if(MSG_1.hasMember("api"))
m_ahsan 15:557d0008dd2d 236 {
m_ahsan 15:557d0008dd2d 237 api = MSG_1["api"].get<std::string>();
m_ahsan 15:557d0008dd2d 238 printf("App-ID: %s\r\n", api.c_str());
m_ahsan 15:557d0008dd2d 239 }
m_ahsan 15:557d0008dd2d 240 return;
m_ahsan 15:557d0008dd2d 241 }