From 7ad128e425934b74534b9ef8112ebb0eb83955a4 Mon Sep 17 00:00:00 2001 From: Tobias Jahnke Date: Wed, 9 May 2018 11:35:38 +0200 Subject: agl-service-unicens: replace legacy sendmessage Bug-AGL: SPEC-1177 Replace verb sendmessage using interger array by new new version now using base64 coded string. Change-Id: I1b06ad353a13b1e6b2f335c9567cd923960d8104 Signed-off-by: Tobias Jahnke (cherry picked from commit 98fb362c23bcbd4bd300abe6154450e3fd37d250) --- ucs2-afb/ucs_apidef.h | 31 ++++------------ ucs2-afb/ucs_apidef.json | 41 --------------------- ucs2-afb/ucs_binding.c | 95 +----------------------------------------------- 3 files changed, 8 insertions(+), 159 deletions(-) (limited to 'ucs2-afb') diff --git a/ucs2-afb/ucs_apidef.h b/ucs2-afb/ucs_apidef.h index 6b8c23a..71739b6 100644 --- a/ucs2-afb/ucs_apidef.h +++ b/ucs2-afb/ucs_apidef.h @@ -49,22 +49,13 @@ static const char _afb_description_v2_UNICENS[] = "\",\"format\":\"int32\"},\"style\":\"simple\"}],\"responses\":{\"200\":{" "\"$ref\":\"#/components/responses/200\"}}}},\"/sendmessage\":{\"descript" "ion\":\"Transmits a control message to a node.\",\"get\":{\"x-permission" - "s\":{\"$ref\":\"#/components/x-permissions/monitor\"},\"parameters\":[{\"" - "in\":\"query\",\"name\":\"node\",\"required\":true,\"schema\":{\"type\":" - "\"integer\",\"format\":\"int32\"}},{\"in\":\"query\",\"name\":\"msgid\"," - "\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int32\"}" - "},{\"in\":\"query\",\"name\":\"data\",\"required\":true,\"schema\":{\"ty" - "pe\":\"array\",\"format\":\"int32\"},\"style\":\"simple\"}],\"responses\"" - ":{\"200\":{\"$ref\":\"#/components/responses/200\"}}}},\"/sendmessageb64" - "\":{\"description\":\"Transmits a control message to a node.\",\"get\":{" - "\"x-permissions\":{\"$ref\":\"#/components/x-permissions/controller\"},\"" - "parameters\":[{\"in\":\"query\",\"name\":\"node\",\"required\":true,\"sc" - "hema\":{\"type\":\"integer\",\"format\":\"int32\"}},{\"in\":\"query\",\"" - "name\":\"msgid\",\"required\":true,\"schema\":{\"type\":\"integer\",\"fo" - "rmat\":\"int32\"}},{\"in\":\"query\",\"name\":\"data\",\"required\":fals" - "e,\"schema\":{\"type\":\"string\",\"format\":\"byte\"},\"style\":\"simpl" - "e\"}],\"responses\":{\"200\":{\"$ref\":\"#/components/responses/200\"}}}" - "}}}" + "s\":{\"$ref\":\"#/components/x-permissions/controller\"},\"parameters\":" + "[{\"in\":\"query\",\"name\":\"node\",\"required\":true,\"schema\":{\"typ" + "e\":\"integer\",\"format\":\"int32\"}},{\"in\":\"query\",\"name\":\"msgi" + "d\",\"required\":true,\"schema\":{\"type\":\"integer\",\"format\":\"int3" + "2\"}},{\"in\":\"query\",\"name\":\"data\",\"required\":false,\"schema\":" + "{\"type\":\"string\",\"format\":\"byte\"},\"style\":\"simple\"}],\"respo" + "nses\":{\"200\":{\"$ref\":\"#/components/responses/200\"}}}}}}" ; static const struct afb_auth _afb_auths_v2_UNICENS[] = { @@ -79,7 +70,6 @@ static const struct afb_auth _afb_auths_v2_UNICENS[] = { void ucs2_subscriberx(struct afb_req req); void ucs2_writei2c(struct afb_req req); void ucs2_sendmessage(struct afb_req req); - void ucs2_sendmessageb64(struct afb_req req); static const struct afb_verb_v2 _afb_verbs_v2_UNICENS[] = { { @@ -120,13 +110,6 @@ static const struct afb_verb_v2 _afb_verbs_v2_UNICENS[] = { { .verb = "sendmessage", .callback = ucs2_sendmessage, - .auth = &_afb_auths_v2_UNICENS[1], - .info = "Transmits a control message to a node.", - .session = AFB_SESSION_NONE_V2 - }, - { - .verb = "sendmessageb64", - .callback = ucs2_sendmessageb64, .auth = &_afb_auths_v2_UNICENS[2], .info = "Transmits a control message to a node.", .session = AFB_SESSION_NONE_V2 diff --git a/ucs2-afb/ucs_apidef.json b/ucs2-afb/ucs_apidef.json index 623d58e..b7550ff 100644 --- a/ucs2-afb/ucs_apidef.json +++ b/ucs2-afb/ucs_apidef.json @@ -199,47 +199,6 @@ } }, "/sendmessage": { - "description": "Transmits a control message to a node.", - "get": { - "x-permissions": { - "$ref": "#/components/x-permissions/monitor" - }, - "parameters": [ - { - "in": "query", - "name": "node", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "in": "query", - "name": "msgid", - "required": true, - "schema": { - "type": "integer", - "format": "int32" - } - }, - { - "in": "query", - "name": "data", - "required": true, - "schema": { - "type": "array", - "format": "int32" - }, - "style": "simple" - } - ], - "responses": { - "200": {"$ref": "#/components/responses/200"} - } - } - }, - "/sendmessageb64": { "description": "Transmits a control message to a node.", "get": { "x-permissions": { diff --git a/ucs2-afb/ucs_binding.c b/ucs2-afb/ucs_binding.c index bc783aa..4b21934 100644 --- a/ucs2-afb/ucs_binding.c +++ b/ucs2-afb/ucs_binding.c @@ -754,100 +754,7 @@ PUBLIC void ucs2_writei2c (struct afb_req request) { } } -/* write a single control message */ -STATIC void ucs2_sendmessage_cmd(struct afb_req request, json_object *j_obj) { - - static uint8_t ctrl_data[CTRL_MAX_DATA_SZ]; - uint8_t ctrl_data_sz = 0; - uint16_t node_addr = 0; - uint16_t msg_id = 0; - json_object *j_tmp; - - if (json_object_object_get_ex(j_obj, "node", &j_tmp)) { - node_addr = (uint16_t)json_object_get_int(j_tmp); - AFB_NOTICE("node_address: 0x%02X", node_addr); - if (node_addr == 0) { - afb_req_fail_f(request, "query-params","param node invalid type"); - goto OnErrorExit; - } - } - else { - afb_req_fail_f(request, "query-params","param node missing"); - goto OnErrorExit; - } - - if (json_object_object_get_ex(j_obj, "msgid", &j_tmp)) { - if (json_object_get_type(j_tmp) == json_type_int) { - msg_id = (uint16_t)json_object_get_int(j_tmp); - AFB_NOTICE("msgid: 0x%02X", msg_id); - } - else { - afb_req_fail_f(request, "query-params","param msgid invalid type"); - goto OnErrorExit; - } - } - else { - afb_req_fail_f(request, "query-params","param msgid missing"); - goto OnErrorExit; - } - - if (json_object_object_get_ex(j_obj, "data", &j_tmp)) { - if (json_object_get_type(j_tmp)==json_type_array) { - int size = json_object_array_length(j_tmp); - if ((size > 0) && (size <= CTRL_MAX_DATA_SZ)) { - int32_t i; - int32_t val; - struct json_object *j_elem; - - for (i = 0; i < size; i++) { - j_elem = json_object_array_get_idx(j_tmp, i); - val = json_object_get_int(j_elem); - if ((val < 0) && (val > 0xFF)){ - i = 0; - break; - } - ctrl_data[i] = (uint8_t)json_object_get_int(j_elem); - } - - if (i != size) { /* check if size matches */ - afb_req_fail_f(request, "query-params", - "parameter data is ambiguous"); - goto OnErrorExit; - } - - ctrl_data_sz = (uint8_t)i; - } - } - } - - if (UCSI_SendAmsMessage(&ucsContextS->ucsiData, /* UCSI_Data_t *pPriv*/ - msg_id, - node_addr, - &ctrl_data[0], - ctrl_data_sz)) { - afb_req_success(request, NULL, "sendmessage started successful"); - } - else { - AFB_NOTICE("sendmessage: scheduling command failed"); - afb_req_fail_f(request, "query-command-queue","command queue overload"); - goto OnErrorExit; - } - -OnErrorExit: - return; -} - -PUBLIC void ucs2_sendmessage(struct afb_req request) { - struct json_object *j_obj; - - j_obj = ucs2_validate_command(request, "sendmessage"); - - if (j_obj) { - ucs2_sendmessage_cmd(request, j_obj); - } -} - -PUBLIC void ucs2_sendmessageb64(struct afb_req req) { +PUBLIC void ucs2_sendmessage(struct afb_req req) { uint8_t *data_ptr = NULL; size_t data_sz = 0; int ret, node_addr, msg_id = 0; -- cgit 1.2.3-korg