Commit fc3fe0ee authored by 黄振令's avatar 黄振令
parents dbaa62f2 4edd1128
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
#define TOPIC "/sys/a1OYuSBt23u/aIqEbWno8yDdsjCX15iq/thing/service/property/set" #define TOPIC "/sys/a1OYuSBt23u/aIqEbWno8yDdsjCX15iq/thing/service/property/set"
#define PAYLOAD "Hello cwc World!" #define PAYLOAD "Hello cwc World!"
#define QOS 2 #define QOS 0
#define TIMEOUT 10000L #define TIMEOUT 10000L
#define USRNAME "hangzhou_gateway " #define USRNAME "hangzhou_gateway "
#define PASSWORD "2ca1442865ff4cb99870f60f2c646190" #define PASSWORD "2ca1442865ff4cb99870f60f2c646190"
......
This diff is collapsed.
...@@ -738,11 +738,78 @@ int dm_msg_thing_property_set_reply(char deviceCode[DEVICE_CODE_MAXLEN],char *pa ...@@ -738,11 +738,78 @@ int dm_msg_thing_property_set_reply(char deviceCode[DEVICE_CODE_MAXLEN],char *pa
dm_msg_response(&request, &response, "{}", strlen("{}"), NULL); dm_msg_response(&request, &response, "{}", strlen("{}"), NULL);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
int dm_msg_thing_event_post(const char *deviceCode, const char *identifier)
{
int res = 0;
int nums = 0;
int idx = 0;
char *payload = NULL;
dm_mgr_dev_node_t *node = NULL;
void *event = NULL;
char *method = NULL;
if(deviceCode == NULL){
return FAIL_RETURN;
}
res = dm_mgr_get_device_by_devicecode(deviceCode, &node);
if (res != SUCCESS_RETURN) {
return FAIL_RETURN;
}
payload = kk_tsl_get_post_event_str(node->dev_shadow,identifier,strlen(identifier));
if(payload != NULL){
res = kk_tsl_get_event_by_identifier(node->dev_shadow, identifier, &event);
if (res != SUCCESS_RETURN) {
free(payload);
return FAIL_RETURN;
}
res = kk_tsl_get_event_method(event, &method);
if (res != SUCCESS_RETURN) {
free(payload);
return FAIL_RETURN;
}
dm_mgr_upstream_thing_event_post(node->devid, identifier, strlen(identifier), method, payload, strlen(payload));
free(method);
method = NULL;
free(payload);
payload = NULL;
}
return SUCCESS_RETURN;
}
int dm_msg_thing_service_post(const char *deviceCode, const char *identifier,int response_id,int code)
{
int res = 0;
int nums = 0;
int idx = 0;
char *payload = NULL;
dm_mgr_dev_node_t *node = NULL;
if(deviceCode == NULL){
return FAIL_RETURN;
}
res = dm_mgr_get_device_by_devicecode(deviceCode, &node);
if (res != SUCCESS_RETURN) {
return FAIL_RETURN;
}
payload = kk_tsl_get_post_service_str(node->dev_shadow,identifier);
if(payload != NULL){
dm_mgr_deprecated_upstream_thing_service_response(node->devid,response_id,code, identifier, strlen(identifier), payload, strlen(payload));
free(payload);
payload = NULL;
}
return SUCCESS_RETURN;
}
int dm_msg_thing_property_post_all(char *deviceCode) int dm_msg_thing_property_post_all(char *deviceCode)
{ {
int res = 0; int res = 0;
int nums = 0; int nums = 0;
int idx = 0; int idx = 0;
char *payload = NULL;
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
if(deviceCode == NULL){ if(deviceCode == NULL){
...@@ -753,7 +820,12 @@ int dm_msg_thing_property_post_all(char *deviceCode) ...@@ -753,7 +820,12 @@ int dm_msg_thing_property_post_all(char *deviceCode)
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
return FAIL_RETURN; return FAIL_RETURN;
} }
kk_tsl_post_property(node->devid,NULL,1);//here need async post payload = kk_tsl_get_post_property_str(node->dev_shadow,NULL);//here need async post
if(payload != NULL){
dm_mgr_upstream_thing_property_post(node->devid, payload, strlen(payload),1);
free(payload);
payload = NULL;
}
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
...@@ -784,7 +856,6 @@ int dm_msg_thing_property_post_by_identify(char *deviceCode,cJSON *params) ...@@ -784,7 +856,6 @@ int dm_msg_thing_property_post_by_identify(char *deviceCode,cJSON *params)
} }
propertyItem = cJSON_GetObjectItem(params, property->identifier); propertyItem = cJSON_GetObjectItem(params, property->identifier);
if(propertyItem != NULL){ if(propertyItem != NULL){
//kk_tsl_post_property(node->devid,property->identifier,0);
/*update the db data */ /*update the db data */
if(property->data_value.type == KK_TSL_DATA_TYPE_INT || if(property->data_value.type == KK_TSL_DATA_TYPE_INT ||
......
This diff is collapsed.
...@@ -328,11 +328,12 @@ int kk_property_sync_values(const char *deviceCode) ...@@ -328,11 +328,12 @@ int kk_property_sync_values(const char *deviceCode)
char *pIdentifier = NULL; char *pIdentifier = NULL;
char *valueStr = NULL; char *valueStr = NULL;
int valueType = 0; int valueType = 0;
int devId = 0;
kk_property_db_ctx_t *ctx = _kk_property_db_get_ctx(); kk_property_db_ctx_t *ctx = _kk_property_db_get_ctx();
char *searchCmd = "select * from PropertiesInfo;"; char *searchCmd = "select * from PropertiesInfo;";
dm_mgr_dev_node_t *node = NULL;
dm_mgr_get_devId_by_devicecode(deviceCode,&devId); dm_mgr_get_device_by_devicecode(deviceCode,&node);
sqlCmd = sqlite3_mprintf(searchCmd,deviceCode); sqlCmd = sqlite3_mprintf(searchCmd,deviceCode);
...@@ -351,18 +352,18 @@ int kk_property_sync_values(const char *deviceCode) ...@@ -351,18 +352,18 @@ int kk_property_sync_values(const char *deviceCode)
valueType == KK_TSL_DATA_TYPE_ENUM|| valueType == KK_TSL_DATA_TYPE_ENUM||
valueType == KK_TSL_DATA_TYPE_BOOL){ valueType == KK_TSL_DATA_TYPE_BOOL){
int value_int = atoi(valueStr); int value_int = atoi(valueStr);
res = kk_tsl_set_value(kk_tsl_set_property_value,devId,pIdentifier,&value_int,NULL); res = kk_tsl_set_value(kk_tsl_set_property_value,node->dev_shadow,pIdentifier,&value_int,NULL);
} }
else if(valueType == KK_TSL_DATA_TYPE_FLOAT){ else if(valueType == KK_TSL_DATA_TYPE_FLOAT){
float value_float = atoi(valueStr); float value_float = atoi(valueStr);
res = kk_tsl_set_value(kk_tsl_set_property_value,devId,pIdentifier,&value_float,NULL); res = kk_tsl_set_value(kk_tsl_set_property_value,node->dev_shadow,pIdentifier,&value_float,NULL);
} }
else if(valueType == KK_TSL_DATA_TYPE_DOUBLE){ else if(valueType == KK_TSL_DATA_TYPE_DOUBLE){
double value_double = atoi(valueStr); double value_double = atoi(valueStr);
res = kk_tsl_set_value(kk_tsl_set_property_value,devId,pIdentifier,&value_double,NULL); res = kk_tsl_set_value(kk_tsl_set_property_value,node->dev_shadow,pIdentifier,&value_double,NULL);
} }
else{ else{
res = kk_tsl_set_value(kk_tsl_set_property_value,devId,pIdentifier,NULL,valueStr); res = kk_tsl_set_value(kk_tsl_set_property_value,node->dev_shadow,pIdentifier,NULL,valueStr);
} }
if(res != SUCCESS_RETURN) if(res != SUCCESS_RETURN)
{ {
......
This diff is collapsed.
#ifndef __KK_WHITELIST_MNG_H__
#define __KK_WHITELIST_MNG_H__
#include "kk_tsl_common.h"
typedef struct {
char device_mac[DEVICE_MAC_MAXLEN];
char product_id[PRODUCT_TYPE_MAXLEN];
char device_sn[DEVICE_SN_MAXLEN];
char device_id[DEVICE_CODE_MAXLEN];
int index;
} kk_wlist_dev_t;
int kk_wlist_init(void);
int kk_wlist_status_open(int isOpen);
int kk_add_wlist(kk_wlist_dev_t *wlist_dev);
int kk_get_wlist_num(void);
int kk_delete_wlist_byMac(const char* device_mac);
#endif
\ No newline at end of file
...@@ -223,7 +223,9 @@ void kk_platMsg_handle(void* data, char* chalMark){ ...@@ -223,7 +223,9 @@ void kk_platMsg_handle(void* data, char* chalMark){
}else if (strstr(msgType->valuestring, KK_THING_PROPERTY_POST) != NULL){ }else if (strstr(msgType->valuestring, KK_THING_PROPERTY_POST) != NULL){
INFO_PRINT("save property and send to cloud \n"); INFO_PRINT("save property and send to cloud \n");
char* outstr = cJSON_Print(payload); char* outstr = cJSON_Print(payload);
kk_tsl_property_set_by_devicecode(info_dcode->valuestring, outstr, strlen(outstr)+1); kk_tsl_t *dev_shadow = NULL;
dm_mgr_get_device_shadow_by_devicecode(info_dcode->valuestring,&dev_shadow);
kk_tsl_property_set_by_shadow(dev_shadow, outstr, strlen(outstr)+1);
dm_msg_thing_property_post_by_identify(info_dcode->valuestring,jsonPay); dm_msg_thing_property_post_by_identify(info_dcode->valuestring,jsonPay);
free(outstr); free(outstr);
...@@ -236,7 +238,6 @@ void kk_platMsg_handle(void* data, char* chalMark){ ...@@ -236,7 +238,6 @@ void kk_platMsg_handle(void* data, char* chalMark){
}else{ }else{
INFO_PRINT("kk_platMsg_handle data: don't handle it [%s]\n",data); INFO_PRINT("kk_platMsg_handle data: don't handle it [%s]\n",data);
//kk_tsl_service_property_set(topic->valuestring, payload->valuestring, strlen(payload->valuestring), NULL);
} }
error: error:
cJSON_Delete(json); cJSON_Delete(json);
...@@ -580,6 +581,8 @@ void *ccu_property_monitor(void *args) ...@@ -580,6 +581,8 @@ void *ccu_property_monitor(void *args)
int res = 0; int res = 0;
int needReport = 0; int needReport = 0;
int time_second = 60; int time_second = 60;
dm_mgr_dev_node_t *node = NULL;
dm_mgr_search_dev_by_devid(KK_DM_DEVICE_CCU_DEVICEID,&node);
while (mid_ctx->g_ccuProChg_dispatch_thread_running) { while (mid_ctx->g_ccuProChg_dispatch_thread_running) {
if(kk_get_cloud_recv_status() == 0){ if(kk_get_cloud_recv_status() == 0){
...@@ -587,15 +590,15 @@ void *ccu_property_monitor(void *args) ...@@ -587,15 +590,15 @@ void *ccu_property_monitor(void *args)
sleep(10); sleep(10);
continue; continue;
} }
//dm_ota_yield(MID_YIELD_TIMEOUT_MS);
HAL_Get_IP(s_IP,NULL); HAL_Get_IP(s_IP,NULL);
res = kk_tsl_get_value(kk_tsl_get_property_value,0,KK_TSL_CCU_WANIP_IDENTIFIER,s_IP_TSL,NULL); res = kk_tsl_get_value(kk_tsl_get_property_value,node->dev_shadow,KK_TSL_CCU_WANIP_IDENTIFIER,s_IP_TSL,NULL);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
ERROR_PRINT("kk_tsl_get_value Failed\n"); ERROR_PRINT("kk_tsl_get_value Failed\n");
} }
else{ else{
if(strcmp(s_IP,s_IP_TSL)){ if(strcmp(s_IP,s_IP_TSL)){
kk_tsl_set_value(kk_tsl_set_property_value,0,KK_TSL_CCU_WANIP_IDENTIFIER,NULL,s_IP); kk_tsl_set_value(kk_tsl_set_property_value,node->dev_shadow,KK_TSL_CCU_WANIP_IDENTIFIER,NULL,s_IP);
INFO_PRINT("current ip:%s,before ip:%s\n",s_IP,s_IP_TSL); INFO_PRINT("current ip:%s,before ip:%s\n",s_IP,s_IP_TSL);
kk_property_db_update("CCU_66666"); kk_property_db_update("CCU_66666");
needReport = 1; needReport = 1;
...@@ -604,7 +607,12 @@ void *ccu_property_monitor(void *args) ...@@ -604,7 +607,12 @@ void *ccu_property_monitor(void *args)
if(needReport&&(kk_get_cloudstatus() == 1)){ if(needReport&&(kk_get_cloudstatus() == 1)){
needReport = 0; needReport = 0;
kk_tsl_post_property(KK_DM_DEVICE_CCU_DEVICEID,NULL,0); char *postStr = kk_tsl_get_post_property_str(node->dev_shadow,NULL);
if(postStr != NULL){
dm_mgr_upstream_thing_property_post(node->devid, postStr, strlen(postStr),0);
free(postStr);
postStr = NULL;
}
} }
sleep(time_second); sleep(time_second);
} }
......
This diff is collapsed.
#ifndef _TSL_API_H__ #ifndef _TSL_API_H__
#define _TSL_API_H__ #define _TSL_API_H__
#include "lite-cjson.h" #include "lite-cjson.h"
#include "kk_tsl_common.h" #include "kk_tsl_common.h"
#include "../../midware/dm/iotx_dm.h" #include "../../midware/dm/iotx_dm.h"
#define KK_MSG_KEY_ID "msgId" #define KK_MSG_KEY_ID "msgId"
#define KK_MSG_KEY_VERSION "version" #define KK_MSG_KEY_VERSION "version"
#define KK_MSG_KEY_METHOD "method" #define KK_MSG_KEY_METHOD "method"
#define KK_MSG_KEY_PARAMS "params" #define KK_MSG_KEY_PARAMS "params"
#define KK_MSG_KEY_CODE "code" #define KK_MSG_KEY_CODE "code"
#define KK_MSG_KEY_DATA "data" #define KK_MSG_KEY_DATA "data"
#define KK_MSG_KEY_MESSAGE "message" #define KK_MSG_KEY_MESSAGE "message"
/*typedef enum { /*typedef enum {
IOTX_DM_ERR_CODE_SUCCESS = 200, IOTX_DM_ERR_CODE_SUCCESS = 200,
IOTX_DM_ERR_CODE_REQUEST_ERROR = 400, IOTX_DM_ERR_CODE_REQUEST_ERROR = 400,
IOTX_DM_ERR_CODE_REQUEST_PARAMS_ERROR = 460, IOTX_DM_ERR_CODE_REQUEST_PARAMS_ERROR = 460,
IOTX_DM_ERR_CODE_REQUEST_TOO_MANY = 429, IOTX_DM_ERR_CODE_REQUEST_TOO_MANY = 429,
IOTX_DM_ERR_CODE_NO_ACTIVE_SESSION = 520, IOTX_DM_ERR_CODE_NO_ACTIVE_SESSION = 520,
IOTX_DM_ERR_CODE_TIMEOUT = 100000 IOTX_DM_ERR_CODE_TIMEOUT = 100000
} iotx_dm_error_code_t;*/ } iotx_dm_error_code_t;*/
typedef struct { typedef struct {
const char *uri; const char *uri;
unsigned char *payload; unsigned char *payload;
unsigned int payload_len; unsigned int payload_len;
void *context; void *context;
} kk_msg_source_t; } kk_msg_source_t;
typedef struct { typedef struct {
const char *uri_name; const char *uri_name;
} kk_msg_dest_t; } kk_msg_dest_t;
typedef struct { typedef struct {
lite_cjson_t id; lite_cjson_t id;
lite_cjson_t version; lite_cjson_t version;
lite_cjson_t method; lite_cjson_t method;
lite_cjson_t params; lite_cjson_t params;
} kk_msg_request_payload_t; } kk_msg_request_payload_t;
typedef struct { typedef struct {
lite_cjson_t id; lite_cjson_t id;
lite_cjson_t code; lite_cjson_t code;
lite_cjson_t data; lite_cjson_t data;
lite_cjson_t message; lite_cjson_t message;
} kk_msg_response_payload_t; } kk_msg_response_payload_t;
typedef enum { typedef enum {
kk_tsl_set_property_value = 0, kk_tsl_set_property_value = 0,
kk_tsl_set_event_output_value, kk_tsl_set_event_output_value,
kk_tsl_set_service_output_value, kk_tsl_set_service_output_value,
kk_tsl_set_number, kk_tsl_set_number,
} kk_tsl_set_t; } kk_tsl_set_t;
typedef enum { typedef enum {
kk_tsl_get_property_value = 0, kk_tsl_get_property_value = 0,
kk_tsl_get_event_output_value, kk_tsl_get_event_output_value,
kk_tsl_get_service_input_value, kk_tsl_get_service_input_value,
kk_tsl_get_service_output_value, kk_tsl_get_service_output_value,
kk_tsl_get_number, kk_tsl_get_number,
} kk_tsl_get_t; } kk_tsl_get_t;
typedef struct { typedef struct {
int devid; kk_tsl_t * shadow;
lite_cjson_item_t *lite; lite_cjson_item_t *lite;
} dm_api_property_t; } dm_api_property_t;
extern int kk_tsl_api_init(void); extern int kk_tsl_api_init(void);
extern int kk_tsl_set_value(kk_tsl_set_t set, int devId, const char *identifier, \ extern int kk_tsl_set_value(kk_tsl_set_t set, kk_tsl_t *dev_shadow, const char *identifier, \
const void *value, \ const void *value, \
const char *value_str); const char *value_str);
extern int kk_tsl_get_value(kk_tsl_get_t method_get, int devId, const char *identifier, \ extern int kk_tsl_get_value(kk_tsl_get_t method_get, kk_tsl_t * dev_shadow, const char *identifier, \
void *value, \ void *value, \
char **value_str); char **value_str);
extern int kk_msg_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli, _IN_ int end_deli, \ extern int kk_msg_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli, _IN_ int end_deli, \
_OU_ char productType[PRODUCT_TYPE_MAXLEN], _OU_ char deviceCode[DEVICE_CODE_MAXLEN]); _OU_ char productType[PRODUCT_TYPE_MAXLEN], _OU_ char deviceCode[DEVICE_CODE_MAXLEN]);
extern int kk_tsl_service_property_set(const char *topic, const char *payload, unsigned int payload_len,
void *context); extern char* kk_tsl_get_post_property_str(kk_tsl_t *dev_shadow, const char *property_identifier);
extern int kk_tsl_post_property(int devId, const char *property_identifier,int isAsync); extern char* kk_tsl_get_post_event_str(_IN_ kk_tsl_t *dev_shadow, _IN_ char *identifier, _IN_ int identifier_len);
extern int kk_tsl_post_event(int devId, const char *event_identifier); extern char * kk_tsl_get_post_service_str(kk_tsl_t *dev_shadow, const char *service_identifier);
extern int kk_tsl_post_service(int devId, const char *service_identifier, int response_id,int code);
#endif #endif
...@@ -3,7 +3,18 @@ ...@@ -3,7 +3,18 @@
#include <stdio.h> #include <stdio.h>
#include "kk_tsl_common.h" #include "kk_tsl_common.h"
#include "kk_dm_mng.h" #include "kk_dm_mng.h"
#ifndef _ZLOG_
#undef INFO_PRINT
#undef WARNING_PRINT
#undef ERROR_PRINT
#define INFO_PRINT printf
#define WARNING_PRINT printf
#define ERROR_PRINT printf
#else
#include "kk_log.h" #include "kk_log.h"
#endif
#define TSL_SUBDEVICE_PATH_FILE "/home/tsl/product_%s.json" #define TSL_SUBDEVICE_PATH_FILE "/home/tsl/product_%s.json"
......
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