Changeset 264
- Timestamp:
- Nov 18, 2016, 3:02:07 PM (7 years ago)
- Location:
- uKadecot/trunk
- Files:
-
- 1 added
- 1 deleted
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
uKadecot/trunk/kadecot/wamp.c
r108 r264 1338 1338 if ((action == JSONSL_ACTION_POP) 1339 1339 && (state->type == JSONSL_T_STRING)) { 1340 wamp_dealer_call_procedure(&s->dealer, s->jsn_buf );1340 wamp_dealer_call_procedure(&s->dealer, s->jsn_buf, strnlen(s->jsn_buf, sizeof(s->jsn_buf))); 1341 1341 s->prmst = WAMP_PARAM_STATE_ARGUMENTS_LIST; 1342 1342 s->state = WAMP_PARSE_STATE_LIST_PUSH; -
uKadecot/trunk/kadecot/wamp_dealer.c
r158 r264 182 182 } 183 183 184 void wamp_dealer_call_procedure(wamp_dealer_t *dealer, const char *value) 185 { 186 static const char getDeviceList[] = "com.sonycsl.kadecot.provider.procedure.getDeviceList"; 187 static const char kadecotGet[] = "com.sonycsl.kadecot.echonetlite.procedure.get"; 188 static const char kadecotSet[] = "com.sonycsl.kadecot.echonetlite.procedure.set"; 189 static const char getDeviceInfo[] = "jp.toppers.ecnl.procedure.getDeviceInfo"; 190 static const char ecnlSet[] = "jp.toppers.ecnl.procedure.set"; 191 static const char ecnlGet[] = "jp.toppers.ecnl.procedure.get"; 192 static const char ecnlSetGet[] = "jp.toppers.ecnl.procedure.setget"; 193 static const char pinMode[] = "com.sonycsl.kadecot.arduino.pinMode"; 194 static const char digitalWrite[] = "com.sonycsl.kadecot.arduino.digitalWrite"; 195 static const char digitalRead[] = "com.sonycsl.kadecot.arduino.digitalRead"; 196 static const char analogRead[] = "com.sonycsl.kadecot.arduino.analogRead"; 197 static const char analogWrite[] = "com.sonycsl.kadecot.arduino.analogWrite"; 198 static const char setInitParams[] = "jp.toppers.ecnl.procedure.setInitParams"; 199 static const char getInitParams[] = "jp.toppers.ecnl.procedure.getInitParams"; 200 201 if(strcmp(getDeviceList, value) == 0){ 202 dealer->procedure = WAMP_DEALER_PROCEDURE_GET_DEVICELIST; 203 dealer->args_parse = wamp_dealer_call_dummy_param; 204 dealer->call_close = wamp_dealer_get_devicelist_close; 205 } 206 else if(strcmp(kadecotGet, value) == 0){ 207 dealer->procedure = WAMP_DEALER_PROCEDURE_KADECOT_GET; 208 dealer->args_parse = wamp_dealer_call_kadecot_param; 209 dealer->call_close = wamp_dealer_kadecot_get_close; 210 } 211 else if(strcmp(kadecotSet, value) == 0){ 212 dealer->procedure = WAMP_DEALER_PROCEDURE_KADECOT_SET; 213 dealer->args_parse = wamp_dealer_call_kadecot_param; 214 dealer->call_close = wamp_dealer_kadecot_set_close; 215 } 216 else if(strcmp(getDeviceInfo, value) == 0){ 217 dealer->procedure = WAMP_DEALER_PROCEDURE_GET_DEVICEINFO; 218 dealer->args_parse = wamp_dealer_call_dummy_param; 219 dealer->call_close = wamp_dealer_get_deviceinfo_close; 220 } 221 else if(strcmp(ecnlSet, value) == 0){ 222 dealer->procedure = WAMP_DEALER_PROCEDURE_ECNL_SET; 223 dealer->args_parse = wamp_dealer_call_ecnl_param; 224 dealer->call_close = wamp_dealer_ecnl_set_close; 225 } 226 else if(strcmp(ecnlGet, value) == 0){ 227 dealer->procedure = WAMP_DEALER_PROCEDURE_ECNL_GET; 228 dealer->args_parse = wamp_dealer_call_ecnl_param; 229 dealer->call_close = wamp_dealer_ecnl_get_close; 230 } 231 else if(strcmp(ecnlSetGet, value) == 0){ 232 dealer->procedure = WAMP_DEALER_PROCEDURE_ECNL_SETGET; 233 dealer->args_parse = wamp_dealer_call_ecnl_param; 234 dealer->call_close = wamp_dealer_ecnl_setget_close; 235 } 236 else if(strcmp(pinMode, value) == 0){ 237 dealer->procedure = WAMP_DEALER_PROCEDURE_PIN_MODE; 238 dealer->args_parse = wamp_dealer_call_arduino_param; 239 dealer->call_close = wamp_dealer_pin_mode_close; 240 } 241 else if(strcmp(digitalWrite, value) == 0){ 242 dealer->procedure = WAMP_DEALER_PROCEDURE_DIGITAL_WRITE; 243 dealer->args_parse = wamp_dealer_call_arduino_param; 244 dealer->call_close = wamp_dealer_digital_write_close; 245 } 246 else if(strcmp(digitalRead, value) == 0){ 247 dealer->procedure = WAMP_DEALER_PROCEDURE_DIGITAL_READ; 248 dealer->args_parse = wamp_dealer_call_arduino_param; 249 dealer->call_close = wamp_dealer_digital_read_close; 250 } 251 else if(strcmp(analogRead, value) == 0){ 252 dealer->procedure = WAMP_DEALER_PROCEDURE_ANALOG_READ; 253 dealer->args_parse = wamp_dealer_call_arduino_param; 254 dealer->call_close = wamp_dealer_analog_read_close; 255 } 256 else if(strcmp(analogWrite, value) == 0){ 257 dealer->procedure = WAMP_DEALER_PROCEDURE_ANALOG_WRITE; 258 dealer->args_parse = wamp_dealer_call_arduino_param; 259 dealer->call_close = wamp_dealer_analog_write_close; 260 } 261 else if(strcmp(setInitParams, value) == 0){ 262 dealer->procedure = WAMP_DEALER_PROCEDURE_SET_INIT_PARAMS; 263 dealer->args_parse = wamp_dealer_call_init_params_param; 264 dealer->call_close = wamp_dealer_set_init_params_close; 265 } 266 else if (strcmp(getInitParams, value) == 0) { 267 dealer->procedure = WAMP_DEALER_PROCEDURE_GET_INIT_PARAMS; 268 dealer->args_parse = wamp_dealer_call_init_params_param; 269 dealer->call_close = wamp_dealer_get_init_params_close; 270 } 271 else{ 272 dealer->procedure = WAMP_DEALER_PROCEDURE_NONE; 273 dealer->args_parse = wamp_dealer_call_dummy_param; 274 dealer->call_close = wamp_dealer_none_close; 275 } 184 void wamp_dealer_call_procedure(wamp_dealer_t *dealer, const char *value, int length) 185 { 186 static const char comSonycslKadecot[] = "com.sonycsl.kadecot."; 187 static const char jpToppersEcnl[] = "jp.toppers.ecnl."; 188 const char *start = value; 189 190 if (strncmp(comSonycslKadecot, value, sizeof(comSonycslKadecot) - 1) == 0) { 191 static const char provider[] = "provider.procedure."; 192 static const char echonetlite[] = "echonetlite.procedure."; 193 static const char arduino[] = "arduino."; 194 value = &value[sizeof(comSonycslKadecot) - 1]; 195 196 if (strncmp(provider, value, sizeof(provider) - 1) == 0) { 197 static const char getDeviceList[] = "getDeviceList"; 198 value = &value[sizeof(provider) - 1]; 199 200 if (strncmp(getDeviceList, value, sizeof(getDeviceList) - 1) == 0) { 201 dealer->procedure = WAMP_DEALER_PROCEDURE_GET_DEVICELIST; 202 dealer->args_parse = wamp_dealer_call_dummy_param; 203 dealer->call_close = wamp_dealer_get_devicelist_close; 204 return; 205 } 206 } 207 else if (strncmp(echonetlite, value, sizeof(echonetlite) - 1) == 0) { 208 static const char kadecotGet[] = "get"; 209 static const char kadecotSet[] = "set"; 210 value = &value[sizeof(echonetlite) - 1]; 211 212 if (strncmp(kadecotGet, value, sizeof(kadecotGet) - 1) == 0) { 213 dealer->procedure = WAMP_DEALER_PROCEDURE_KADECOT_GET; 214 dealer->args_parse = wamp_dealer_call_kadecot_param; 215 dealer->call_close = wamp_dealer_kadecot_get_close; 216 return; 217 } 218 else if (strncmp(kadecotSet, value, sizeof(kadecotSet) - 1) == 0) { 219 dealer->procedure = WAMP_DEALER_PROCEDURE_KADECOT_SET; 220 dealer->args_parse = wamp_dealer_call_kadecot_param; 221 dealer->call_close = wamp_dealer_kadecot_set_close; 222 return; 223 } 224 225 for (int i = value - start; i < length; i++) { 226 if (*value == '.' || *value == '\0') { 227 value++; 228 break; 229 } 230 value++; 231 } 232 233 if (strncmp(kadecotGet, value, sizeof(kadecotGet) - 1) == 0) { 234 dealer->procedure = WAMP_DEALER_PROCEDURE_KADECOT_GET; 235 dealer->args_parse = wamp_dealer_call_kadecot_param; 236 dealer->call_close = wamp_dealer_kadecot_get_close; 237 return; 238 } 239 else if (strncmp(kadecotSet, value, sizeof(kadecotSet) - 1) == 0) { 240 dealer->procedure = WAMP_DEALER_PROCEDURE_KADECOT_SET; 241 dealer->args_parse = wamp_dealer_call_kadecot_param; 242 dealer->call_close = wamp_dealer_kadecot_set_close; 243 return; 244 } 245 } 246 else if (strncmp(arduino, value, sizeof(arduino) - 1) == 0) { 247 static const char pinMode[] = "pinMode"; 248 static const char digitalWrite[] = "digitalWrite"; 249 static const char digitalRead[] = "digitalRead"; 250 static const char analogRead[] = "analogRead"; 251 static const char analogWrite[] = "analogWrite"; 252 value = &value[sizeof(arduino) - 1]; 253 254 if (strncmp(pinMode, value, sizeof(pinMode) - 1) == 0) { 255 dealer->procedure = WAMP_DEALER_PROCEDURE_PIN_MODE; 256 dealer->args_parse = wamp_dealer_call_arduino_param; 257 dealer->call_close = wamp_dealer_pin_mode_close; 258 return; 259 } 260 else if (strncmp(digitalWrite, value, sizeof(digitalWrite) - 1) == 0) { 261 dealer->procedure = WAMP_DEALER_PROCEDURE_DIGITAL_WRITE; 262 dealer->args_parse = wamp_dealer_call_arduino_param; 263 dealer->call_close = wamp_dealer_digital_write_close; 264 return; 265 } 266 else if (strncmp(digitalRead, value, sizeof(digitalRead) - 1) == 0) { 267 dealer->procedure = WAMP_DEALER_PROCEDURE_DIGITAL_READ; 268 dealer->args_parse = wamp_dealer_call_arduino_param; 269 dealer->call_close = wamp_dealer_digital_read_close; 270 return; 271 } 272 else if (strncmp(analogRead, value, sizeof(analogRead) - 1) == 0) { 273 dealer->procedure = WAMP_DEALER_PROCEDURE_ANALOG_READ; 274 dealer->args_parse = wamp_dealer_call_arduino_param; 275 dealer->call_close = wamp_dealer_analog_read_close; 276 return; 277 } 278 else if (strncmp(analogWrite, value, sizeof(analogWrite) - 1) == 0) { 279 dealer->procedure = WAMP_DEALER_PROCEDURE_ANALOG_WRITE; 280 dealer->args_parse = wamp_dealer_call_arduino_param; 281 dealer->call_close = wamp_dealer_analog_write_close; 282 return; 283 } 284 } 285 } 286 else if (strncmp(jpToppersEcnl, value, sizeof(jpToppersEcnl) - 1) == 0) { 287 static const char getDeviceInfo[] = "procedure.getDeviceInfo"; 288 static const char ecnlSet[] = "procedure.set"; 289 static const char ecnlGet[] = "procedure.get"; 290 static const char ecnlSetGet[] = "procedure.setget"; 291 static const char setInitParams[] = "procedure.setInitParams"; 292 static const char getInitParams[] = "procedure.getInitParams"; 293 294 if (strncmp(getDeviceInfo, value, sizeof(getDeviceInfo) - 1) == 0) { 295 dealer->procedure = WAMP_DEALER_PROCEDURE_GET_DEVICEINFO; 296 dealer->args_parse = wamp_dealer_call_dummy_param; 297 dealer->call_close = wamp_dealer_get_deviceinfo_close; 298 return; 299 } 300 else if (strncmp(ecnlSet, value, sizeof(ecnlSet) - 1) == 0) { 301 dealer->procedure = WAMP_DEALER_PROCEDURE_ECNL_SET; 302 dealer->args_parse = wamp_dealer_call_ecnl_param; 303 dealer->call_close = wamp_dealer_ecnl_set_close; 304 return; 305 } 306 else if (strncmp(ecnlGet, value, sizeof(ecnlGet) - 1) == 0) { 307 dealer->procedure = WAMP_DEALER_PROCEDURE_ECNL_GET; 308 dealer->args_parse = wamp_dealer_call_ecnl_param; 309 dealer->call_close = wamp_dealer_ecnl_get_close; 310 return; 311 } 312 else if (strncmp(ecnlSetGet, value, sizeof(ecnlSetGet) - 1) == 0) { 313 dealer->procedure = WAMP_DEALER_PROCEDURE_ECNL_SETGET; 314 dealer->args_parse = wamp_dealer_call_ecnl_param; 315 dealer->call_close = wamp_dealer_ecnl_setget_close; 316 return; 317 } 318 else if (strncmp(setInitParams, value, sizeof(setInitParams) - 1) == 0) { 319 dealer->procedure = WAMP_DEALER_PROCEDURE_SET_INIT_PARAMS; 320 dealer->args_parse = wamp_dealer_call_init_params_param; 321 dealer->call_close = wamp_dealer_set_init_params_close; 322 return; 323 } 324 else if (strncmp(getInitParams, value, sizeof(getInitParams) - 1) == 0) { 325 dealer->procedure = WAMP_DEALER_PROCEDURE_GET_INIT_PARAMS; 326 dealer->args_parse = wamp_dealer_call_init_params_param; 327 dealer->call_close = wamp_dealer_get_init_params_close; 328 return; 329 } 330 } 331 332 dealer->procedure = WAMP_DEALER_PROCEDURE_NONE; 333 dealer->args_parse = wamp_dealer_call_dummy_param; 334 dealer->call_close = wamp_dealer_none_close; 276 335 } 277 336 -
uKadecot/trunk/kadecot/wamp_dealer.h
r125 r264 175 175 void wamp_dealer_call_options_param(wamp_dealer_t *dealer, jsonsl_action_t action, 176 176 struct jsonsl_state_st *state, const char *buf); 177 void wamp_dealer_call_procedure(wamp_dealer_t *dealer, const char *value );177 void wamp_dealer_call_procedure(wamp_dealer_t *dealer, const char *value, int length); 178 178 void wamp_dealer_call_arguments(wamp_dealer_t *dealer, const char *value); 179 179 void wamp_dealer_call_arguments_param(wamp_dealer_t *dealer, jsonsl_action_t action,
Note:
See TracChangeset
for help on using the changeset viewer.