Commit 4a369d9b authored by whmaizmy's avatar whmaizmy

【修改内容】调整kk_tsl_service_property_set函数

【提交人】陈伟灿
parent 1ce0a1fb
......@@ -4,6 +4,8 @@
const char DM_URI_SYS_PREFIX[] DM_READ_ONLY = "/sys/%s/%s/";
const char DM_URI_THING_EVENT_PROPERTY_POST[] DM_READ_ONLY = "thing/event/property/post";
const char DM_URI_THING_SERVICE_PROPERTY_SET_REPLY[] DM_READ_ONLY = "thing/service/property/set_reply";
const char DM_MSG_REQUEST[] DM_READ_ONLY = "{\"id\":\"%d\",\"version\":\"%s\",\"params\":%.*s,\"method\":\"%s\"}";
......
......@@ -56,5 +56,7 @@ typedef enum {
extern const char DM_URI_SYS_PREFIX[] DM_READ_ONLY;
extern const char DM_URI_THING_EVENT_PROPERTY_POST[] DM_READ_ONLY;
const char DM_URI_THING_SERVICE_PROPERTY_SET_REPLY[] DM_READ_ONLY;
#endif
......@@ -2,6 +2,7 @@
#include "kk_tsl_api.h"
#include "kk_tsl_load.h"
#include "kk_dm_mng.h"
#include "kk_dm_msg.h"
typedef enum {
KK_MSG_PROPERTY_SET,
......@@ -664,40 +665,54 @@ int kk_msg_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli,
return SUCCESS_RETURN;
}
int kk_tsl_service_property_set(_IN_ kk_msg_source_t *source, _IN_ kk_msg_dest_t *dest,
_OU_ kk_msg_request_payload_t *request, _OU_ kk_msg_response_t *response)
int kk_tsl_service_property_set(const char *topic, const char *payload, unsigned int payload_len,
void *context)
{
kk_msg_source_t source;
kk_msg_request_payload_t request;
kk_msg_response_t response;
int res = 0, devid = 0;
char product_key[PRODUCT_KEY_MAXLEN] = {0};
char device_name[DEVICE_NAME_MAXLEN] = {0};
memset(&source, 0, sizeof(kk_msg_source_t));
memset(&request, 0, sizeof(kk_msg_request_payload_t));
memset(&response, 0, sizeof(kk_msg_response_t));
source.uri = topic;
source.payload = (unsigned char *)payload;
source.payload_len = payload_len;
source.context = NULL;
/**************to do*******************/
//dm_log_info(DM_URI_THING_SERVICE_PROPERTY_SET);
/* Request */
res = kk_msg_uri_parse_pkdn((char *)source->uri, strlen(source->uri), 2 + KK_URI_OFFSET, 4 + KK_URI_OFFSET, product_key,
/* Request */
res =kk_msg_uri_parse_pkdn((char *)topic, strlen(topic), 2 + KK_URI_OFFSET, 4 + KK_URI_OFFSET, product_key,
device_name);
if (res < SUCCESS_RETURN) {
return res;
}
res = dm_mgr_search_device_by_pkdn(product_key, device_name, &devid);
if (res < SUCCESS_RETURN) {
return res;
}
res = kk_msg_request_parse((char *)source->payload, source->payload_len, request);
res = kk_msg_request_parse((char *)payload, payload_len, &request);
if (res < SUCCESS_RETURN) {
return res ;
}
/* Operation */
res = kk_msg_property_set(devid, request);
res = kk_msg_property_set(devid, &request);
/* Response */
//response->service_prefix = DM_URI_SYS_PREFIX;
response->service_name = dest->uri_name;
memcpy(response->product_key, product_key, strlen(product_key));
memcpy(response->device_name, device_name, strlen(device_name));
response->code = (res == SUCCESS_RETURN) ? (IOTX_DM_ERR_CODE_SUCCESS) : (IOTX_DM_ERR_CODE_REQUEST_ERROR);
response.service_prefix = DM_URI_SYS_PREFIX;
response.service_name = DM_URI_THING_SERVICE_PROPERTY_SET_REPLY;
memcpy(response.product_key, product_key, strlen(product_key));
memcpy(response.device_name, device_name, strlen(device_name));
response.code = (res == SUCCESS_RETURN) ? (IOTX_DM_ERR_CODE_SUCCESS) : (IOTX_DM_ERR_CODE_REQUEST_ERROR);
dm_msg_response(&request, &response, "{}", strlen("{}"), NULL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment