summaryrefslogtreecommitdiffstats
path: root/ucs2-afb/ucs_binding.c
diff options
context:
space:
mode:
authorTobias Jahnke <tobias.jahnke@microchip.com>2018-05-09 11:35:38 +0200
committerWalt Miner <walt@linux.com>2018-06-08 12:30:26 +0000
commit7ad128e425934b74534b9ef8112ebb0eb83955a4 (patch)
tree9d0c94528e3e7f6fcee8b71a38d554a3843bc768 /ucs2-afb/ucs_binding.c
parent3066cc55c95c7ffaa76ceb1599b61f6f42da626e (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> (cherry picked from commit 98fb362c23bcbd4bd300abe6154450e3fd37d250)
Diffstat (limited to 'ucs2-afb/ucs_binding.c')
-rw-r--r--ucs2-afb/ucs_binding.c95
1 files changed, 1 insertions, 94 deletions
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;