![](/media/cache/group/logo_9cIyDj3.png.50x50_q85.png)
v1
Dependencies: MQTTSN mbed-http
sensor.h@15:557d0008dd2d, 2019-03-11 (annotated)
- Committer:
- m_ahsan
- Date:
- Mon Mar 11 07:51:06 2019 +0000
- Revision:
- 15:557d0008dd2d
123
Who changed what in which revision?
User | Revision | Line number | New 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 | } |