aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTobias Jahnke <tobias.jahnke@microchip.com>2018-05-09 11:35:38 +0200
committerTobias Jahnke <tobias.jahnke@microchip.com>2018-05-09 11:35:38 +0200
commit98fb362c23bcbd4bd300abe6154450e3fd37d250 (patch)
tree35c8412092ba1920c0e58244790f32ac04d47409
parent216ae6b4e1c6eac62dea123816ccb1314c8362c9 (diff)
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 <tobias.jahnke@microchip.com>
-rw-r--r--htdocs/UNICENS.html11
-rw-r--r--ucs2-afb/ucs_apidef.h31
-rw-r--r--ucs2-afb/ucs_apidef.json41
-rw-r--r--ucs2-afb/ucs_binding.c95
4 files changed, 12 insertions, 166 deletions
diff --git a/htdocs/UNICENS.html b/htdocs/UNICENS.html
index fd2e89c..ab478f6 100644
--- a/htdocs/UNICENS.html
+++ b/htdocs/UNICENS.html
@@ -38,13 +38,10 @@
<li><button onclick="callbinder('UNICENS','writei2c', {node: 0x272, data:[0x07,0x03,0xFF]})">WriteI2c to 0x272 (mute)</button></li>
</ol>
<ol>
- <li><button onclick="callbinder('UNICENS','sendmessage', {node: 0x270, msgid: 0x5AC4, data:[0x01,0x02,0xFF]})">Send ControlMsg to 0x270</button></li>
- </ol>
- <ol>
- <li><button onclick="callbinder('UNICENS','sendmessageb64', {node: 0x270, msgid: 0x5AC4, data:'ESIzRA=='})">Send ControlMsgB64 to 0x270</button></li>
- <li><button onclick="callbinder('UNICENS','sendmessageb64', {node: 0x270, msgid: 0x5AC4})">Send ControlMsgB64 to 0x270 (no data)</button></li>
- <!--<li><button onclick="callbinder('UNICENS','sendmessageb64', {node: 0x270, msgid: 0x5AC4, data: null})">Send ControlMsgB64 to 0x270 (data: null)</button></li>-->
- <!--<li><button onclick="callbinder('UNICENS','sendmessageb64', {node: 0x270, msgid: 0x5AC4, data: ''})">Send ControlMsgB64 to 0x270 (data: '')</button></li>-->
+ <li><button onclick="callbinder('UNICENS','sendmessage', {node: 0x270, msgid: 0x5AC4, data:'ESIzRA=='})">Send ControlMsgB64 to 0x270</button></li>
+ <li><button onclick="callbinder('UNICENS','sendmessage', {node: 0x270, msgid: 0x5AC4})">Send ControlMsgB64 to 0x270 (no data)</button></li>
+ <!--<li><button onclick="callbinder('UNICENS','sendmessage', {node: 0x270, msgid: 0x5AC4, data: null})">Send ControlMsgB64 to 0x270 (data: null)</button></li>-->
+ <!--<li><button onclick="callbinder('UNICENS','sendmessage', {node: 0x270, msgid: 0x5AC4, data: ''})">Send ControlMsgB64 to 0x270 (data: '')</button></li>-->
</ol>
<br>
<br>
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
@@ -202,47 +202,6 @@
"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": {
"$ref": "#/components/x-permissions/controller"
},
"parameters": [
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;