Commit ab8689d7 authored by chen.weican's avatar chen.weican

【修改内容】去warning处理

【提交人】陈伟灿
parent f368c9f1
...@@ -4,6 +4,8 @@ ...@@ -4,6 +4,8 @@
#include "sqlite3.h" #include "sqlite3.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_area_handle.h" #include "kk_area_handle.h"
#include "kk_hal.h"
#include "id.h"
extern sqlite3 *g_kk_pDb; extern sqlite3 *g_kk_pDb;
...@@ -98,9 +100,7 @@ int kk_area_init(void) ...@@ -98,9 +100,7 @@ int kk_area_init(void)
res = _kk_area_db_init(); res = _kk_area_db_init();
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
ERROR_PRINT("[%s][%d]kk_area_init FAIL!!!\n",__FUNCTION__,__LINE__); ERROR_PRINT("[%s][%d]kk_area_init FAIL!!!\n",__FUNCTION__,__LINE__);
} }
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
...@@ -116,7 +116,7 @@ int kk_room_add(const char *name,const char *roomId) ...@@ -116,7 +116,7 @@ int kk_room_add(const char *name,const char *roomId)
values ('%s','%s');"; values ('%s','%s');";
_kk_area_lock(); _kk_area_lock();
ctx->roomNum++; ctx->roomNum++;
HAL_GetTime_s(roomId); HAL_GetTime_s((char*)roomId);
sqlCmd = sqlite3_mprintf(insertCmd,name,roomId); sqlCmd = sqlite3_mprintf(insertCmd,name,roomId);
res = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg); res = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg);
...@@ -163,7 +163,6 @@ static int _kk_check_dev_exist(const char* deviceCode) ...@@ -163,7 +163,6 @@ static int _kk_check_dev_exist(const char* deviceCode)
int isExist = 0; int isExist = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *pDeviceCode = NULL; char *pDeviceCode = NULL;
char *pKeyId = NULL;
kk_area_ctx_t *ctx = _kk_area_get_ctx(); kk_area_ctx_t *ctx = _kk_area_get_ctx();
const char *searchCmd = "select * from AreaDevInfo;"; const char *searchCmd = "select * from AreaDevInfo;";
_kk_area_lock(); _kk_area_lock();
...@@ -171,7 +170,7 @@ static int _kk_check_dev_exist(const char* deviceCode) ...@@ -171,7 +170,7 @@ static int _kk_check_dev_exist(const char* deviceCode)
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt)); //INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
pDeviceCode = sqlite3_column_text(stmt, DB_DEV_DEVICECODE); pDeviceCode = (char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE);
if(!strcmp(deviceCode,pDeviceCode)) if(!strcmp(deviceCode,pDeviceCode))
{ {
...@@ -249,7 +248,7 @@ int kk_room_dev_remove(const char *deviceCode,const char *epNum) ...@@ -249,7 +248,7 @@ int kk_room_dev_remove(const char *deviceCode,const char *epNum)
int kk_room_device_list_add(const char *deviceCode) int kk_room_device_list_add(const char *deviceCode)
{ {
int len; //int len;
kk_dev_list_t *ptr,*pre; kk_dev_list_t *ptr,*pre;
ptr = pre = s_device_list; ptr = pre = s_device_list;
...@@ -283,14 +282,13 @@ kk_dev_list_t* kk_get_room_deviceCode(const char* roomId) ...@@ -283,14 +282,13 @@ kk_dev_list_t* kk_get_room_deviceCode(const char* roomId)
char *sqlCmd = NULL; char *sqlCmd = NULL;
kk_area_ctx_t *ctx = _kk_area_get_ctx(); kk_area_ctx_t *ctx = _kk_area_get_ctx();
const char *searchCmd = "select * from AreaDevInfo;"; const char *searchCmd = "select * from AreaDevInfo;";
printf("");
_kk_area_lock(); _kk_area_lock();
sqlCmd = sqlite3_mprintf(searchCmd,roomId); sqlCmd = sqlite3_mprintf(searchCmd,roomId);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt)); //INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
if(strcmp(sqlite3_column_text(stmt, DB_DEV_ROOM_ID),roomId) == 0){ if(strcmp((char*)sqlite3_column_text(stmt, DB_DEV_ROOM_ID),roomId) == 0){
kk_room_device_list_add(sqlite3_column_text(stmt, DB_DEV_DEVICECODE)); kk_room_device_list_add((char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE));
} }
} }
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
......
...@@ -7,18 +7,27 @@ typedef struct kk_dev_list{ ...@@ -7,18 +7,27 @@ typedef struct kk_dev_list{
struct kk_dev_list * next; struct kk_dev_list * next;
}kk_dev_list_t; }kk_dev_list_t;
typedef enum{ enum{
DB_ROOM_IDX = 0, DB_ROOM_IDX = 0,
DB_ROOM_NAME, DB_ROOM_NAME,
DB_ROOM_ID, DB_ROOM_ID,
}; };
typedef enum{ enum{
DB_DEV_IDX = 0, DB_DEV_IDX = 0,
DB_DEV_ROOM_ID, DB_DEV_ROOM_ID,
DB_DEV_DEVICECODE, DB_DEV_DEVICECODE,
DB_DEV_EPNUM, DB_DEV_EPNUM,
}; };
int kk_room_delete(const char *roomId);
int kk_room_add(const char *name,const char *roomId);
int kk_area_init(void);
int kk_room_dev_add(const char *roomId,const char *deviceCode,const char *epNum);
int kk_room_dev_remove(const char *deviceCode,const char *epNum);
int kk_room_device_list_add(const char *deviceCode);
kk_dev_list_t* kk_get_room_deviceCode(const char* roomId);
void kk_free_room_dev_list(void);
#endif #endif
...@@ -46,7 +46,7 @@ int dm_ota_sub(void) ...@@ -46,7 +46,7 @@ int dm_ota_sub(void)
int ota_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli, _IN_ int end_deli, int ota_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])
{ {
int res = 0, start = 0, end = 0, slice = 0; int start = 0, end = 0, slice = 0;
int item_index = 0; int item_index = 0;
int count = 0; int count = 0;
...@@ -86,7 +86,7 @@ int ota_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli, _I ...@@ -86,7 +86,7 @@ int ota_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli, _I
int dm_ota_setPKN(char productType[PRODUCT_TYPE_MAXLEN],char deviceCode[DEVICE_CODE_MAXLEN]) int dm_ota_setPKN(char productType[PRODUCT_TYPE_MAXLEN],char deviceCode[DEVICE_CODE_MAXLEN])
{ {
dm_ota_ctx_t *ctx = _dm_ota_get_ctx(); dm_ota_ctx_t *ctx = _dm_ota_get_ctx();
int res = 0; //int res = 0;
memset(ctx->productType, 0, PRODUCT_TYPE_MAXLEN); memset(ctx->productType, 0, PRODUCT_TYPE_MAXLEN);
memset(ctx->deviceCode, 0, DEVICE_CODE_MAXLEN); memset(ctx->deviceCode, 0, DEVICE_CODE_MAXLEN);
memcpy(ctx->productType, productType, PRODUCT_TYPE_MAXLEN); memcpy(ctx->productType, productType, PRODUCT_TYPE_MAXLEN);
...@@ -171,11 +171,9 @@ int dm_ota_get_ota_handle(void **handle) ...@@ -171,11 +171,9 @@ int dm_ota_get_ota_handle(void **handle)
void dm_ota_handle(void *data){ void dm_ota_handle(void *data){
printf("dm_ota_handle ================== [%s]\n",data); printf("dm_ota_handle ================== [%s]\n",(char*)data);
char *out;
int res = 0;
cJSON *json,*info_root,*info; cJSON *json,*info_root,*info;
cJSON *topic,*typeJson; cJSON *typeJson;
cJSON *payload; cJSON *payload;
cJSON *product_type,*device_code; cJSON *product_type,*device_code;
json=cJSON_Parse(data); json=cJSON_Parse(data);
......
...@@ -10,7 +10,8 @@ ...@@ -10,7 +10,8 @@
#include "com_api.h" #include "com_api.h"
#include "dm_ota.h" #include "dm_ota.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_hal.h"
#include "kk_dm_queue.h"
static dm_api_ctx_t g_dm_api_ctx; static dm_api_ctx_t g_dm_api_ctx;
...@@ -210,7 +211,7 @@ void iotx_dm_dispatch(void) ...@@ -210,7 +211,7 @@ void iotx_dm_dispatch(void)
int iotx_dm_connect(_IN_ iotx_dm_event_callback cb) int iotx_dm_connect(_IN_ iotx_dm_event_callback cb)
{ {
int res = 0; //int res = 0;
dm_api_ctx_t *ctx = _dm_api_get_ctx(); dm_api_ctx_t *ctx = _dm_api_get_ctx();
if (cb == NULL) { if (cb == NULL) {
...@@ -311,7 +312,7 @@ ERROR: ...@@ -311,7 +312,7 @@ ERROR:
int iotx_dm_subscribe(_IN_ int devid) int iotx_dm_subscribe(_IN_ int devid)
{ {
int res = 0, dev_type = 0; int res = 0;
if (devid < 0) { if (devid < 0) {
return INVALID_PARAMETER; return INVALID_PARAMETER;
...@@ -345,7 +346,7 @@ int iotx_dm_subscribe(_IN_ int devid) ...@@ -345,7 +346,7 @@ int iotx_dm_subscribe(_IN_ int devid)
ERROR_PRINT("\n [%d][%s] malloc faild kk_ipc_send \n", __LINE__, __FUNCTION__); ERROR_PRINT("\n [%d][%s] malloc faild kk_ipc_send \n", __LINE__, __FUNCTION__);
return FAIL_RETURN; return FAIL_RETURN;
} }
INFO_PRINT("\n [%d][%s] [%d] send app to subscribe mqtt \n", __LINE__, __FUNCTION__, HAL_UptimeMs()); INFO_PRINT("\n [%d][%s] [%lu] send app to subscribe mqtt \n", __LINE__, __FUNCTION__, HAL_UptimeMs());
......
...@@ -18,6 +18,7 @@ ...@@ -18,6 +18,7 @@
#include "kk_log.h" #include "kk_log.h"
#include "kk_tsl_common.h" #include "kk_tsl_common.h"
#include "kk_dm_mng.h" #include "kk_dm_mng.h"
#include "kk_hal.h"
/************************************************************* /*************************************************************
全局变量定义 全局变量定义
......
...@@ -3,4 +3,5 @@ ...@@ -3,4 +3,5 @@
#include "kk_tsl_common.h" #include "kk_tsl_common.h"
int kk_heartbeat_init(void); int kk_heartbeat_init(void);
int kk_dm_gw_status_update_online(const char *deviceCode); int kk_dm_gw_status_update_online(const char *deviceCode);
int kk_dm_gw_status_check_push(const char *deviceCode);
#endif #endif
...@@ -3,15 +3,19 @@ ...@@ -3,15 +3,19 @@
#include <string.h> #include <string.h>
#include "kk_dm_mng.h" #include "kk_dm_mng.h"
#include "kk_dm_msg.h" #include "kk_dm_msg.h"
#include "kk_dm_api.h"
#include "kk_tsl_api.h" #include "kk_tsl_api.h"
#include "kk_tsl_load.h" #include "kk_tsl_load.h"
#include "iot_export_linkkit.h" #include "iot_export_linkkit.h"
#include "kk_product.h" #include "kk_product.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_property_db.h" #include "kk_property_db.h"
#include "kk_sub_db.h"
#include "kk_hal.h"
#include "kk_utils.h"
#include "kk_scene_handle.h"
#include "kk_area_handle.h"
#include "kk_sync_data.h"
//const char DM_URI_SYS_PREFIX[] DM_READ_ONLY = "/sys/%s/%s/"; //const char DM_URI_SYS_PREFIX[] DM_READ_ONLY = "/sys/%s/%s/";
...@@ -92,10 +96,10 @@ static int _dm_init_tsl_params(kk_tsl_t * dev_shadow) ...@@ -92,10 +96,10 @@ static int _dm_init_tsl_params(kk_tsl_t * dev_shadow)
{ {
int res = 0; int res = 0;
char version[VERSION_MAXLEN] = {0}; char version[VERSION_MAXLEN] = {0};
char s_IP[NETWORK_ADDR_LEN] = {0}; //char s_IP[NETWORK_ADDR_LEN] = {0};
char s_mac[MAC_ADDR_LEN] = {0}; char s_mac[MAC_ADDR_LEN] = {0};
char s_SN[SN_ADDR_LEN] = {0}; char s_SN[SN_ADDR_LEN] = {0};
int port = 0; //int port = 0;
/*******set version***********/ /*******set version***********/
HAL_GetVersion(version); HAL_GetVersion(version);
...@@ -211,9 +215,8 @@ int dm_mgr_device_create(_IN_ int dev_type,_IN_ char productCode[PRODUCT_CODE_MA ...@@ -211,9 +215,8 @@ int dm_mgr_device_create(_IN_ int dev_type,_IN_ char productCode[PRODUCT_CODE_MA
dm_mgr_ctx *ctx = _dm_mgr_get_ctx(); dm_mgr_ctx *ctx = _dm_mgr_get_ctx();
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
char *tsl_str = NULL; char *tsl_str = NULL;
int idx = 0; //int idx = 0;
if (deviceCode != NULL && strlen(deviceCode) >= DEVICE_CODE_MAXLEN) { if (deviceCode != NULL && strlen(deviceCode) >= DEVICE_CODE_MAXLEN) {
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
...@@ -270,7 +273,6 @@ int dm_mgr_device_create(_IN_ int dev_type,_IN_ char productCode[PRODUCT_CODE_MA ...@@ -270,7 +273,6 @@ int dm_mgr_device_create(_IN_ int dev_type,_IN_ char productCode[PRODUCT_CODE_MA
if(res != 0){ if(res != 0){
return FAIL_RETURN; return FAIL_RETURN;
} }
printf("--------------------------------------------------------->heartbeat:%d\n",heartbeat);
node->hb_timeout = heartbeat; node->hb_timeout = heartbeat;
} }
else{ else{
...@@ -383,7 +385,7 @@ int dm_mgr_get_device_by_productType(_IN_ char *productType, _OU_ dm_mgr_dev_nod ...@@ -383,7 +385,7 @@ int dm_mgr_get_device_by_productType(_IN_ char *productType, _OU_ dm_mgr_dev_nod
list_for_each_entry(search_node, &ctx->dev_list, linked_list, dm_mgr_dev_node_t) { list_for_each_entry(search_node, &ctx->dev_list, linked_list, dm_mgr_dev_node_t) {
if ((strlen(search_node->deviceCode) == strlen(productType)) && if ((strlen(search_node->deviceCode) == strlen(productType)) &&
(memcmp(search_node->deviceCode, productType, productType) == 0)) { (memcmp(search_node->deviceCode, productType, strlen(productType)) == 0)) {
/* dm_log_debug("Device Found, Product Key: %s, Device Name: %s", product_key, device_name); */ /* dm_log_debug("Device Found, Product Key: %s, Device Name: %s", product_key, device_name); */
if (node) { if (node) {
*node = search_node; *node = search_node;
...@@ -514,8 +516,6 @@ int dm_mgr_init(void) ...@@ -514,8 +516,6 @@ int dm_mgr_init(void)
{ {
int res = 0; int res = 0;
dm_mgr_ctx *ctx = _dm_mgr_get_ctx(); dm_mgr_ctx *ctx = _dm_mgr_get_ctx();
char productCode[PRODUCT_CODE_MAXLEN] = {0};
char deviceCode[DEVICE_CODE_MAXLEN]= {0};
char mac[DEVICE_MAC_MAXLEN]= {0}; char mac[DEVICE_MAC_MAXLEN]= {0};
int devId = 0,heartbeat = 0; int devId = 0,heartbeat = 0;
memset(ctx, 0, sizeof(dm_mgr_ctx)); memset(ctx, 0, sizeof(dm_mgr_ctx));
...@@ -678,7 +678,7 @@ int dm_mgr_upstream_thing_property_post(_IN_ int devid, _IN_ char *payload, _IN_ ...@@ -678,7 +678,7 @@ int dm_mgr_upstream_thing_property_post(_IN_ int devid, _IN_ char *payload, _IN_
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
sprintf(msgId,"%d",iotx_report_id()); sprintf(msgId,"%d",iotx_report_id());
res = _dm_mgr_upstream_request_assemble(msgId, devid, "property", res = _dm_mgr_upstream_request_assemble(msgId, devid, "property",
payload, payload_len, DM_URI_THING_EVENT_PROPERTY_POST_METHOD, &request); payload, payload_len, (char*)DM_URI_THING_EVENT_PROPERTY_POST_METHOD, &request);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
return FAIL_RETURN; return FAIL_RETURN;
} }
...@@ -735,7 +735,7 @@ int dm_mgr_upstream_thing_event_post_ex(_IN_ int devid, _IN_ char *identifier, _ ...@@ -735,7 +735,7 @@ int dm_mgr_upstream_thing_event_post_ex(_IN_ int devid, _IN_ char *identifier, _
} }
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
res = _dm_mgr_upstream_request_assemble(msgId, devid,identifier, res = _dm_mgr_upstream_request_assemble((char*)msgId, devid,identifier,
payload, payload_len, method, &request); payload, payload_len, method, &request);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
return FAIL_RETURN; return FAIL_RETURN;
...@@ -814,7 +814,7 @@ static int _kk_mgr_upstream_response_assemble(_IN_ int devid, _IN_ char *msgid, ...@@ -814,7 +814,7 @@ static int _kk_mgr_upstream_response_assemble(_IN_ int devid, _IN_ char *msgid,
int dm_mgr_deprecated_upstream_thing_service_response(_IN_ int devid, _IN_ int msgid, _IN_ iotx_dm_error_code_t code, int dm_mgr_deprecated_upstream_thing_service_response(_IN_ int devid, _IN_ int msgid, _IN_ iotx_dm_error_code_t code,
_IN_ char *identifier, _IN_ int identifier_len, _IN_ char *payload, _IN_ int payload_len) _IN_ char *identifier, _IN_ int identifier_len, _IN_ char *payload, _IN_ int payload_len)
{ {
int res = 0, service_name_len = 0; int res = 0;
char *msgid_str = NULL; char *msgid_str = NULL;
kk_msg_request_payload_t request; kk_msg_request_payload_t request;
kk_msg_response_t response; kk_msg_response_t response;
...@@ -876,7 +876,7 @@ int dm_mgr_upstream_thing_sub_register(_IN_ int devid) ...@@ -876,7 +876,7 @@ int dm_mgr_upstream_thing_sub_register(_IN_ int devid)
} }
} }
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
request.msgTypeStr = DM_URI_THING_SUB_REGISTER; request.msgTypeStr = (char*)DM_URI_THING_SUB_REGISTER;
if(devid == KK_DM_DEVICE_CCU_DEVICEID){ if(devid == KK_DM_DEVICE_CCU_DEVICEID){
memcpy(request.productCode,node->productCode,strlen(node->productCode)); memcpy(request.productCode,node->productCode,strlen(node->productCode));
memcpy(request.deviceCode,node->deviceCode,strlen(node->deviceCode)); memcpy(request.deviceCode,node->deviceCode,strlen(node->deviceCode));
...@@ -932,7 +932,7 @@ int dm_mgr_upstream_thing_sub_unregister(_IN_ int devid) ...@@ -932,7 +932,7 @@ int dm_mgr_upstream_thing_sub_unregister(_IN_ int devid)
} }
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
request.msgTypeStr = DM_URI_THING_SUB_UNREGISTER; request.msgTypeStr = (char*)DM_URI_THING_SUB_UNREGISTER;
memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode)); memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode));
memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode)); memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
...@@ -990,7 +990,7 @@ int dm_mgr_upstream_thing_topo_add(_IN_ int devid) ...@@ -990,7 +990,7 @@ int dm_mgr_upstream_thing_topo_add(_IN_ int devid)
} }
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
request.msgTypeStr = DM_URI_THING_TOPO_ADD; request.msgTypeStr = (char*)DM_URI_THING_TOPO_ADD;
memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode)); memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode));
memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode)); memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
...@@ -1046,7 +1046,7 @@ int dm_mgr_upstream_thing_topo_delete(_IN_ int devid) ...@@ -1046,7 +1046,7 @@ int dm_mgr_upstream_thing_topo_delete(_IN_ int devid)
} }
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
request.msgTypeStr = DM_URI_THING_TOPO_DELETE; request.msgTypeStr = (char*)DM_URI_THING_TOPO_DELETE;
memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode)); memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode));
memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode)); memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
...@@ -1087,7 +1087,7 @@ int dm_mgr_upstream_thing_topo_get(void) ...@@ -1087,7 +1087,7 @@ int dm_mgr_upstream_thing_topo_get(void)
dm_msg_request_t request; dm_msg_request_t request;
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
request.msgTypeStr = DM_URI_THING_TOPO_GET; request.msgTypeStr = (char*)DM_URI_THING_TOPO_GET;
HAL_GetDevice_Code(request.deviceCode); HAL_GetDevice_Code(request.deviceCode);
...@@ -1145,7 +1145,7 @@ int dm_mgr_upstream_thing_list_found(_IN_ int devid) ...@@ -1145,7 +1145,7 @@ int dm_mgr_upstream_thing_list_found(_IN_ int devid)
} }
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
request.msgTypeStr = DM_URI_THING_LIST_FOUND; request.msgTypeStr = (char*)DM_URI_THING_LIST_FOUND;
memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode)); memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode));
memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode)); memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
...@@ -1180,7 +1180,7 @@ int dm_mgr_ccu_status_cloud(_IN_ int devid) ...@@ -1180,7 +1180,7 @@ int dm_mgr_ccu_status_cloud(_IN_ int devid)
{ {
int res = 0; int res = 0;
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
dm_mgr_dev_node_t *gw_node = NULL; //dm_mgr_dev_node_t *gw_node = NULL;
dm_msg_request_t request; dm_msg_request_t request;
char msgId[MSG_MAX_LEN] = {0}; char msgId[MSG_MAX_LEN] = {0};
...@@ -1197,7 +1197,7 @@ int dm_mgr_ccu_status_cloud(_IN_ int devid) ...@@ -1197,7 +1197,7 @@ int dm_mgr_ccu_status_cloud(_IN_ int devid)
memcpy(request.productCode,node->productCode,strlen(node->productCode)); memcpy(request.productCode,node->productCode,strlen(node->productCode));
memcpy(request.deviceCode,node->deviceCode,strlen(node->deviceCode)); memcpy(request.deviceCode,node->deviceCode,strlen(node->deviceCode));
request.msgTypeStr = DM_URI_STATUS_CLOUD; request.msgTypeStr = (char*)DM_URI_STATUS_CLOUD;
/* Get Params And Method */ /* Get Params And Method */
...@@ -1261,7 +1261,7 @@ int dm_mgr_upstream_status_online(_IN_ int devid) ...@@ -1261,7 +1261,7 @@ int dm_mgr_upstream_status_online(_IN_ int devid)
request.msgTypeStr = DM_URI_STATUS_ONLINE; request.msgTypeStr = (char*)DM_URI_STATUS_ONLINE;
/* Get Params And Method */ /* Get Params And Method */
...@@ -1322,7 +1322,7 @@ int dm_mgr_upstream_status_offline(_IN_ int devid) ...@@ -1322,7 +1322,7 @@ int dm_mgr_upstream_status_offline(_IN_ int devid)
memcpy(request.deviceCode,node->deviceCode,strlen(node->deviceCode)); memcpy(request.deviceCode,node->deviceCode,strlen(node->deviceCode));
} }
request.msgTypeStr = DM_URI_STATUS_OFFLINE; request.msgTypeStr = (char*)DM_URI_STATUS_OFFLINE;
/* Get Params And Method */ /* Get Params And Method */
res = dm_msg_status_offline( node->productCode, node->deviceCode, &request); res = dm_msg_status_offline( node->productCode, node->deviceCode, &request);
...@@ -1374,7 +1374,7 @@ int dm_mgr_upstream_combine_login(_IN_ int devid) ...@@ -1374,7 +1374,7 @@ int dm_mgr_upstream_combine_login(_IN_ int devid)
} }
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
request.msgTypeStr = DM_URI_COMBINE_LOGIN; request.msgTypeStr = (char*)DM_URI_COMBINE_LOGIN;
memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode)); memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode));
memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode)); memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
...@@ -1428,7 +1428,7 @@ int dm_mgr_upstream_combine_logout(_IN_ int devid) ...@@ -1428,7 +1428,7 @@ int dm_mgr_upstream_combine_logout(_IN_ int devid)
} }
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
request.msgTypeStr = DM_URI_COMBINE_LOGOUT; request.msgTypeStr = (char*)DM_URI_COMBINE_LOGOUT;
memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode)); memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode));
memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode)); memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
......
...@@ -102,5 +102,6 @@ int dm_mgr_upstream_combine_logout(_IN_ int devid); ...@@ -102,5 +102,6 @@ int dm_mgr_upstream_combine_logout(_IN_ int devid);
int dm_mgr_ota_report_version(_IN_ int devid, char *version); int dm_mgr_ota_report_version(_IN_ int devid, char *version);
int dm_mgr_subdev_create(int devtype,_IN_ char productCode[PRODUCT_CODE_MAXLEN], _IN_ char deviceCode[DEVICE_CODE_MAXLEN], int dm_mgr_subdev_create(int devtype,_IN_ char productCode[PRODUCT_CODE_MAXLEN], _IN_ char deviceCode[DEVICE_CODE_MAXLEN],
_IN_ char mac[DEVICE_MAC_MAXLEN],_IN_ char fatherDeviceCode[DEVICE_CODE_MAXLEN],_IN_ int isOffline, _OU_ int *devid,_OU_ int *heartbeat); _IN_ char mac[DEVICE_MAC_MAXLEN],_IN_ char fatherDeviceCode[DEVICE_CODE_MAXLEN],_IN_ int isOffline, _OU_ int *devid,_OU_ int *heartbeat);
int dm_mgr_subdev_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN]); int dm_mgr_subdev_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN]);
int dm_msg_thing_property_post_all(char *deviceCode);
#endif #endif
...@@ -5,7 +5,8 @@ ...@@ -5,7 +5,8 @@
#include "kk_hal.h" #include "kk_hal.h"
#include "com_api.h" #include "com_api.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_utils.h"
#include "kk_sync_data.h"
const char DM_MSG_REQUEST[] DM_READ_ONLY = "{\"msgId\":\"%s\",\"version\":\"%s\",\"params\":%s,\"time\":\"%lu\",\"method\":\"%s\"}"; const char DM_MSG_REQUEST[] DM_READ_ONLY = "{\"msgId\":\"%s\",\"version\":\"%s\",\"params\":%s,\"time\":\"%lu\",\"method\":\"%s\"}";
const char DM_MSG_INFO[] DM_READ_ONLY = "{\"msgtype\":\"%s\",\"productCode\":\"%s\",\"deviceCode\":\"%s\"}"; const char DM_MSG_INFO[] DM_READ_ONLY = "{\"msgtype\":\"%s\",\"productCode\":\"%s\",\"deviceCode\":\"%s\"}";
...@@ -105,13 +106,7 @@ int dm_msg_thing_topo_add(_IN_ char productCode[PRODUCT_CODE_MAXLEN], ...@@ -105,13 +106,7 @@ int dm_msg_thing_topo_add(_IN_ char productCode[PRODUCT_CODE_MAXLEN],
{ {
char *params = NULL; char *params = NULL;
int params_len = 0; int params_len = 0;
char timestamp[DM_UTILS_UINT64_STRLEN] = {0};
char client_id[PRODUCT_TYPE_MAXLEN + DEVICE_CODE_MAXLEN + 1] = {0}; char client_id[PRODUCT_TYPE_MAXLEN + DEVICE_CODE_MAXLEN + 1] = {0};
char *sign_source = NULL;
int sign_source_len = 0;
char *sign_method = DM_MSG_SIGN_METHOD_HMACSHA1;
char sign[65] = {0};
if (request == NULL || if (request == NULL ||
deviceCode == NULL || deviceCode == NULL ||
...@@ -307,10 +302,6 @@ const char DM_MSG_COMBINE_STATUS_ONLINE[] DM_READ_ONLY = ...@@ -307,10 +302,6 @@ const char DM_MSG_COMBINE_STATUS_ONLINE[] DM_READ_ONLY =
char *params = NULL; char *params = NULL;
int params_len = 0; int params_len = 0;
char timestamp[DM_UTILS_UINT64_STRLEN] = {0}; char timestamp[DM_UTILS_UINT64_STRLEN] = {0};
char client_id[PRODUCT_TYPE_MAXLEN + DEVICE_CODE_MAXLEN + 20] = {0};
char *sign_method = DM_MSG_SIGN_METHOD_HMACSHA1;
char sign[64] = {0};
if (request == NULL || if (request == NULL ||
deviceCode == NULL || productCode == NULL || deviceCode == NULL || productCode == NULL ||
...@@ -351,10 +342,6 @@ int dm_msg_status_offline(_IN_ char productCode[PRODUCT_CODE_MAXLEN], ...@@ -351,10 +342,6 @@ int dm_msg_status_offline(_IN_ char productCode[PRODUCT_CODE_MAXLEN],
char *params = NULL; char *params = NULL;
int params_len = 0; int params_len = 0;
char timestamp[DM_UTILS_UINT64_STRLEN] = {0}; char timestamp[DM_UTILS_UINT64_STRLEN] = {0};
char client_id[PRODUCT_TYPE_MAXLEN + DEVICE_CODE_MAXLEN + 20] = {0};
char *sign_method = DM_MSG_SIGN_METHOD_HMACSHA1;
char sign[64] = {0};
if (request == NULL || if (request == NULL ||
deviceCode == NULL || productCode == NULL || deviceCode == NULL || productCode == NULL ||
...@@ -570,7 +557,7 @@ int dm_msg_request (_IN_ dm_msg_request_t *request,_IN_ int isAsync) ...@@ -570,7 +557,7 @@ int dm_msg_request (_IN_ dm_msg_request_t *request,_IN_ int isAsync)
memset(&lite, 0, sizeof(lite_cjson_t)); memset(&lite, 0, sizeof(lite_cjson_t));
res = lite_cjson_parse(req_info, req_info_len, &lite); res = lite_cjson_parse(req_info, req_info_len, &lite);
if (res < SUCCESS_RETURN) { if (res < SUCCESS_RETURN) {
ERROR_PRINT("Wrong JSON Format, Payload: %s", req_info_len); ERROR_PRINT("Wrong JSON Format, Payload: %d", req_info_len);
free(req_info); free(req_info);
free(payload); free(payload);
return FAIL_RETURN; return FAIL_RETURN;
...@@ -633,7 +620,7 @@ int dm_msg_response(_IN_ kk_msg_request_payload_t *request, _IN_ kk_msg_response ...@@ -633,7 +620,7 @@ int dm_msg_response(_IN_ kk_msg_request_payload_t *request, _IN_ kk_msg_response
memset(&lite, 0, sizeof(lite_cjson_t)); memset(&lite, 0, sizeof(lite_cjson_t));
res = lite_cjson_parse(res_info, res_info_len, &lite); res = lite_cjson_parse(res_info, res_info_len, &lite);
if (res < SUCCESS_RETURN) { if (res < SUCCESS_RETURN) {
ERROR_PRINT("Wrong JSON Format, Payload: %s", res_info_len); ERROR_PRINT("Wrong JSON Format, Payload: %d", res_info_len);
free(res_info); free(res_info);
free(payload); free(payload);
return FAIL_RETURN; return FAIL_RETURN;
...@@ -712,7 +699,7 @@ int dm_msg_thing_syncinfo_reply(void){ ...@@ -712,7 +699,7 @@ int dm_msg_thing_syncinfo_reply(void){
kk_msg_response_t response; kk_msg_response_t response;
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
char *info = NULL; char *info = NULL;
int res = 0, devid = 0; int res = 0;
memset(&request, 0, sizeof(kk_msg_request_payload_t)); memset(&request, 0, sizeof(kk_msg_request_payload_t));
memset(&response, 0, sizeof(kk_msg_response_t)); memset(&response, 0, sizeof(kk_msg_response_t));
...@@ -749,7 +736,7 @@ int dm_msg_thing_property_set_reply(char deviceCode[DEVICE_CODE_MAXLEN],char *pa ...@@ -749,7 +736,7 @@ int dm_msg_thing_property_set_reply(char deviceCode[DEVICE_CODE_MAXLEN],char *pa
kk_msg_response_t response; kk_msg_response_t response;
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
int res = 0, devid = 0; int res = 0;
memset(&request, 0, sizeof(kk_msg_request_payload_t)); memset(&request, 0, sizeof(kk_msg_request_payload_t));
memset(&response, 0, sizeof(kk_msg_response_t)); memset(&response, 0, sizeof(kk_msg_response_t));
...@@ -765,7 +752,7 @@ int dm_msg_thing_property_set_reply(char deviceCode[DEVICE_CODE_MAXLEN],char *pa ...@@ -765,7 +752,7 @@ int dm_msg_thing_property_set_reply(char deviceCode[DEVICE_CODE_MAXLEN],char *pa
return res ; return res ;
} }
response.msgTypeStr = DM_URI_THING_SERVICE_PROPERTY_SET_REPLY; response.msgTypeStr = (char*)DM_URI_THING_SERVICE_PROPERTY_SET_REPLY;
memcpy(response.productCode, node->productCode, strlen( node->productCode)); memcpy(response.productCode, node->productCode, strlen( node->productCode));
memcpy(response.deviceCode, node->deviceCode, strlen(node->deviceCode)); memcpy(response.deviceCode, node->deviceCode, strlen(node->deviceCode));
response.code = (res == SUCCESS_RETURN) ? (IOTX_DM_ERR_CODE_SUCCESS) : (IOTX_DM_ERR_CODE_REQUEST_ERROR); response.code = (res == SUCCESS_RETURN) ? (IOTX_DM_ERR_CODE_SUCCESS) : (IOTX_DM_ERR_CODE_REQUEST_ERROR);
...@@ -775,8 +762,6 @@ int dm_msg_thing_property_set_reply(char deviceCode[DEVICE_CODE_MAXLEN],char *pa ...@@ -775,8 +762,6 @@ int dm_msg_thing_property_set_reply(char deviceCode[DEVICE_CODE_MAXLEN],char *pa
int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const char *msgId) int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const char *msgId)
{ {
int res = 0; int res = 0;
int nums = 0;
int idx = 0;
char *payload = NULL; char *payload = NULL;
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
void *event = NULL; void *event = NULL;
...@@ -788,12 +773,12 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const ...@@ -788,12 +773,12 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const
return FAIL_RETURN; return FAIL_RETURN;
} }
res = dm_mgr_get_device_by_devicecode(deviceCode, &node); res = dm_mgr_get_device_by_devicecode((char*)deviceCode, &node);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
ERROR_PRINT("dm_msg_thing_event_post failed\n"); ERROR_PRINT("dm_msg_thing_event_post failed\n");
return FAIL_RETURN; return FAIL_RETURN;
} }
payload = kk_tsl_get_post_event_str(node->dev_shadow,identifier,strlen(identifier)); payload = kk_tsl_get_post_event_str(node->dev_shadow,(char*)identifier,strlen(identifier));
if(payload != NULL){ if(payload != NULL){
res = kk_tsl_get_event_by_identifier(node->dev_shadow, identifier, &event); res = kk_tsl_get_event_by_identifier(node->dev_shadow, identifier, &event);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
...@@ -809,7 +794,7 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const ...@@ -809,7 +794,7 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const
return FAIL_RETURN; return FAIL_RETURN;
} }
if(msgId != NULL){ if(msgId != NULL){
dm_mgr_upstream_thing_event_post_ex(node->devid, identifier, strlen(identifier), method, payload, strlen(payload),msgId); dm_mgr_upstream_thing_event_post_ex(node->devid, (char*)identifier, strlen(identifier), method, payload, strlen(payload),msgId);
}else }else
{ {
...@@ -824,9 +809,7 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const ...@@ -824,9 +809,7 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const
} }
int dm_msg_scene_event_post(const char *identifier,kk_tsl_t *dev_shadow,const char *msgId) int dm_msg_scene_event_post(const char *identifier,kk_tsl_t *dev_shadow,const char *msgId)
{ {
int res = 0; int res = 0;
int nums = 0;
int idx = 0;
char *payload = NULL; char *payload = NULL;
void *event = NULL; void *event = NULL;
char *method = NULL; char *method = NULL;
...@@ -856,8 +839,6 @@ int dm_msg_scene_event_post(const char *identifier,kk_tsl_t *dev_shadow,const ch ...@@ -856,8 +839,6 @@ int dm_msg_scene_event_post(const char *identifier,kk_tsl_t *dev_shadow,const ch
int dm_msg_thing_service_post(const char *deviceCode, const char *identifier) int dm_msg_thing_service_post(const char *deviceCode, const char *identifier)
{ {
int res = 0; int res = 0;
int nums = 0;
int idx = 0;
char *payload = NULL; char *payload = NULL;
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
char *method = NULL; char *method = NULL;
...@@ -898,8 +879,6 @@ int dm_msg_thing_service_post(const char *deviceCode, const char *identifier) ...@@ -898,8 +879,6 @@ int dm_msg_thing_service_post(const char *deviceCode, const char *identifier)
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 idx = 0;
char *payload = NULL; char *payload = NULL;
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
......
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
#include "kk_dm_queue.h" #include "kk_dm_queue.h"
#include "kk_tsl_common.h" #include "kk_tsl_common.h"
#include "kk_hal.h"
dm_queue_t g_dm_queue; dm_queue_t g_dm_queue;
......
...@@ -17,11 +17,15 @@ ...@@ -17,11 +17,15 @@
#include "kk_dm_msg.h" #include "kk_dm_msg.h"
#include "kk_dm_mng.h" #include "kk_dm_mng.h"
#include "kk_dm_api.h" #include "kk_dm_api.h"
#include "kk_sub_db.h"
#include "kk_tsl_api.h" #include "kk_tsl_api.h"
#include "com_api.h" #include "com_api.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_area_handle.h" #include "kk_area_handle.h"
#include "kk_scene_handle.h"
#include "kk_property_db.h"
#include "kk_product.h" #include "kk_product.h"
#include "kk_hal.h"
#define IOTX_LINKKIT_KEY_ID "id" #define IOTX_LINKKIT_KEY_ID "id"
#define IOTX_LINKKIT_KEY_CODE "code" #define IOTX_LINKKIT_KEY_CODE "code"
...@@ -345,15 +349,15 @@ static int kk_service_addRoom_handle(const char *deviceCode, cJSON *params) ...@@ -345,15 +349,15 @@ static int kk_service_addRoom_handle(const char *deviceCode, cJSON *params)
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
char roomId[32] = {0}; char roomId[32] = {0};
int res = 0; int res = 0;
int idx = 0,idxIpt = 0; //int idx = 0,idxIpt = 0;
int start = 0,serverNum = 0; //int start = 0,serverNum = 0;
kk_tsl_service_t *serviceItem = NULL; //kk_tsl_service_t *serviceItem = NULL;
kk_tsl_data_t* pinputData = NULL; //kk_tsl_data_t* pinputData = NULL;
cJSON *currentItem =NULL; //cJSON *currentItem =NULL;
if(deviceCode == NULL||params == NULL){ if(deviceCode == NULL||params == NULL){
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
res = dm_mgr_get_device_by_devicecode(deviceCode, &node); res = dm_mgr_get_device_by_devicecode((char*)deviceCode, &node);
if (res < SUCCESS_RETURN) { if (res < SUCCESS_RETURN) {
ERROR_PRINT("dm_mgr_get_device_by_devicecode failed\n"); ERROR_PRINT("dm_mgr_get_device_by_devicecode failed\n");
return res; return res;
...@@ -458,9 +462,9 @@ static int kk_service_removeDeviceFromRoom_handle(cJSON *params) ...@@ -458,9 +462,9 @@ static int kk_service_removeDeviceFromRoom_handle(cJSON *params)
*************************************************************/ *************************************************************/
static int kk_service_execute_action(cJSON *action,dm_mgr_dev_node_t *node) static int kk_service_execute_action(cJSON *action,dm_mgr_dev_node_t *node)
{ {
int idx = 0; //int idx = 0;
kk_tsl_data_t *pCurrentItem = NULL; //kk_tsl_data_t *pCurrentItem = NULL;
cJSON *pCurrentData = NULL; //cJSON *pCurrentData = NULL;
if(node == NULL){ if(node == NULL){
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
...@@ -756,7 +760,7 @@ static int kk_service_addScene_handle(cJSON *param,cJSON *msgId) ...@@ -756,7 +760,7 @@ static int kk_service_addScene_handle(cJSON *param,cJSON *msgId)
{ {
int res = 0; int res = 0;
char sceneId[32] = {0}; char sceneId[32] = {0};
kk_tsl_t *pSceneShadow = NULL; //kk_tsl_t *pSceneShadow = NULL;
if(param == NULL || msgId == NULL){ if(param == NULL || msgId == NULL){
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
...@@ -1116,10 +1120,10 @@ int kk_init_dmproc(void) ...@@ -1116,10 +1120,10 @@ int kk_init_dmproc(void)
*************************************************************/ *************************************************************/
int _iotx_linkkit_slave_connect(int devid) int _iotx_linkkit_slave_connect(int devid)
{ {
int res = 0, msgid = 0, code = 0; int res = 0;
iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx(); //iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx();
iotx_linkkit_upstream_sync_callback_node_t *node = NULL; //iotx_linkkit_upstream_sync_callback_node_t *node = NULL;
void *semaphore = NULL; //void *semaphore = NULL;
if (devid <= 0) { if (devid <= 0) {
dm_log_err("devid invalid"); dm_log_err("devid invalid");
...@@ -1145,10 +1149,10 @@ int _iotx_linkkit_slave_connect(int devid) ...@@ -1145,10 +1149,10 @@ int _iotx_linkkit_slave_connect(int devid)
*************************************************************/ *************************************************************/
int _iotx_linkkit_slave_register(int devid) int _iotx_linkkit_slave_register(int devid)
{ {
int res = 0, msgid = 0, code = 0; int res = 0;
iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx(); //iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx();
iotx_linkkit_upstream_sync_callback_node_t *node = NULL; //iotx_linkkit_upstream_sync_callback_node_t *node = NULL;
void *semaphore = NULL; //void *semaphore = NULL;
if (devid <= 0) { if (devid <= 0) {
dm_log_err("devid invalid"); dm_log_err("devid invalid");
return FAIL_RETURN; return FAIL_RETURN;
...@@ -1292,7 +1296,7 @@ static int _iotx_linkkit_slave_close(int devid) ...@@ -1292,7 +1296,7 @@ static int _iotx_linkkit_slave_close(int devid)
void IOT_Linkkit_Yield(int timeout_ms) void IOT_Linkkit_Yield(int timeout_ms)
{ {
iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx(); //iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx();
if (timeout_ms <= 0) { if (timeout_ms <= 0) {
dm_log_err("Invalid Parameter"); dm_log_err("Invalid Parameter");
...@@ -1352,10 +1356,10 @@ int IOT_Linkkit_Close(int devid) ...@@ -1352,10 +1356,10 @@ int IOT_Linkkit_Close(int devid)
*************************************************************/ *************************************************************/
static int _iotx_linkkit_subdev_login(int devid) static int _iotx_linkkit_subdev_login(int devid)
{ {
int res = 0, msgid = 0, code = 0; int res = 0;
iotx_linkkit_upstream_sync_callback_node_t *node = NULL; //iotx_linkkit_upstream_sync_callback_node_t *node = NULL;
void *semaphore = NULL; //void *semaphore = NULL;
void *callback = NULL; //void *callback = NULL;
res = iotx_dm_dev_online(devid);//iotx_dm_subdev_login(devid); res = iotx_dm_dev_online(devid);//iotx_dm_subdev_login(devid);
if (res < SUCCESS_RETURN) { if (res < SUCCESS_RETURN) {
......
...@@ -14,7 +14,7 @@ ...@@ -14,7 +14,7 @@
#include <stdio.h> #include <stdio.h>
#include "kk_tsl_api.h" #include "kk_tsl_api.h"
#include "kk_hal.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_dm_mng.h" #include "kk_dm_mng.h"
#include "kk_property_db.h" #include "kk_property_db.h"
...@@ -154,8 +154,8 @@ static int _kk_check_property_exist(const char* deviceCode,const char* identifie ...@@ -154,8 +154,8 @@ static int _kk_check_property_exist(const char* deviceCode,const char* identifie
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt)); //INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
pDeviceCode = sqlite3_column_text(stmt, DB_DEVICECODE); pDeviceCode = (char*)sqlite3_column_text(stmt, DB_DEVICECODE);
pIdentifier = sqlite3_column_text(stmt, DB_IDENTIFITER); pIdentifier = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
if(!strcmp(deviceCode,pDeviceCode)&&!strcmp(identifier,pIdentifier)) if(!strcmp(deviceCode,pDeviceCode)&&!strcmp(identifier,pIdentifier))
{ {
...@@ -251,8 +251,8 @@ int kk_property_db_update_value(const char *deviceCode,const char *identifier,co ...@@ -251,8 +251,8 @@ int kk_property_db_update_value(const char *deviceCode,const char *identifier,co
int kk_property_db_get_value_directly(const char *deviceCode,const char *identifier,char* value) int kk_property_db_get_value_directly(const char *deviceCode,const char *identifier,char* value)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
int rc = 0; //int rc = 0;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *valueStr = NULL; char *valueStr = NULL;
kk_property_db_ctx_t *ctx = _kk_property_db_get_ctx(); kk_property_db_ctx_t *ctx = _kk_property_db_get_ctx();
...@@ -261,7 +261,7 @@ int kk_property_db_get_value_directly(const char *deviceCode,const char *identif ...@@ -261,7 +261,7 @@ int kk_property_db_get_value_directly(const char *deviceCode,const char *identif
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode= '%s' and identifier = '%s'",deviceCode,identifier); sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode= '%s' and identifier = '%s'",deviceCode,identifier);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
valueStr = sqlite3_column_text(stmt, DB_VALUE); valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
memcpy(value,valueStr, strlen(valueStr)); memcpy(value,valueStr, strlen(valueStr));
} }
sqlite3_free(sqlCmd); sqlite3_free(sqlCmd);
...@@ -281,8 +281,8 @@ int kk_property_db_get_value_directly(const char *deviceCode,const char *identif ...@@ -281,8 +281,8 @@ int kk_property_db_get_value_directly(const char *deviceCode,const char *identif
int kk_property_db_get_value(const char *deviceCode,const char *identifier,void* value) int kk_property_db_get_value(const char *deviceCode,const char *identifier,void* value)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
int rc = 0; //int rc = 0;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *valueStr = NULL; char *valueStr = NULL;
int valueType = 0; int valueType = 0;
...@@ -296,7 +296,7 @@ int kk_property_db_get_value(const char *deviceCode,const char *identifier,void* ...@@ -296,7 +296,7 @@ int kk_property_db_get_value(const char *deviceCode,const char *identifier,void*
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
valueStr = sqlite3_column_text(stmt, DB_VALUE); valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE); valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
if(valueType == KK_TSL_DATA_TYPE_INT|| if(valueType == KK_TSL_DATA_TYPE_INT||
valueType == KK_TSL_DATA_TYPE_ENUM|| valueType == KK_TSL_DATA_TYPE_ENUM||
...@@ -336,8 +336,8 @@ int kk_property_db_get_value(const char *deviceCode,const char *identifier,void* ...@@ -336,8 +336,8 @@ int kk_property_db_get_value(const char *deviceCode,const char *identifier,void*
int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_prop_raw_struct_t* raw, int count) int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_prop_raw_struct_t* raw, int count)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
int rc = 0; //int rc = 0;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *valueStr = NULL; char *valueStr = NULL;
char *devcode = NULL; char *devcode = NULL;
...@@ -354,8 +354,8 @@ int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_pro ...@@ -354,8 +354,8 @@ int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_pro
curData = raw; curData = raw;
while(sqlite3_step(stmt) == SQLITE_ROW && idx < count){ while(sqlite3_step(stmt) == SQLITE_ROW && idx < count){
devcode = sqlite3_column_text(stmt, DB_DEVICECODE); devcode = (char*)sqlite3_column_text(stmt, DB_DEVICECODE);
valueStr = sqlite3_column_text(stmt, DB_VALUE); valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE); valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
memcpy(curData->deviceCode,devcode, strlen(devcode)); memcpy(curData->deviceCode,devcode, strlen(devcode));
memcpy(curData->raw,valueStr, strlen(valueStr)); memcpy(curData->raw,valueStr, strlen(valueStr));
...@@ -387,7 +387,7 @@ int kk_property_db_update(const char *deviceCode) ...@@ -387,7 +387,7 @@ int kk_property_db_update(const char *deviceCode)
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
kk_tsl_data_t *property = NULL; kk_tsl_data_t *property = NULL;
res = dm_mgr_get_device_by_devicecode(deviceCode, &node); res = dm_mgr_get_device_by_devicecode((char*)deviceCode, &node);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
return FAIL_RETURN; return FAIL_RETURN;
} }
...@@ -433,9 +433,9 @@ int kk_property_db_update(const char *deviceCode) ...@@ -433,9 +433,9 @@ int kk_property_db_update(const char *deviceCode)
int kk_property_sync_values(const char *deviceCode) int kk_property_sync_values(const char *deviceCode)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
int rc = 0; //int rc = 0;
int res = 0; int res = 0;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *pIdentifier = NULL; char *pIdentifier = NULL;
char *valueStr = NULL; char *valueStr = NULL;
...@@ -445,7 +445,7 @@ int kk_property_sync_values(const char *deviceCode) ...@@ -445,7 +445,7 @@ int kk_property_sync_values(const char *deviceCode)
char *searchCmd = "select * from PropertiesInfo;"; char *searchCmd = "select * from PropertiesInfo;";
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
res = dm_mgr_get_device_by_devicecode(deviceCode,&node); res = dm_mgr_get_device_by_devicecode((char*)deviceCode,&node);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
return FAIL_RETURN; return FAIL_RETURN;
} }
...@@ -458,10 +458,10 @@ int kk_property_sync_values(const char *deviceCode) ...@@ -458,10 +458,10 @@ int kk_property_sync_values(const char *deviceCode)
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
if(!strcmp(deviceCode,sqlite3_column_text(stmt, DB_DEVICECODE))) if(!strcmp(deviceCode,(char*)sqlite3_column_text(stmt, DB_DEVICECODE)))
{ {
pIdentifier = sqlite3_column_text(stmt, DB_IDENTIFITER); pIdentifier = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
valueStr = sqlite3_column_text(stmt, DB_VALUE); valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE); valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
if(valueType == KK_TSL_DATA_TYPE_INT|| if(valueType == KK_TSL_DATA_TYPE_INT||
valueType == KK_TSL_DATA_TYPE_ENUM|| valueType == KK_TSL_DATA_TYPE_ENUM||
...@@ -538,12 +538,12 @@ static int _kk_check_lockkey_exist(const char* deviceCode,const char* keyId) ...@@ -538,12 +538,12 @@ static int _kk_check_lockkey_exist(const char* deviceCode,const char* keyId)
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt)); //INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
pDeviceCode = sqlite3_column_text(stmt, DB_LOCKKEY_DEVICECODE); pDeviceCode = (char*)sqlite3_column_text(stmt, DB_LOCKKEY_DEVICECODE);
pKeyId = sqlite3_column_text(stmt, DB_LOCKKEY_KEYID); pKeyId = (char*)sqlite3_column_text(stmt, DB_LOCKKEY_KEYID);
if(!strcmp(deviceCode,pDeviceCode)&&!strcmp(pKeyId,keyId)) if(!strcmp(deviceCode,pDeviceCode)&&!strcmp(pKeyId,keyId))
{ {
isExist = 1; isExist = 1;
break; break;
} }
......
...@@ -10,11 +10,15 @@ ...@@ -10,11 +10,15 @@
#include <stdio.h> #include <stdio.h>
#include "kk_tsl_api.h" #include "kk_tsl_api.h"
#include "kk_sub_db.h" #include "kk_sub_db.h"
#include "kk_property_db.h"
#include "kk_dm_mng.h" #include "kk_dm_mng.h"
#include "kk_dm_msg.h"
#include "kk_scene_handle.h" #include "kk_scene_handle.h"
#include "kk_dm_heartbeat.h"
#include "kk_dm_api.h"
#include "sqlite3.h" #include "sqlite3.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_hal.h"
extern sqlite3 *g_kk_pDb; extern sqlite3 *g_kk_pDb;
typedef struct { typedef struct {
...@@ -117,10 +121,10 @@ static int _kk_load_subDevice(void) ...@@ -117,10 +121,10 @@ static int _kk_load_subDevice(void)
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
deviceType = sqlite3_column_int(stmt, DB_SUB_DEVTYPE); deviceType = sqlite3_column_int(stmt, DB_SUB_DEVTYPE);
res = dm_mgr_subdev_create(deviceType, res = dm_mgr_subdev_create(deviceType,
sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE), (char*)sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE),
sqlite3_column_text(stmt, DB_SUB_DEVICECODE), (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE),
sqlite3_column_text(stmt, DB_SUB_MAC), (char*)sqlite3_column_text(stmt, DB_SUB_MAC),
sqlite3_column_text(stmt, DB_SUB_FATHERDEVICECODE), (char*)sqlite3_column_text(stmt, DB_SUB_FATHERDEVICECODE),
KK_DEV_UNKNOW,&devId,&heartbeat); KK_DEV_UNKNOW,&devId,&heartbeat);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
...@@ -134,11 +138,11 @@ static int _kk_load_subDevice(void) ...@@ -134,11 +138,11 @@ static int _kk_load_subDevice(void)
iotx_dm_subscribe(devId); iotx_dm_subscribe(devId);
//sync the data from property db //sync the data from property db
kk_property_sync_values(sqlite3_column_text(stmt, DB_SUB_DEVICECODE)); kk_property_sync_values((char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE));
usleep(100000); usleep(100000);
if(deviceType == KK_DM_DEVICE_GATEWAY){ if(deviceType == KK_DM_DEVICE_GATEWAY){
kk_dm_gw_status_check_push(sqlite3_column_text(stmt, DB_SUB_DEVICECODE)); kk_dm_gw_status_check_push((char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE));
} }
//post the property to cloud //post the property to cloud
//dm_msg_thing_property_post_all(sqlite3_column_text(stmt, DB_DEVICECODE)); //dm_msg_thing_property_post_all(sqlite3_column_text(stmt, DB_DEVICECODE));
...@@ -196,7 +200,7 @@ static int _kk_check_subDev_exist(const char* deviceCode) ...@@ -196,7 +200,7 @@ static int _kk_check_subDev_exist(const char* deviceCode)
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt)); //INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
pmac = sqlite3_column_text(stmt, DB_SUB_DEVICECODE); pmac = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
if(!strcmp(deviceCode,pmac)) if(!strcmp(deviceCode,pmac))
{ {
...@@ -301,7 +305,6 @@ int kk_subDev_delete_by_dcode(char deviceCode[DEVICE_CODE_MAXLEN]) ...@@ -301,7 +305,6 @@ int kk_subDev_delete_by_dcode(char deviceCode[DEVICE_CODE_MAXLEN])
int kk_subDev_update_offline(int isOffline,const char *deviceCode) int kk_subDev_update_offline(int isOffline,const char *deviceCode)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
int len =0;
int rc = 0; int rc = 0;
char *zErrMsg = 0; char *zErrMsg = 0;
kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx(); kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx();
...@@ -333,7 +336,6 @@ int kk_subDev_update_offline(int isOffline,const char *deviceCode) ...@@ -333,7 +336,6 @@ int kk_subDev_update_offline(int isOffline,const char *deviceCode)
int kk_subDev_update_productType(char *productType,const char *deviceCode) int kk_subDev_update_productType(char *productType,const char *deviceCode)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
int len =0;
int rc = 0; int rc = 0;
char *zErrMsg = 0; char *zErrMsg = 0;
kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx(); kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx();
...@@ -364,7 +366,6 @@ int kk_subDev_update_productType(char *productType,const char *deviceCode) ...@@ -364,7 +366,6 @@ int kk_subDev_update_productType(char *productType,const char *deviceCode)
int kk_subDev_update_auth(int isAuth,const char *deviceCode) int kk_subDev_update_auth(int isAuth,const char *deviceCode)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
int len =0;
int rc = 0; int rc = 0;
char *zErrMsg = 0; char *zErrMsg = 0;
kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx(); kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx();
...@@ -395,7 +396,6 @@ int kk_subDev_update_auth(int isAuth,const char *deviceCode) ...@@ -395,7 +396,6 @@ int kk_subDev_update_auth(int isAuth,const char *deviceCode)
int kk_subDev_update_sceneSupport(int sceneSupport,const char *deviceCode) int kk_subDev_update_sceneSupport(int sceneSupport,const char *deviceCode)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
int len =0;
int rc = 0; int rc = 0;
char *zErrMsg = 0; char *zErrMsg = 0;
kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx(); kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx();
...@@ -437,13 +437,13 @@ int kk_subDev_send_property_get_from_db(void) ...@@ -437,13 +437,13 @@ int kk_subDev_send_property_get_from_db(void)
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
isOffline = sqlite3_column_int(stmt, DB_SUB_DEVTYPE); isOffline = sqlite3_column_int(stmt, DB_SUB_DEVTYPE);
if(isOffline == KK_DEV_ONLINE){ if(isOffline == KK_DEV_ONLINE){
res = dm_mgr_get_device_by_devicecode(sqlite3_column_text(stmt, DB_SUB_DEVICECODE), &node); res = dm_mgr_get_device_by_devicecode((char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE), &node);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
continue; continue;
} }
iotx_dm_dev_online(node->devid); iotx_dm_dev_online(node->devid);
dm_msg_thing_property_post_all(sqlite3_column_text(stmt, DB_SUB_DEVICECODE)); dm_msg_thing_property_post_all((char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE));
} }
} }
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
...@@ -478,7 +478,7 @@ int kk_subDev_send_property_get(const char *fatherDeviceCode) ...@@ -478,7 +478,7 @@ int kk_subDev_send_property_get(const char *fatherDeviceCode)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt)); //INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
pDeviceCode = sqlite3_column_text(stmt, DB_SUB_DEVICECODE); pDeviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
res = dm_mgr_get_device_by_devicecode(pDeviceCode,&node); res = dm_mgr_get_device_by_devicecode(pDeviceCode,&node);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
ERROR_PRINT("ERROR [%s][%d] res:%d\n",__FUNCTION__,__LINE__,res); ERROR_PRINT("ERROR [%s][%d] res:%d\n",__FUNCTION__,__LINE__,res);
...@@ -528,7 +528,7 @@ int kk_subDev_check_scene_support(const char *deviceCode) ...@@ -528,7 +528,7 @@ int kk_subDev_check_scene_support(const char *deviceCode)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt)); //INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
pDeviceCode = sqlite3_column_text(stmt, DB_SUB_DEVICECODE); pDeviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
if (!strcmp(deviceCode,pDeviceCode)) { if (!strcmp(deviceCode,pDeviceCode)) {
res = 1; res = 1;
} }
...@@ -586,7 +586,7 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *scen ...@@ -586,7 +586,7 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *scen
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt)); //INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
pDeviceCode = sqlite3_column_text(stmt, DB_SUB_DEVICECODE); pDeviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
res = dm_mgr_get_device_by_devicecode(pDeviceCode,&node); res = dm_mgr_get_device_by_devicecode(pDeviceCode,&node);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
continue; continue;
......
...@@ -7,8 +7,6 @@ int kk_subDev_insert_db(int devType,char productCode[PRODUCT_CODE_MAXLEN], \ ...@@ -7,8 +7,6 @@ int kk_subDev_insert_db(int devType,char productCode[PRODUCT_CODE_MAXLEN], \
char deviceCode[DEVICE_CODE_MAXLEN],char fatherMac[DEVICE_MAC_MAXLEN],char mac[DEVICE_MAC_MAXLEN], char version[DEVICE_VERSION_MAXLEN],int heartbeat); char deviceCode[DEVICE_CODE_MAXLEN],char fatherMac[DEVICE_MAC_MAXLEN],char mac[DEVICE_MAC_MAXLEN], char version[DEVICE_VERSION_MAXLEN],int heartbeat);
int kk_subDev_delete_byMac(char device_mac[DEVICE_MAC_MAXLEN]); int kk_subDev_delete_byMac(char device_mac[DEVICE_MAC_MAXLEN]);
int kk_subDev_update_offline(int isOnline,const char *device_mac);
int kk_subDev_update_auth(int isAuth,const char *deviceCode); int kk_subDev_update_auth(int isAuth,const char *deviceCode);
int kk_subDev_update_sceneSupport(int sceneSupport,const char *deviceCode); int kk_subDev_update_sceneSupport(int sceneSupport,const char *deviceCode);
int kk_subDev_delete_by_dcode(char deviceCode[DEVICE_CODE_MAXLEN]); int kk_subDev_delete_by_dcode(char deviceCode[DEVICE_CODE_MAXLEN]);
...@@ -19,7 +17,7 @@ int kk_subDev_send_property_get(const char *fatherDeviceCode); ...@@ -19,7 +17,7 @@ int kk_subDev_send_property_get(const char *fatherDeviceCode);
int kk_subDev_check_scene_support(const char *deviceCode); int kk_subDev_check_scene_support(const char *deviceCode);
int kk_subDev_set_action_by_productType(const char *productType,const char *sceneId,const char *propertyName,const char *propertyValue,const char *type); int kk_subDev_set_action_by_productType(const char *productType,const char *sceneId,const char *propertyName,const char *propertyValue,const char *type);
int kk_subDev_update_offline(int isOffline,const char *deviceCode);
enum{ enum{
DB_SUB_IDX = 0, DB_SUB_IDX = 0,
DB_SUB_ONLINE, DB_SUB_ONLINE,
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#include "kk_tsl_api.h" #include "kk_tsl_api.h"
#include "kk_area_handle.h" #include "kk_area_handle.h"
#include "kk_sub_db.h" #include "kk_sub_db.h"
#include "kk_hal.h"
extern sqlite3 *g_kk_pDb; extern sqlite3 *g_kk_pDb;
typedef struct { typedef struct {
...@@ -57,7 +58,7 @@ static void _kk_sync_unlock(void) ...@@ -57,7 +58,7 @@ static void _kk_sync_unlock(void)
*************************************************************/ *************************************************************/
int kk_sync_init(void) int kk_sync_init(void)
{ {
int res = 0; //int res = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx(); kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
/* Create Mutex */ /* Create Mutex */
ctx->mutex = HAL_MutexCreate(); ctx->mutex = HAL_MutexCreate();
...@@ -81,7 +82,7 @@ static int kk_get_rooms_devices(cJSON *roomDevicesArray,char *roomId) ...@@ -81,7 +82,7 @@ static int kk_get_rooms_devices(cJSON *roomDevicesArray,char *roomId)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
deviceObj = cJSON_CreateObject(); deviceObj = cJSON_CreateObject();
deviceCode = sqlite3_column_text(stmt, DB_DEV_DEVICECODE); deviceCode = (char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE);
cJSON_AddStringToObject(deviceObj, KK_SYNC_DEVICECODE_STR, deviceCode); cJSON_AddStringToObject(deviceObj, KK_SYNC_DEVICECODE_STR, deviceCode);
} }
sqlite3_free(sqlCmd); sqlite3_free(sqlCmd);
...@@ -94,7 +95,7 @@ static int kk_get_rooms_info(cJSON *data) ...@@ -94,7 +95,7 @@ static int kk_get_rooms_info(cJSON *data)
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *roomId = NULL; char *roomId = NULL;
char *roomName = NULL; char *roomName = NULL;
int valueType = 0; //int valueType = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx(); kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
if(data == NULL){ if(data == NULL){
return FAIL_RETURN; return FAIL_RETURN;
...@@ -106,8 +107,8 @@ static int kk_get_rooms_info(cJSON *data) ...@@ -106,8 +107,8 @@ static int kk_get_rooms_info(cJSON *data)
sqlCmd = sqlite3_mprintf("select * from AreaInfo"); sqlCmd = sqlite3_mprintf("select * from AreaInfo");
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
roomId = sqlite3_column_text(stmt, DB_ROOM_ID); roomId = (char*)sqlite3_column_text(stmt, DB_ROOM_ID);
roomName = sqlite3_column_text(stmt, DB_ROOM_NAME); roomName = (char*)sqlite3_column_text(stmt, DB_ROOM_NAME);
cJSON_AddStringToObject(roomItem, KK_SYNC_ROOMID_STR, roomId); cJSON_AddStringToObject(roomItem, KK_SYNC_ROOMID_STR, roomId);
cJSON_AddStringToObject(roomItem, KK_SYNC_NANE_STR, roomName); cJSON_AddStringToObject(roomItem, KK_SYNC_NANE_STR, roomName);
kk_get_rooms_devices(roomDevicesArray,roomId); kk_get_rooms_devices(roomDevicesArray,roomId);
...@@ -130,7 +131,7 @@ static int kk_get_rooms_info(cJSON *data) ...@@ -130,7 +131,7 @@ static int kk_get_rooms_info(cJSON *data)
static int kk_get_properties_info(char *deviceCode,cJSON *obj) static int kk_get_properties_info(char *deviceCode,cJSON *obj)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *propertyStr = NULL; char *propertyStr = NULL;
char *valueStr = NULL; char *valueStr = NULL;
...@@ -143,9 +144,9 @@ static int kk_get_properties_info(char *deviceCode,cJSON *obj) ...@@ -143,9 +144,9 @@ static int kk_get_properties_info(char *deviceCode,cJSON *obj)
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode = '%s' ",deviceCode); sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode = '%s' ",deviceCode);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
propertyStr = sqlite3_column_text(stmt, DB_IDENTIFITER); propertyStr = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE); valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
valueStr = sqlite3_column_text(stmt, DB_VALUE); valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
printf("[%s][%d]\n",__FUNCTION__,__LINE__); printf("[%s][%d]\n",__FUNCTION__,__LINE__);
if(valueType == KK_TSL_DATA_TYPE_TEXT){ if(valueType == KK_TSL_DATA_TYPE_TEXT){
cJSON_AddStringToObject(propertyItem, propertyStr, valueStr); cJSON_AddStringToObject(propertyItem, propertyStr, valueStr);
...@@ -164,7 +165,7 @@ static int kk_get_properties_info(char *deviceCode,cJSON *obj) ...@@ -164,7 +165,7 @@ static int kk_get_properties_info(char *deviceCode,cJSON *obj)
static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode) static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx(); kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
char *subDeviceCode = NULL; char *subDeviceCode = NULL;
...@@ -180,10 +181,10 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode) ...@@ -180,10 +181,10 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
cJSON *subdevicesItem = cJSON_CreateObject(); cJSON *subdevicesItem = cJSON_CreateObject();
subDeviceCode = sqlite3_column_text(stmt, DB_SUB_DEVICECODE); subDeviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
subProductCode = sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE); subProductCode = (char*)sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE);
subVersion = sqlite3_column_text(stmt, DB_SUB_VERSION); subVersion = (char*)sqlite3_column_text(stmt, DB_SUB_VERSION);
subIsline = sqlite3_column_text(stmt, DB_SUB_ONLINE); subIsline = (char*)sqlite3_column_text(stmt, DB_SUB_ONLINE);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_DEVICECODE_STR, subDeviceCode); cJSON_AddStringToObject(subdevicesItem, KK_SYNC_DEVICECODE_STR, subDeviceCode);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_VERSION_STR, subVersion); cJSON_AddStringToObject(subdevicesItem, KK_SYNC_VERSION_STR, subVersion);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_MAC_STR, subDeviceCode); cJSON_AddStringToObject(subdevicesItem, KK_SYNC_MAC_STR, subDeviceCode);
...@@ -204,15 +205,15 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode) ...@@ -204,15 +205,15 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
static int kk_get_gw_devices_info(cJSON *gwdevices) static int kk_get_gw_devices_info(cJSON *gwdevices)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
cJSON *gwdevicesItem = NULL; //cJSON *gwdevicesItem = NULL;
char *gw_deviceCode = NULL; char *gw_deviceCode = NULL;
char *gw_productCode = NULL; char *gw_productCode = NULL;
char *gw_version = NULL; char *gw_version = NULL;
char *gw_isline = NULL; char *gw_isline = NULL;
char *valueStr = NULL; //char *valueStr = NULL;
int valueType = 0; //int valueType = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx(); kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
if(gwdevices == NULL){ if(gwdevices == NULL){
return FAIL_RETURN; return FAIL_RETURN;
...@@ -223,10 +224,10 @@ static int kk_get_gw_devices_info(cJSON *gwdevices) ...@@ -223,10 +224,10 @@ static int kk_get_gw_devices_info(cJSON *gwdevices)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
cJSON *gwdevicesItem = cJSON_CreateObject(); cJSON *gwdevicesItem = cJSON_CreateObject();
gw_deviceCode = sqlite3_column_text(stmt, DB_SUB_DEVICECODE); gw_deviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
gw_productCode = sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE); gw_productCode = (char*)sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE);
gw_version = sqlite3_column_text(stmt, DB_SUB_VERSION); gw_version = (char*)sqlite3_column_text(stmt, DB_SUB_VERSION);
gw_isline = sqlite3_column_text(stmt, DB_SUB_ONLINE); gw_isline = (char*)sqlite3_column_text(stmt, DB_SUB_ONLINE);
printf("gw_deviceCode:%s\n",gw_deviceCode); printf("gw_deviceCode:%s\n",gw_deviceCode);
printf("gw_productCode:%s\n",gw_productCode); printf("gw_productCode:%s\n",gw_productCode);
cJSON_AddStringToObject(gwdevicesItem, KK_SYNC_DEVICECODE_STR, gw_deviceCode); cJSON_AddStringToObject(gwdevicesItem, KK_SYNC_DEVICECODE_STR, gw_deviceCode);
...@@ -256,10 +257,10 @@ static int kk_get_devices_info(cJSON *data) ...@@ -256,10 +257,10 @@ static int kk_get_devices_info(cJSON *data)
cJSON_AddItemToObject(data, KK_SYNC_DEVICES_STR, gwdevices); cJSON_AddItemToObject(data, KK_SYNC_DEVICES_STR, gwdevices);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
static int kk_get_scenes_actions_info(char *actionArray ) static int kk_get_scenes_actions_info(cJSON *actionArray )
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *deviceCode = NULL; char *deviceCode = NULL;
char *propertyName = NULL; char *propertyName = NULL;
...@@ -274,12 +275,12 @@ static int kk_get_scenes_actions_info(char *actionArray ) ...@@ -274,12 +275,12 @@ static int kk_get_scenes_actions_info(char *actionArray )
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
cJSON *actionItem = cJSON_CreateObject(); cJSON *actionItem = cJSON_CreateObject();
deviceCode = sqlite3_column_text(stmt, DB_SCENEACTION_DEVICECODE); deviceCode = (char*)sqlite3_column_text(stmt, DB_SCENEACTION_DEVICECODE);
delay = sqlite3_column_int(stmt, DB_SCENEACTION_DELAY); delay = sqlite3_column_int(stmt, DB_SCENEACTION_DELAY);
epNum = sqlite3_column_int(stmt, DB_SCENEACTION_EPNUM); epNum = sqlite3_column_int(stmt, DB_SCENEACTION_EPNUM);
propertyName = sqlite3_column_text(stmt, DB_SCENEACTION_PROPERTYNAME); propertyName = (char*)sqlite3_column_text(stmt, DB_SCENEACTION_PROPERTYNAME);
propertyValue = sqlite3_column_text(stmt, DB_SCENEACTION_PROPERTYVALUE); propertyValue = (char*)sqlite3_column_text(stmt, DB_SCENEACTION_PROPERTYVALUE);
type = sqlite3_column_text(stmt, DB_SCENEACTION_TYPE); type = (char*)sqlite3_column_text(stmt, DB_SCENEACTION_TYPE);
cJSON_AddStringToObject(actionItem, KK_SYNC_DEVICECODE_STR, deviceCode); cJSON_AddStringToObject(actionItem, KK_SYNC_DEVICECODE_STR, deviceCode);
cJSON_AddNumberToObject(actionItem, KK_SYNC_SCENE_DELAY_STR, delay); cJSON_AddNumberToObject(actionItem, KK_SYNC_SCENE_DELAY_STR, delay);
cJSON_AddNumberToObject(actionItem, KK_SYNC_SCENE_EPNUM_STR, epNum); cJSON_AddNumberToObject(actionItem, KK_SYNC_SCENE_EPNUM_STR, epNum);
...@@ -293,17 +294,17 @@ static int kk_get_scenes_actions_info(char *actionArray ) ...@@ -293,17 +294,17 @@ static int kk_get_scenes_actions_info(char *actionArray )
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
static int kk_get_scenes_trigger_info(char *triggerArray,char *sceneId) static int kk_get_scenes_trigger_info(cJSON *triggerArray,char *sceneId)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
const unsigned char *deviceCode = NULL; char *deviceCode = NULL;
const unsigned char *propertyName = NULL; char *propertyName = NULL;
const unsigned char *compareType = NULL; char *compareType = NULL;
const unsigned char *compareValue = NULL; char *compareValue = NULL;
const unsigned char *type = NULL; //char *type = NULL;
int delay = 0,epNum = 0; int epNum = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx(); kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
if(triggerArray == NULL || sceneId == NULL){ if(triggerArray == NULL || sceneId == NULL){
return FAIL_RETURN; return FAIL_RETURN;
...@@ -312,12 +313,12 @@ static int kk_get_scenes_trigger_info(char *triggerArray,char *sceneId) ...@@ -312,12 +313,12 @@ static int kk_get_scenes_trigger_info(char *triggerArray,char *sceneId)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
cJSON *triggerItem = cJSON_CreateObject(); cJSON *triggerItem = cJSON_CreateObject();
deviceCode = sqlite3_column_text(stmt, DB_SCENETRIGGER_DEVICECODE); deviceCode = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_DEVICECODE);
epNum = sqlite3_column_int(stmt, DB_SCENETRIGGER_EPNUM); epNum = sqlite3_column_int(stmt, DB_SCENETRIGGER_EPNUM);
propertyName = sqlite3_column_text(stmt, DB_SCENETRIGGER_PROPERTYNAME); propertyName = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_PROPERTYNAME);
compareType = sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPARETYPE); compareType = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPARETYPE);
compareValue = sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPAREVALUE); compareValue = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPAREVALUE);
type = sqlite3_column_text(stmt, DB_SCENETRIGGER_TYPE); //type = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_TYPE);
cJSON_AddStringToObject(triggerItem, KK_SYNC_DEVICECODE_STR, (char*)deviceCode); cJSON_AddStringToObject(triggerItem, KK_SYNC_DEVICECODE_STR, (char*)deviceCode);
cJSON_AddNumberToObject(triggerItem, KK_SYNC_SCENE_EPNUM_STR, epNum); cJSON_AddNumberToObject(triggerItem, KK_SYNC_SCENE_EPNUM_STR, epNum);
cJSON_AddStringToObject(triggerItem, KK_SYNC_SCENE_PROPERTYNAME_STR, (char*)propertyName); cJSON_AddStringToObject(triggerItem, KK_SYNC_SCENE_PROPERTYNAME_STR, (char*)propertyName);
...@@ -329,10 +330,10 @@ static int kk_get_scenes_trigger_info(char *triggerArray,char *sceneId) ...@@ -329,10 +330,10 @@ static int kk_get_scenes_trigger_info(char *triggerArray,char *sceneId)
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
static int kk_get_scenes_condition_info(char *conditionArray,char *sceneId) static int kk_get_scenes_condition_info(cJSON *conditionArray,char *sceneId)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
int starttime = 0; int starttime = 0;
int endtime = 0; int endtime = 0;
...@@ -364,7 +365,7 @@ static int kk_get_scenes_condition_info(char *conditionArray,char *sceneId) ...@@ -364,7 +365,7 @@ static int kk_get_scenes_condition_info(char *conditionArray,char *sceneId)
static int kk_get_scenes_info(cJSON *data) static int kk_get_scenes_info(cJSON *data)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
int enable = 0,type = 0; int enable = 0,type = 0;
char *name = NULL; char *name = NULL;
...@@ -387,9 +388,9 @@ static int kk_get_scenes_info(cJSON *data) ...@@ -387,9 +388,9 @@ static int kk_get_scenes_info(cJSON *data)
} }
type = sqlite3_column_int(stmt, DB_SCENEINFO_SCENETYPE); type = sqlite3_column_int(stmt, DB_SCENEINFO_SCENETYPE);
cJSON_AddNumberToObject(sceneArrayItem, KK_SYNC_SCENE_SCENETYPE_STR, type); cJSON_AddNumberToObject(sceneArrayItem, KK_SYNC_SCENE_SCENETYPE_STR, type);
name = sqlite3_column_text(stmt, DB_SCENEINFO_NAME); name = (char*)sqlite3_column_text(stmt, DB_SCENEINFO_NAME);
cJSON_AddStringToObject(sceneArrayItem, KK_SYNC_NANE_STR, name); cJSON_AddStringToObject(sceneArrayItem, KK_SYNC_NANE_STR, name);
sceneId = sqlite3_column_text(stmt, DB_SCENEINFO_SCENEID); sceneId = (char*)sqlite3_column_text(stmt, DB_SCENEINFO_SCENEID);
cJSON_AddStringToObject(sceneArrayItem, KK_SYNC_SCENEID_STR, sceneId); cJSON_AddStringToObject(sceneArrayItem, KK_SYNC_SCENEID_STR, sceneId);
cJSON *actionArray = cJSON_CreateArray(); cJSON *actionArray = cJSON_CreateArray();
kk_get_scenes_actions_info(actionArray); kk_get_scenes_actions_info(actionArray);
...@@ -410,7 +411,7 @@ static int kk_get_scenes_info(cJSON *data) ...@@ -410,7 +411,7 @@ static int kk_get_scenes_info(cJSON *data)
static int kk_get_ccu_properties(cJSON *property) static int kk_get_ccu_properties(cJSON *property)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; //char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *propertyStr = NULL; char *propertyStr = NULL;
char *valueStr = NULL; char *valueStr = NULL;
...@@ -424,9 +425,9 @@ static int kk_get_ccu_properties(cJSON *property) ...@@ -424,9 +425,9 @@ static int kk_get_ccu_properties(cJSON *property)
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE devType = '%d' ",KK_DM_DEVICE_CCU); sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE devType = '%d' ",KK_DM_DEVICE_CCU);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
propertyStr = sqlite3_column_text(stmt, DB_IDENTIFITER); propertyStr = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE); valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
valueStr = sqlite3_column_text(stmt, DB_VALUE); valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
if(valueType == KK_TSL_DATA_TYPE_TEXT){ if(valueType == KK_TSL_DATA_TYPE_TEXT){
cJSON_AddStringToObject(property, propertyStr, valueStr); cJSON_AddStringToObject(property, propertyStr, valueStr);
}else if(valueType == KK_TSL_DATA_TYPE_INT|| }else if(valueType == KK_TSL_DATA_TYPE_INT||
...@@ -451,7 +452,6 @@ static int kk_get_ccu_properties(cJSON *property) ...@@ -451,7 +452,6 @@ static int kk_get_ccu_properties(cJSON *property)
char *kk_sync_get_info() char *kk_sync_get_info()
{ {
char *out = NULL; char *out = NULL;
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
char ccu_deviceCode[DEVICE_CODE_MAXLEN] = {0}; char ccu_deviceCode[DEVICE_CODE_MAXLEN] = {0};
char ccu_productCode[PRODUCT_CODE_MAXLEN] = {0}; char ccu_productCode[PRODUCT_CODE_MAXLEN] = {0};
char version[32] = {0}; char version[32] = {0};
...@@ -460,17 +460,12 @@ char *kk_sync_get_info() ...@@ -460,17 +460,12 @@ char *kk_sync_get_info()
cJSON_AddStringToObject(root,KK_SYNC_CODE_STR,"0"); cJSON_AddStringToObject(root,KK_SYNC_CODE_STR,"0");
cJSON *data = cJSON_CreateObject(); cJSON *data = cJSON_CreateObject();
cJSON_AddItemToObject(root, KK_SYNC_DATA_STR, data); cJSON_AddItemToObject(root, KK_SYNC_DATA_STR, data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_rooms_info(data); kk_get_rooms_info(data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_devices_info(data); kk_get_devices_info(data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_scenes_info(data); kk_get_scenes_info(data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
HAL_GetDevice_Code(ccu_deviceCode); HAL_GetDevice_Code(ccu_deviceCode);
HAL_GetProduct_Code(ccu_productCode); HAL_GetProduct_Code(ccu_productCode);
HAL_GetVersion(version); HAL_GetVersion(version);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_AddStringToObject(data, KK_SYNC_DEVICECODE_STR,ccu_deviceCode); cJSON_AddStringToObject(data, KK_SYNC_DEVICECODE_STR,ccu_deviceCode);
cJSON_AddStringToObject(data, KK_SYNC_NANE_STR, "newccu"); cJSON_AddStringToObject(data, KK_SYNC_NANE_STR, "newccu");
sprintf(cloudstatus_str, "%d", kk_get_cloudstatus()); sprintf(cloudstatus_str, "%d", kk_get_cloudstatus());
...@@ -478,10 +473,9 @@ char *kk_sync_get_info() ...@@ -478,10 +473,9 @@ char *kk_sync_get_info()
cJSON_AddStringToObject(data, KK_SYNC_PRODUCTCODE_STR, ccu_productCode); cJSON_AddStringToObject(data, KK_SYNC_PRODUCTCODE_STR, ccu_productCode);
cJSON_AddStringToObject(data, KK_SYNC_VERSION_STR, version); cJSON_AddStringToObject(data, KK_SYNC_VERSION_STR, version);
cJSON *property = cJSON_CreateObject(); cJSON *property = cJSON_CreateObject();
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_ccu_properties(property); kk_get_ccu_properties(property);
cJSON_AddItemToObject(data, KK_SYNC_PROPERTY_STR, property); cJSON_AddItemToObject(data, KK_SYNC_PROPERTY_STR, property);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
out=cJSON_Print(root); out=cJSON_Print(root);
printf("kk_sync_get_info:%s\n",out); printf("kk_sync_get_info:%s\n",out);
cJSON_Delete(root); cJSON_Delete(root);
......
...@@ -34,4 +34,8 @@ ...@@ -34,4 +34,8 @@
#define KK_SYNC_SCENE_ENDTIME_STR "endTime" #define KK_SYNC_SCENE_ENDTIME_STR "endTime"
#define KK_SYNC_SCENE_CROSSDAY_STR "crossDay" #define KK_SYNC_SCENE_CROSSDAY_STR "crossDay"
#define KK_SYNC_SCENE_REPEATDAY_STR "repeat_days" #define KK_SYNC_SCENE_REPEATDAY_STR "repeat_days"
int kk_sync_init(void);
char *kk_sync_get_info();
#endif #endif
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
#include "kk_tsl_api.h" #include "kk_tsl_api.h"
#include "sqlite3.h" #include "sqlite3.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_hal.h"
#include "kk_history_db.h" #include "kk_history_db.h"
...@@ -213,7 +214,7 @@ int kk_history_insert_sensor_info(const char* deviceCode,const char* identifier, ...@@ -213,7 +214,7 @@ int kk_history_insert_sensor_info(const char* deviceCode,const char* identifier,
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
rtime = sqlite3_column_int(stmt, DB_SENSOR_RECORDTIME); rtime = sqlite3_column_int(stmt, DB_SENSOR_RECORDTIME);
kk_history_delete_by_recordtime("SensorHistoryInfo",rtime); kk_history_delete_by_recordtime("SensorHistoryInfo",rtime);
INFO_PRINT("delete rtime:%d\n",rtime); INFO_PRINT("delete rtime:%ld\n",rtime);
break; break;
} }
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
......
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
#include"com_api.h" #include"com_api.h"
#include <sys/types.h> #include <sys/types.h>
#include <sys/socket.h> #include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h> #include <netinet/in.h>
#include <arpa/inet.h> #include <arpa/inet.h>
#include <unistd.h> #include <unistd.h>
...@@ -415,12 +414,10 @@ void gw2mid_cb(void* data, int len, char* chalMark){ ...@@ -415,12 +414,10 @@ void gw2mid_cb(void* data, int len, char* chalMark){
*************************************************************/ *************************************************************/
void kk_platMsg_handle(void* data, char* chalMark){ void kk_platMsg_handle(void* data, char* chalMark){
char *out;
int res = 0; int res = 0;
cJSON *json; cJSON *json;
cJSON *info; cJSON *info;
cJSON *info_dcode; cJSON *info_dcode;
cJSON *params;
cJSON *jsonPay; cJSON *jsonPay;
cJSON *msgType; cJSON *msgType;
cJSON *proCode; cJSON *proCode;
...@@ -829,22 +826,11 @@ void *udp_dispatch_yield(void *args){ ...@@ -829,22 +826,11 @@ void *udp_dispatch_yield(void *args){
} }
socklen_t len = sizeof(struct sockaddr_in); socklen_t len = sizeof(struct sockaddr_in);
cJSON* json = NULL;
cJSON* info = NULL;
cJSON* payload = NULL;
cJSON* infoObj = NULL;
cJSON* payloadObj = NULL;
cJSON* msgtype = NULL;
cJSON* proCode = NULL;
cJSON* devCode = NULL;
cJSON* params = NULL;
cJSON* macstr = NULL;
char szOut[128] = {0}; char szOut[128] = {0};
char szDec[1024] = {0}; char szDec[1024] = {0};
char host_ip[32] = {0}; char host_ip[32] = {0};
char mac[32] = {0}; char mac[32] = {0};
char device_code[DEVICE_CODE_LEN] = {0}; char device_code[DEVICE_CODE_LEN] = {0};
int devId = 0;
kk_prop_raw_struct_t ipList[10] = {0}; kk_prop_raw_struct_t ipList[10] = {0};
int idx = 0; int idx = 0;
...@@ -1048,9 +1034,9 @@ int kk_sqlite_init(void) ...@@ -1048,9 +1034,9 @@ int kk_sqlite_init(void)
int main(const int argc, const char **argv) int main(const int argc, const char **argv)
{ {
int res = 0; int res = 0;
char *tsl_str; //char *tsl_str;
int i; //int i;
kk_tsl_t *dev_shadow[30] = {NULL}; //kk_tsl_t *dev_shadow[30] = {NULL};
mid_ctx_t *mid_ctx = kk_mid_get_ctx(); mid_ctx_t *mid_ctx = kk_mid_get_ctx();
open("midware",LOG_PID,LOG_USER); open("midware",LOG_PID,LOG_USER);
...@@ -1098,7 +1084,7 @@ int main(const int argc, const char **argv) ...@@ -1098,7 +1084,7 @@ int main(const int argc, const char **argv)
return -1; return -1;
} }
int ct = 0; //int ct = 0;
for (;;) { for (;;) {
usleep(200000); usleep(200000);
kk_platMsg_dispatch(); kk_platMsg_dispatch();
......
...@@ -176,7 +176,7 @@ int kk_scene_db_init(void) ...@@ -176,7 +176,7 @@ int kk_scene_db_init(void)
int kk_scene_update_scene_enable(int enable,const char *sceneId) int kk_scene_update_scene_enable(int enable,const char *sceneId)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
int len =0; //int len =0;
int rc = 0; int rc = 0;
char *zErrMsg = 0; char *zErrMsg = 0;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx(); kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
...@@ -207,7 +207,7 @@ int kk_scene_update_scene_enable(int enable,const char *sceneId) ...@@ -207,7 +207,7 @@ int kk_scene_update_scene_enable(int enable,const char *sceneId)
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
int kk_scene_insert_scene_info(const char* name,const char* sceneType,const char* enable,const char* sceneId) int kk_scene_insert_scene_info(const char* name,int sceneType,int enable,const char* sceneId)
{ {
int res = 0; int res = 0;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx(); kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
...@@ -265,11 +265,11 @@ static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const c ...@@ -265,11 +265,11 @@ static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const c
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
dbepNum = sqlite3_column_int(stmt, DB_SCENETRIGGER_EPNUM); dbepNum = sqlite3_column_int(stmt, DB_SCENETRIGGER_EPNUM);
dbcompareType = sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPARETYPE); dbcompareType = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPARETYPE);
dbcompareValue = sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPAREVALUE); dbcompareValue = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPAREVALUE);
dbsceneId = sqlite3_column_text(stmt, DB_SCENETRIGGER_SCENEID); dbsceneId = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_SCENEID);
if((epNum == dbepNum) && (!strcmp(dbcompareType,compareType)) && \ if((epNum == dbepNum) && (!strcmp(dbcompareType,compareType)) && \
(!strcmp(compareValue,compareValue)) && (!strcmp(dbsceneId,sceneId))){ (!strcmp(compareValue,dbcompareValue)) && (!strcmp(dbsceneId,sceneId))){
res = 1; res = 1;
INFO_PRINT("kk_scene_check_trigger_exist!!!\n"); INFO_PRINT("kk_scene_check_trigger_exist!!!\n");
break; break;
...@@ -710,7 +710,6 @@ int kk_scene_delete_scene_action(const char *sceneId,int isforword) ...@@ -710,7 +710,6 @@ int kk_scene_delete_scene_action(const char *sceneId,int isforword)
kk_scene_ctx_t *ctx = _kk_scene_get_ctx(); kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; char *zErrMsg = 0;
sqlite3_stmt *stmt;
if(isforword){ if(isforword){
kk_scene_delete_send_to_gw(sceneId); kk_scene_delete_send_to_gw(sceneId);
......
...@@ -67,4 +67,23 @@ enum{ ...@@ -67,4 +67,23 @@ enum{
DB_SCENEINVOKESERVICE_SCENEID, DB_SCENEINVOKESERVICE_SCENEID,
DB_SCENEINVOKESERVICE_args, DB_SCENEINVOKESERVICE_args,
}; };
int kk_scene_delete_scene_timing(const char *sceneId);
int kk_scene_delete_scene_condition(const char *sceneId);
int kk_scene_delete_scene_trigger(const char *sceneId);
int kk_scene_delete_scene_embed(const char *sceneId);
int kk_scene_delete_scene_info(const char *sceneId);
int kk_scene_delete_scene_invokeservice(const char *sceneId);
int kk_scene_delete_scene_action(const char *sceneId,int isforword);
int kk_scene_insert_scene_action(const char* type,const char* deviceCode,int epNum,const char* propertyName,
const char* propertyValue,int delay,const char* sceneId,const char *gwdeviceCode);
int kk_scene_insert_scene_invokeService(const char* type,const char* identifier,const char* args,const char* sceneId);
int kk_scene_insert_scene_embed(int delay,const char* executeSceneId,const char* sceneId);
int kk_scene_insert_scene_timer(time_t startTime,char weekflag,const char* sceneId);
int kk_scene_insert_scene_condition(const char* type,int startTime,int endTime,int crossDay,
char repeat_days,const char* sceneId);
int kk_scene_insert_scene_trigger(const char* type,const char* deviceCode,int epNum,const char* propertyName,
const char* compareType,const char* compareValue,const char* sceneId,int isAnd);
int kk_scene_insert_scene_info(const char* name,int sceneType,int enable,const char* sceneId);
int kk_scene_update_scene_enable(int enable,const char *sceneId);
int kk_scene_db_init(void);
#endif #endif
...@@ -12,9 +12,16 @@ ...@@ -12,9 +12,16 @@
*************************************************************/ *************************************************************/
#include <stdio.h> #include <stdio.h>
#include <pthread.h>
#include "kk_scene_handle.h" #include "kk_scene_handle.h"
#include "kk_scene_db.h"
#include "kk_sub_db.h"
#include "kk_tsl_load.h"
#include "kk_dm_api.h"
#include "kk_dm_msg.h"
#include "kk_property_db.h"
#include "kk_hal.h"
#include "kk_log.h"
#include <time.h> #include <time.h>
...@@ -33,9 +40,9 @@ static kk_scene_timer_list_t *p_scene_timer_list = NULL; ...@@ -33,9 +40,9 @@ static kk_scene_timer_list_t *p_scene_timer_list = NULL;
extern time_t s_start_time; extern time_t s_start_time;
static kk_scene_action_t *p_kk_scene_action = NULL; static kk_scene_action_t *p_kk_scene_action = NULL;
static kk_scene_ctx_t s_kk_scene_ctx = {NULL}; static kk_scene_ctx_t s_kk_scene_ctx = {NULL};
int kk_scene_check_trigger_condition(const char *sceneId);
static int kk_scene_embed_find(const char *sceneId); static int kk_scene_embed_find(const char *sceneId);
static int kk_scene_invokeService_find(const char *sceneId); static int kk_scene_invokeService_find(const char *sceneId);
int kk_scene_push_timer_info(time_t starttime,int repeatday,char *sceneId);
/************************************************************* /*************************************************************
函数实现 函数实现
...@@ -44,11 +51,6 @@ static int kk_scene_invokeService_find(const char *sceneId); ...@@ -44,11 +51,6 @@ static int kk_scene_invokeService_find(const char *sceneId);
static int kk_scene_check_value_ex(const char * compareType,const char * compareValue1,const char * compareValue2) static int kk_scene_check_value_ex(const char * compareType,const char * compareValue1,const char * compareValue2)
{ {
int res = FAIL_RETURN; int res = FAIL_RETURN;
int type = 0;
int ivalue = 0;
int itemValue = 0;
double dvalue = 0;
double ditemValue = 0;
if(compareType == NULL || compareValue1 == NULL ||compareValue2 == NULL){ if(compareType == NULL || compareValue1 == NULL ||compareValue2 == NULL){
ERROR_PRINT("[%d]kk_scene_check_value fail!!!\n",__LINE__); ERROR_PRINT("[%d]kk_scene_check_value fail!!!\n",__LINE__);
...@@ -98,8 +100,6 @@ void _kk_scene_unlock(void) ...@@ -98,8 +100,6 @@ void _kk_scene_unlock(void)
} }
} }
#define KK_DEVICE_TSL_TYPE (0x08) #define KK_DEVICE_TSL_TYPE (0x08)
static kk_tsl_t *s_scene_shadow = NULL; static kk_tsl_t *s_scene_shadow = NULL;
static int kk_scene_tsl_load(void) static int kk_scene_tsl_load(void)
...@@ -151,14 +151,16 @@ static int kk_scene_timer_load(void) ...@@ -151,14 +151,16 @@ static int kk_scene_timer_load(void)
kk_scene_ctx_t *ctx = _kk_scene_get_ctx(); kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *sceneId = NULL; char *sceneId = NULL;
int starttime;
int repeatday;
char *sqlCmd = "select * from SceneTimerInfo;"; char *sqlCmd = "select * from SceneTimerInfo;";
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
sceneId = sqlite3_column_text(stmt, DB_SCENETIMER_SCENEID); sceneId = (char*)sqlite3_column_text(stmt, DB_SCENETIMER_SCENEID);
if(kk_scene_timer_check_able(sceneId) == SUCCESS_RETURN){ if(kk_scene_timer_check_able(sceneId) == SUCCESS_RETURN){
int starttime = sqlite3_column_int(stmt, DB_SCENETIMER_TIME); starttime = sqlite3_column_int(stmt, DB_SCENETIMER_TIME);
int repeatday = sqlite3_column_int(stmt, DB_SCENETIMER_WEEK); repeatday = sqlite3_column_int(stmt, DB_SCENETIMER_WEEK);
kk_scene_push_timer_info(starttime,repeatday,sceneId); kk_scene_push_timer_info(starttime,repeatday,sceneId);
} }
} }
...@@ -187,7 +189,7 @@ void *kk_scene_yield(void *args) ...@@ -187,7 +189,7 @@ void *kk_scene_yield(void *args)
kk_scene_embed_delay_t *embedDelayInfo = NULL; kk_scene_embed_delay_t *embedDelayInfo = NULL;
kk_scene_embed_delay_t *pTempEmbed = NULL; kk_scene_embed_delay_t *pTempEmbed = NULL;
kk_scene_timer_list_t *scene_timer_list = NULL; kk_scene_timer_list_t *scene_timer_list = NULL;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
while (1) { while (1) {
current_time = HAL_GetTime(); current_time = HAL_GetTime();
/****系统起来15s后开始定时处理****/ /****系统起来15s后开始定时处理****/
...@@ -201,8 +203,8 @@ void *kk_scene_yield(void *args) ...@@ -201,8 +203,8 @@ void *kk_scene_yield(void *args)
/*处理action delay*/ /*处理action delay*/
actionDelayInfo = p_delay_action_list; actionDelayInfo = p_delay_action_list;
while(actionDelayInfo){ while(actionDelayInfo){
INFO_PRINT("[%s][%d] current_time:%d\n",__FUNCTION__,__LINE__,current_time); INFO_PRINT("[%s][%d] current_time:%ld\n",__FUNCTION__,__LINE__,current_time);
INFO_PRINT("[%s][%d] actionDelayInfo->starttime:%d\n",__FUNCTION__,__LINE__,actionDelayInfo->starttime); INFO_PRINT("[%s][%d] actionDelayInfo->starttime:%ld\n",__FUNCTION__,__LINE__,actionDelayInfo->starttime);
if(current_time >= actionDelayInfo->starttime){ if(current_time >= actionDelayInfo->starttime){
INFO_PRINT("[%s][%d]\n",__FUNCTION__,__LINE__); INFO_PRINT("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_scene_send_action_msg(actionDelayInfo->action); kk_scene_send_action_msg(actionDelayInfo->action);
...@@ -230,8 +232,8 @@ void *kk_scene_yield(void *args) ...@@ -230,8 +232,8 @@ void *kk_scene_yield(void *args)
/*处理场景嵌套delay*/ /*处理场景嵌套delay*/
embedDelayInfo = p_delay_embed_list; embedDelayInfo = p_delay_embed_list;
while(embedDelayInfo){ while(embedDelayInfo){
INFO_PRINT("[%s][%d] current_time:%d\n",__FUNCTION__,__LINE__,current_time); INFO_PRINT("[%s][%d] current_time:%ld\n",__FUNCTION__,__LINE__,current_time);
INFO_PRINT("[%s][%d] embedDelayInfo->starttime:%d\n",__FUNCTION__,__LINE__,embedDelayInfo->starttime); INFO_PRINT("[%s][%d] embedDelayInfo->starttime:%ld\n",__FUNCTION__,__LINE__,embedDelayInfo->starttime);
if(current_time >= embedDelayInfo->starttime){ if(current_time >= embedDelayInfo->starttime){
kk_scene_execute_action(embedDelayInfo->executeSceneId,NULL); kk_scene_execute_action(embedDelayInfo->executeSceneId,NULL);
if(embedDelayInfo == p_delay_embed_list){ if(embedDelayInfo == p_delay_embed_list){
...@@ -258,8 +260,8 @@ void *kk_scene_yield(void *args) ...@@ -258,8 +260,8 @@ void *kk_scene_yield(void *args)
_kk_scene_lock(); _kk_scene_lock();
scene_timer_list = p_scene_timer_list; scene_timer_list = p_scene_timer_list;
while(scene_timer_list){ while(scene_timer_list){
INFO_PRINT("scene_timer_list->starttime:%d\n",scene_timer_list->starttime); INFO_PRINT("scene_timer_list->starttime:%ld\n",scene_timer_list->starttime);
INFO_PRINT("current_time %d\n",current_time); INFO_PRINT("current_time %ld\n",current_time);
if(scene_timer_list->starttime != 0 && current_time >= scene_timer_list->starttime){ if(scene_timer_list->starttime != 0 && current_time >= scene_timer_list->starttime){
if(kk_scene_check_trigger_condition(scene_timer_list->sceneId) == 0){ if(kk_scene_check_trigger_condition(scene_timer_list->sceneId) == 0){
kk_scene_execute_action(scene_timer_list->sceneId,NULL); kk_scene_execute_action(scene_timer_list->sceneId,NULL);
...@@ -305,7 +307,7 @@ int kk_scene_init(void) ...@@ -305,7 +307,7 @@ int kk_scene_init(void)
} }
kk_scene_timer_load(); kk_scene_timer_load();
res = pthread_create(&ctx->s_scene_thread, NULL, kk_scene_yield, NULL); res = pthread_create((pthread_t *)&ctx->s_scene_thread, NULL, kk_scene_yield, NULL);
if (res < 0) { if (res < 0) {
ERROR_PRINT("HAL_ThreadCreate mid Failed\n"); ERROR_PRINT("HAL_ThreadCreate mid Failed\n");
//IOT_Linkkit_Close(mid_ctx->master_devid); //IOT_Linkkit_Close(mid_ctx->master_devid);
...@@ -318,7 +320,6 @@ int kk_scene_init(void) ...@@ -318,7 +320,6 @@ int kk_scene_init(void)
static int kk_scene_action_info_add(kk_scene_action_info_ex_t **head,kk_scene_action_detail_t detail) static int kk_scene_action_info_add(kk_scene_action_info_ex_t **head,kk_scene_action_detail_t detail)
{ {
int len;
kk_scene_action_info_ex_t *ptr,*pre; kk_scene_action_info_ex_t *ptr,*pre;
ptr = pre = *head; ptr = pre = *head;
...@@ -356,7 +357,6 @@ static int kk_scene_action_info_add(kk_scene_action_info_ex_t **head,kk_scene_ac ...@@ -356,7 +357,6 @@ static int kk_scene_action_info_add(kk_scene_action_info_ex_t **head,kk_scene_ac
*************************************************************/ *************************************************************/
int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_action_detail_t detail) int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_action_detail_t detail)
{ {
int len;
kk_scene_action_t *ptr,*pre; kk_scene_action_t *ptr,*pre;
ptr = pre = p_kk_scene_action; ptr = pre = p_kk_scene_action;
...@@ -400,16 +400,16 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac ...@@ -400,16 +400,16 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
*************************************************************/ *************************************************************/
static int kk_scene_action_free(void) static int kk_scene_action_free(void)
{ {
int len;
kk_scene_action_t *ptr,*pnext; kk_scene_action_t *ptr,*pnext;
kk_scene_action_info_ex_t *actionTemp = NULL; kk_scene_action_info_ex_t *actionTemp = NULL;
kk_scene_action_info_ex_t *ptemp = NULL;
ptr = p_kk_scene_action; ptr = p_kk_scene_action;
while(ptr){ while(ptr){
pnext = ptr->next; pnext = ptr->next;
actionTemp = ptr->actionInfo; actionTemp = ptr->actionInfo;
while(actionTemp != NULL){ while(actionTemp != NULL){
kk_scene_action_info_ex_t *ptemp = actionTemp->next; ptemp = actionTemp->next;
//printf("kk_scene_action_free free:%p\n",actionTemp); //printf("kk_scene_action_free free:%p\n",actionTemp);
free(actionTemp); free(actionTemp);
actionTemp = NULL; actionTemp = NULL;
...@@ -457,18 +457,19 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac ...@@ -457,18 +457,19 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
char gwdevice[][DEVICE_CODE_MAXLEN] = {0}; char gwdevice[][DEVICE_CODE_MAXLEN] = {0};
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0;
char *gwdeviceCode = NULL; char *gwdeviceCode = NULL;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx(); kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
int idx=0,num = 0; int idx=0,num = 0;
int res = 0; int res = 0;
cJSON *root;
char *out = NULL;
sqlCmd = sqlite3_mprintf("select * from SceneActionInfo WHERE sceneId = '%s'",sceneId); sqlCmd = sqlite3_mprintf("select * from SceneActionInfo WHERE sceneId = '%s'",sceneId);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
next: next:
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
gwdeviceCode = sqlite3_column_text(stmt,DB_SCENEACTION_GWDEVICECODE); gwdeviceCode = (char*)sqlite3_column_text(stmt,DB_SCENEACTION_GWDEVICECODE);
if(kk_subDev_check_scene_support(gwdeviceCode) == 1){ if(kk_subDev_check_scene_support(gwdeviceCode) == 1){
for(idx = 0; idx < num;idx++){ for(idx = 0; idx < num;idx++){
/*此网关已经发送过*/ /*此网关已经发送过*/
...@@ -479,9 +480,9 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac ...@@ -479,9 +480,9 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
} }
memcpy(gwdevice[num],gwdeviceCode,strlen(gwdeviceCode)); memcpy(gwdevice[num],gwdeviceCode,strlen(gwdeviceCode));
num++; num++;
cJSON *root=cJSON_CreateObject(); root=cJSON_CreateObject();
cJSON_AddStringToObject(root,MSG_SCENE_SCENEID,sceneId); cJSON_AddStringToObject(root,MSG_SCENE_SCENEID,sceneId);
char *out=cJSON_Print(root); out=cJSON_Print(root);
res = kk_msg_execute_scene_delete(out,gwdeviceCode); res = kk_msg_execute_scene_delete(out,gwdeviceCode);
cJSON_Delete(root); cJSON_Delete(root);
free(out); free(out);
...@@ -502,18 +503,22 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac ...@@ -502,18 +503,22 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
int kk_scene_action_info_send(int isUpdate) int kk_scene_action_info_send(int isUpdate)
{ {
cJSON *root;
cJSON *array;
cJSON *info;
char *out;
kk_scene_action_t *ptr = p_kk_scene_action; kk_scene_action_t *ptr = p_kk_scene_action;
kk_scene_action_info_ex_t *ptmp = NULL; kk_scene_action_info_ex_t *ptmp = NULL;
if(ptr == NULL){ if(ptr == NULL){
return FAIL_RETURN; return FAIL_RETURN;
} }
while(ptr){ while(ptr){
cJSON *root=cJSON_CreateObject(); root=cJSON_CreateObject();
cJSON *array = cJSON_CreateArray(); array = cJSON_CreateArray();
cJSON_AddStringToObject(root,MSG_SCENE_SCENEID,ptr->sceneId); cJSON_AddStringToObject(root,MSG_SCENE_SCENEID,ptr->sceneId);
ptmp = ptr->actionInfo; ptmp = ptr->actionInfo;
while(ptr->actionInfo){ while(ptr->actionInfo){
cJSON *info=cJSON_CreateObject(); info=cJSON_CreateObject();
cJSON_AddStringToObject(info,MSG_DEVICE_CODE_STR,ptr->actionInfo->info.deviceCode); cJSON_AddStringToObject(info,MSG_DEVICE_CODE_STR,ptr->actionInfo->info.deviceCode);
cJSON_AddStringToObject(info,MSG_SCENE_PROPERTYNAME,ptr->actionInfo->info.propertyName); cJSON_AddStringToObject(info,MSG_SCENE_PROPERTYNAME,ptr->actionInfo->info.propertyName);
cJSON_AddStringToObject(info,MSG_SCENE_PROPERTYVALUE,ptr->actionInfo->info.propertyValue); cJSON_AddStringToObject(info,MSG_SCENE_PROPERTYVALUE,ptr->actionInfo->info.propertyValue);
...@@ -524,7 +529,7 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac ...@@ -524,7 +529,7 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
} }
ptr->actionInfo = ptmp; ptr->actionInfo = ptmp;
cJSON_AddItemToObject(root,MSG_SCENE_ACTIONS,array); cJSON_AddItemToObject(root,MSG_SCENE_ACTIONS,array);
char *out=cJSON_Print(root); out=cJSON_Print(root);
//printf("out:%s\n",out); //printf("out:%s\n",out);
kk_msg_execute_scene_set(out,ptr->gwdeviceCode,isUpdate); kk_msg_execute_scene_set(out,ptr->gwdeviceCode,isUpdate);
cJSON_Delete(root); cJSON_Delete(root);
...@@ -548,13 +553,14 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac ...@@ -548,13 +553,14 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
int kk_scene_muticontrol_info_send(cJSON* action,const char *gwdeviceCode,const char *sceneId,int isUpdate) int kk_scene_muticontrol_info_send(cJSON* action,const char *gwdeviceCode,const char *sceneId,int isUpdate)
{ {
char *out = NULL;
if(action == NULL || gwdeviceCode == NULL || sceneId == NULL){ if(action == NULL || gwdeviceCode == NULL || sceneId == NULL){
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
cJSON *root=cJSON_CreateObject(); cJSON *root=cJSON_CreateObject();
cJSON_AddStringToObject(root,MSG_SCENE_SCENEID,sceneId); cJSON_AddStringToObject(root,MSG_SCENE_SCENEID,sceneId);
cJSON_AddItemToObject(root,MSG_SCENE_ACTIONS,action); cJSON_AddItemToObject(root,MSG_SCENE_ACTIONS,action);
char *out=cJSON_Print(root); out=cJSON_Print(root);
printf("kk_scene_muticontrol_info_send:%s\n",out); printf("kk_scene_muticontrol_info_send:%s\n",out);
kk_msg_execute_scene_set(out,gwdeviceCode,isUpdate); kk_msg_execute_scene_set(out,gwdeviceCode,isUpdate);
cJSON_Delete(root); cJSON_Delete(root);
...@@ -574,18 +580,21 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac ...@@ -574,18 +580,21 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
static int kk_scene_parse_trigger_detail(const char *type,const cJSON *item,const char *sceneId,int isAnd) static int kk_scene_parse_trigger_detail(const char *type,const cJSON *item,const char *sceneId,int isAnd)
{ {
int res = FAIL_RETURN; int res = FAIL_RETURN;
cJSON *deviceCode,*epNum;
cJSON *propertyName,*compareType;
cJSON *compareValue;
if(type == NULL || item == NULL || sceneId == NULL){ if(type == NULL || item == NULL || sceneId == NULL){
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
cJSON *deviceCode = cJSON_GetObjectItem(item,MSG_DEVICE_CODE_STR); deviceCode = cJSON_GetObjectItem(item,MSG_DEVICE_CODE_STR);
if(deviceCode == NULL) return FAIL_RETURN; if(deviceCode == NULL) return FAIL_RETURN;
cJSON *epNum = cJSON_GetObjectItem(item,MSG_SCENE_EPNUM); epNum = cJSON_GetObjectItem(item,MSG_SCENE_EPNUM);
if(epNum == NULL) return FAIL_RETURN; if(epNum == NULL) return FAIL_RETURN;
cJSON *propertyName = cJSON_GetObjectItem(item,MSG_SCENE_PROPERTYNAME); propertyName = cJSON_GetObjectItem(item,MSG_SCENE_PROPERTYNAME);
if(propertyName == NULL) return FAIL_RETURN; if(propertyName == NULL) return FAIL_RETURN;
cJSON *compareType = cJSON_GetObjectItem(item,MSG_SCENE_COMPARETYPE); compareType = cJSON_GetObjectItem(item,MSG_SCENE_COMPARETYPE);
if(compareType == NULL) return FAIL_RETURN; if(compareType == NULL) return FAIL_RETURN;
cJSON *compareValue = cJSON_GetObjectItem(item,MSG_SCENE_COMPAREVALUE); compareValue = cJSON_GetObjectItem(item,MSG_SCENE_COMPAREVALUE);
if(compareValue == NULL) return FAIL_RETURN; if(compareValue == NULL) return FAIL_RETURN;
res = kk_scene_insert_scene_trigger(type,deviceCode->valuestring,epNum->valueint, res = kk_scene_insert_scene_trigger(type,deviceCode->valuestring,epNum->valueint,
propertyName->valuestring,compareType->valuestring,compareValue->valuestring,sceneId,isAnd); propertyName->valuestring,compareType->valuestring,compareValue->valuestring,sceneId,isAnd);
...@@ -605,19 +614,24 @@ static int kk_scene_parse_trigger_detail(const char *type,const cJSON *item,cons ...@@ -605,19 +614,24 @@ static int kk_scene_parse_trigger_detail(const char *type,const cJSON *item,cons
*************************************************************/ *************************************************************/
int kk_scene_parse_scene_trigger(const cJSON* str,const char *sceneId) int kk_scene_parse_scene_trigger(const cJSON* str,const char *sceneId)
{ {
cJSON *triggers;
cJSON *items, *item;
cJSON *type;
cJSON *week;
cJSON *time;
int res = 0; int res = 0;
int weekflag = 0; int weekflag = 0;
if(str == NULL || sceneId == NULL){ if(str == NULL || sceneId == NULL){
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
cJSON *triggers = cJSON_GetObjectItem(str,MSG_SCENE_TRIGGERS); triggers = cJSON_GetObjectItem(str,MSG_SCENE_TRIGGERS);
if(triggers == NULL) return FAIL_RETURN; if(triggers == NULL) return FAIL_RETURN;
cJSON *items = cJSON_GetObjectItem(triggers,MSG_SCENE_ITEMS); items = cJSON_GetObjectItem(triggers,MSG_SCENE_ITEMS);
if(items == NULL) return FAIL_RETURN; if(items == NULL) return FAIL_RETURN;
cJSON * item = items->child; item = items->child;
while(item != NULL){ while(item != NULL){
cJSON *type = cJSON_GetObjectItem(item,MSG_SCENE_TYPE); type = cJSON_GetObjectItem(item,MSG_SCENE_TYPE);
if(type == NULL) return FAIL_RETURN; if(type == NULL) return FAIL_RETURN;
if(!strcmp("trigger/thing/property",type->valuestring)){ if(!strcmp("trigger/thing/property",type->valuestring)){
res = kk_scene_parse_trigger_detail(type->valuestring,item,sceneId,0); res = kk_scene_parse_trigger_detail(type->valuestring,item,sceneId,0);
...@@ -627,15 +641,15 @@ int kk_scene_parse_scene_trigger(const cJSON* str,const char *sceneId) ...@@ -627,15 +641,15 @@ int kk_scene_parse_scene_trigger(const cJSON* str,const char *sceneId)
} }
} }
else if(!strcmp("trigger/timing",type->valuestring)){ else if(!strcmp("trigger/timing",type->valuestring)){
cJSON *week = cJSON_GetObjectItem(item,MSG_SCENE_WEEK); week = cJSON_GetObjectItem(item,MSG_SCENE_WEEK);
if(week == NULL) return FAIL_RETURN; if(week == NULL) return FAIL_RETURN;
weekflag = kk_scene_parse_repeatday(week); weekflag = kk_scene_parse_repeatday(week);
cJSON *time = cJSON_GetObjectItem(item,MSG_SCENE_TIME); time = cJSON_GetObjectItem(item,MSG_SCENE_TIME);
if(time == NULL) return FAIL_RETURN; if(time == NULL) return FAIL_RETURN;
time_t current = HAL_GetTime(); time_t current = HAL_GetTime();
time_t newStart = kk_scene_creat_timer_starttime(weekflag,atoi(time->valuestring),current); time_t newStart = kk_scene_creat_timer_starttime(weekflag,atoi(time->valuestring),current);
kk_scene_insert_scene_timer(newStart,weekflag,sceneId); kk_scene_insert_scene_timer(newStart,weekflag,sceneId);
kk_scene_push_timer_info(newStart,weekflag,sceneId); kk_scene_push_timer_info(newStart,weekflag,(char*)sceneId);
} }
item = item->next; item = item->next;
} }
...@@ -796,31 +810,36 @@ int kk_scene_push_timer_info(time_t starttime,int repeatday,char *sceneId) ...@@ -796,31 +810,36 @@ int kk_scene_push_timer_info(time_t starttime,int repeatday,char *sceneId)
*返 回 值: 0:成功;其他:失败 *返 回 值: 0:成功;其他:失败
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
int kk_scene_parse_scene_condition(const cJSON* str,const char *sceneId) int kk_scene_parse_scene_condition(const cJSON* str,const char *sceneId)
{ {
char weekflag = 0; char weekflag = 0;
int res = 0; int res = 0;
cJSON *conditon,*items,*item;
cJSON *type;
cJSON *startTime;
cJSON *endTime;
cJSON *repeatday;
if(str == NULL || sceneId == NULL){ if(str == NULL || sceneId == NULL){
ERROR_PRINT("kk_scene_parse_scene_condition failed\n"); ERROR_PRINT("kk_scene_parse_scene_condition failed\n");
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
cJSON *conditon = cJSON_GetObjectItem(str,MSG_SCENE_CONDITIONS); conditon = cJSON_GetObjectItem(str,MSG_SCENE_CONDITIONS);
if(conditon == NULL) return FAIL_RETURN; if(conditon == NULL) return FAIL_RETURN;
cJSON *items = cJSON_GetObjectItem(conditon,MSG_SCENE_ITEMS); items = cJSON_GetObjectItem(conditon,MSG_SCENE_ITEMS);
if(items == NULL) return FAIL_RETURN; if(items == NULL) return FAIL_RETURN;
cJSON * item = items->child; item = items->child;
while(item != NULL){ while(item != NULL){
cJSON *type = cJSON_GetObjectItem(item,MSG_SCENE_TYPE); type = cJSON_GetObjectItem(item,MSG_SCENE_TYPE);
if(type == NULL) return FAIL_RETURN; if(type == NULL) return FAIL_RETURN;
if(!strcmp("condition/timeRange",type->valuestring)){ if(!strcmp("condition/timeRange",type->valuestring)){
cJSON *startTime = cJSON_GetObjectItem(item,MSG_SCENE_STARTTIME); startTime = cJSON_GetObjectItem(item,MSG_SCENE_STARTTIME);
if(startTime == NULL) return FAIL_RETURN; if(startTime == NULL) return FAIL_RETURN;
cJSON *endTime = cJSON_GetObjectItem(item,MSG_SCENE_ENDTIME); endTime = cJSON_GetObjectItem(item,MSG_SCENE_ENDTIME);
if(endTime == NULL) return FAIL_RETURN; if(endTime == NULL) return FAIL_RETURN;
cJSON *repeatday = cJSON_GetObjectItem(item,MSG_SCENE_REPEATDAYS); repeatday = cJSON_GetObjectItem(item,MSG_SCENE_REPEATDAYS);
if(repeatday == NULL) return FAIL_RETURN; if(repeatday == NULL) return FAIL_RETURN;
weekflag = kk_scene_parse_repeatday(repeatday); weekflag = kk_scene_parse_repeatday(repeatday);
//kk_scene_push_timer_info(startTime->valueint,endTime->valueint,weekflag,sceneId); //kk_scene_push_timer_info(startTime->valueint,endTime->valueint,weekflag,sceneId);
...@@ -857,59 +876,74 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat ...@@ -857,59 +876,74 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat
{ {
int res = 0; int res = 0;
int propertySetType = 0; int propertySetType = 0;
cJSON *action;
cJSON * item;
cJSON *type;
cJSON *delay;
cJSON *exeucteSceneId;
cJSON *identifier;
cJSON *arg;
char * argStr;
cJSON *propertyName;
cJSON *propertyValue;
cJSON *productType;
cJSON *deviceCode;
cJSON *epNum;
int iepnum;
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
if(str == NULL || sceneId == NULL){ if(str == NULL || sceneId == NULL){
ERROR_PRINT("kk_scene_parse_scene_action failed\n"); ERROR_PRINT("kk_scene_parse_scene_action failed\n");
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
cJSON *action = cJSON_GetObjectItem(str,MSG_SCENE_ACTIONS); action = cJSON_GetObjectItem(str,MSG_SCENE_ACTIONS);
if(action == NULL) return FAIL_RETURN; if(action == NULL) return FAIL_RETURN;
cJSON * item = action->child; item = action->child;
while(item != NULL){ while(item != NULL){
cJSON *type = cJSON_GetObjectItem(item,MSG_SCENE_TYPE); type = cJSON_GetObjectItem(item,MSG_SCENE_TYPE);
if(type == NULL) return FAIL_RETURN; if(type == NULL) return FAIL_RETURN;
/*内嵌场景设置*/ /*内嵌场景设置*/
if(!strcmp(type->valuestring,"action/scene")){ if(!strcmp(type->valuestring,"action/scene")){
cJSON *delay = cJSON_GetObjectItem(item,MSG_SCENE_DELAY); delay = cJSON_GetObjectItem(item,MSG_SCENE_DELAY);
if(delay == NULL) return FAIL_RETURN; if(delay == NULL) return FAIL_RETURN;
cJSON *exeucteSceneId = cJSON_GetObjectItem(item,MSG_SCENE_SCENEID); exeucteSceneId = cJSON_GetObjectItem(item,MSG_SCENE_SCENEID);
if(exeucteSceneId == NULL) return FAIL_RETURN; if(exeucteSceneId == NULL) return FAIL_RETURN;
kk_scene_insert_scene_embed(delay->valueint,exeucteSceneId->valuestring,sceneId); kk_scene_insert_scene_embed(delay->valueint,exeucteSceneId->valuestring,sceneId);
} }
else if(!strcmp(type->valuestring,"action/thing/invokeService")){//场景服务,包含场景使能等 else if(!strcmp(type->valuestring,"action/thing/invokeService")){//场景服务,包含场景使能等
cJSON *identifier = cJSON_GetObjectItem(item,MSG_INDENTIFIER_STR); identifier = cJSON_GetObjectItem(item,MSG_INDENTIFIER_STR);
if(identifier == NULL) return FAIL_RETURN; if(identifier == NULL) return FAIL_RETURN;
cJSON *arg = cJSON_GetObjectItem(item,MSG_COMMON_ARGS); arg = cJSON_GetObjectItem(item,MSG_COMMON_ARGS);
if(arg == NULL) return FAIL_RETURN; if(arg == NULL) return FAIL_RETURN;
char * argStr = cJSON_PrintUnformatted(arg); argStr = cJSON_PrintUnformatted(arg);
kk_scene_insert_scene_invokeService(type->valuestring,identifier->valuestring,argStr,sceneId); kk_scene_insert_scene_invokeService(type->valuestring,identifier->valuestring,argStr,sceneId);
free(argStr); free(argStr);
} }
else else
{ {
propertySetType = 1; propertySetType = 1;
cJSON *propertyName = cJSON_GetObjectItem(item,MSG_SCENE_PROPERTYNAME); propertyName = cJSON_GetObjectItem(item,MSG_SCENE_PROPERTYNAME);
if(propertyName == NULL) return FAIL_RETURN; if(propertyName == NULL) return FAIL_RETURN;
cJSON *propertyValue = cJSON_GetObjectItem(item,MSG_SCENE_PROPERTYVALUE); propertyValue = cJSON_GetObjectItem(item,MSG_SCENE_PROPERTYVALUE);
if(propertyValue == NULL) return FAIL_RETURN; if(propertyValue == NULL) return FAIL_RETURN;
cJSON *productType = cJSON_GetObjectItem(item,MSG_PRODUCT_TYPE_STR); productType = cJSON_GetObjectItem(item,MSG_PRODUCT_TYPE_STR);
if(productType != NULL){ if(productType != NULL){
kk_subDev_set_action_by_productType(productType->valuestring,sceneId,propertyName->valuestring, kk_subDev_set_action_by_productType(productType->valuestring,sceneId,propertyName->valuestring,
propertyValue->valuestring,type->valuestring); propertyValue->valuestring,type->valuestring);
} }
else{ else{
cJSON *deviceCode = cJSON_GetObjectItem(item,MSG_DEVICE_CODE_STR); deviceCode = cJSON_GetObjectItem(item,MSG_DEVICE_CODE_STR);
if(deviceCode == NULL) return FAIL_RETURN; if(deviceCode == NULL) return FAIL_RETURN;
cJSON *epNum = cJSON_GetObjectItem(item,MSG_SCENE_EPNUM); epNum = cJSON_GetObjectItem(item,MSG_SCENE_EPNUM);
if(epNum == NULL){ if(epNum == NULL){
epNum = 1; iepnum = 1;
}else{ }else{
epNum = epNum->valueint; iepnum = epNum->valueint;
} }
cJSON *delay = cJSON_GetObjectItem(item,MSG_SCENE_DELAY); delay = cJSON_GetObjectItem(item,MSG_SCENE_DELAY);
if(delay == NULL) return FAIL_RETURN; if(delay == NULL) return FAIL_RETURN;
delay = delay->valueint; int idelay = delay->valueint;
res = dm_mgr_get_device_by_devicecode(deviceCode->valuestring,&node); res = dm_mgr_get_device_by_devicecode(deviceCode->valuestring,&node);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
item = item->next; item = item->next;
...@@ -920,13 +954,13 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat ...@@ -920,13 +954,13 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat
memcpy(info.deviceCode,node->deviceCode,strlen(node->deviceCode)); memcpy(info.deviceCode,node->deviceCode,strlen(node->deviceCode));
memcpy(info.propertyName,propertyName->valuestring,strlen(propertyName->valuestring)); memcpy(info.propertyName,propertyName->valuestring,strlen(propertyName->valuestring));
memcpy(info.propertyValue,propertyValue->valuestring,strlen(propertyValue->valuestring)); memcpy(info.propertyValue,propertyValue->valuestring,strlen(propertyValue->valuestring));
info.epNum = epNum; info.epNum = iepnum;
info.delay = delay; info.delay = idelay;
kk_scene_action_add(node->fatherDeviceCode,sceneId,info); kk_scene_action_add(node->fatherDeviceCode,sceneId,info);
} }
res = kk_scene_insert_scene_action(type->valuestring,node->deviceCode,epNum, res = kk_scene_insert_scene_action(type->valuestring,node->deviceCode,iepnum,
propertyName->valuestring,propertyValue->valuestring,delay,sceneId,node->fatherDeviceCode); propertyName->valuestring,propertyValue->valuestring,idelay,sceneId,node->fatherDeviceCode);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
INFO_PRINT("kk_scene_insert_scene_action fail!!!\n"); INFO_PRINT("kk_scene_insert_scene_action fail!!!\n");
return res; return res;
...@@ -955,7 +989,7 @@ int kk_scene_parse_scene_muticontrol(const cJSON* str,const char *sceneId,int is ...@@ -955,7 +989,7 @@ int kk_scene_parse_scene_muticontrol(const cJSON* str,const char *sceneId,int is
cJSON *type = NULL; cJSON *type = NULL;
cJSON *deviceCode = NULL; cJSON *deviceCode = NULL;
cJSON *epNum = NULL; cJSON *epNum = NULL;
cJSON *arrayParam = NULL; //cJSON *arrayParam = NULL;
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
if(str == NULL){ if(str == NULL){
ERROR_PRINT("kk_scene_parse_scene_muticontrol failed\n"); ERROR_PRINT("kk_scene_parse_scene_muticontrol failed\n");
...@@ -1190,10 +1224,10 @@ static int kk_scene_update_starttime(kk_scene_timer_list_t *pInfo,time_t current ...@@ -1190,10 +1224,10 @@ static int kk_scene_update_starttime(kk_scene_timer_list_t *pInfo,time_t current
static time_t kk_scene_creat_new_starttime(time_t starttime,time_t current) static time_t kk_scene_creat_new_starttime(time_t starttime,time_t current)
{ {
int hour,min,sec; int hour,min;
time_t newTime = 0; time_t newTime = 0;
INFO_PRINT("[%d]startTime :%d\n",__LINE__,starttime); INFO_PRINT("[%d]startTime :%ld\n",__LINE__,starttime);
hour = starttime/3600; hour = starttime/3600;
min = starttime%3600/60; min = starttime%3600/60;
...@@ -1219,7 +1253,6 @@ static time_t kk_scene_creat_new_starttime(time_t starttime,time_t current) ...@@ -1219,7 +1253,6 @@ static time_t kk_scene_creat_new_starttime(time_t starttime,time_t current)
static time_t kk_scene_creat_timer_starttime(int week,int starttime,time_t current) static time_t kk_scene_creat_timer_starttime(int week,int starttime,time_t current)
{ {
int hour,min,sec;
time_t newTime = 0; time_t newTime = 0;
char curWeek = 0; char curWeek = 0;
int startNew = 0; int startNew = 0;
...@@ -1227,7 +1260,7 @@ static time_t kk_scene_creat_timer_starttime(int week,int starttime,time_t curre ...@@ -1227,7 +1260,7 @@ static time_t kk_scene_creat_timer_starttime(int week,int starttime,time_t curre
curWeek = kk_scene_date_to_week(current); curWeek = kk_scene_date_to_week(current);
startNew = starttime + g_timezone*3600; startNew = starttime + g_timezone*3600;
startNew = (startNew - 86400) >= 0?(startNew - 86400) : startNew; startNew = (startNew - 86400) >= 0?(startNew - 86400) : startNew;
INFO_PRINT("kk_scene_creat_timer_starttime:%ld\n",startNew); INFO_PRINT("kk_scene_creat_timer_starttime:%d\n",startNew);
/*today is not repeat day*/ /*today is not repeat day*/
if((week > 0)&&(!(week &(1<<(curWeek-1))))) if((week > 0)&&(!(week &(1<<(curWeek-1)))))
...@@ -1242,13 +1275,16 @@ static time_t kk_scene_creat_timer_starttime(int week,int starttime,time_t curre ...@@ -1242,13 +1275,16 @@ static time_t kk_scene_creat_timer_starttime(int week,int starttime,time_t curre
if(curWeek & week){ if(curWeek & week){
newTime = current + 86400*i; newTime = current + 86400*i;
return kk_scene_creat_new_starttime(startNew,newTime); return kk_scene_creat_new_starttime(startNew,newTime);
} }else{
return kk_scene_creat_new_starttime(startNew,current);
}
} }
} }
else else
{ {
return kk_scene_creat_new_starttime(startNew,current); return kk_scene_creat_new_starttime(startNew,current);
} }
} }
/************************************************************ /************************************************************
...@@ -1266,12 +1302,10 @@ int kk_scene_check_trigger_condition(const char *sceneId) ...@@ -1266,12 +1302,10 @@ int kk_scene_check_trigger_condition(const char *sceneId)
char *identifier = NULL; char *identifier = NULL;
char *compareType = NULL; char *compareType = NULL;
char *compareValue = NULL; char *compareValue = NULL;
int propertyValueType = 0;
int conditionFlag = 0; int conditionFlag = 0;
int sceneType = 0,isEnable = 0; int sceneType = 0,isEnable = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char currentValue[64] = {0}; char currentValue[64] = {0};
dm_mgr_dev_node_t *node = NULL;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx(); kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
res = kk_scene_get_scene_info(sceneId,&sceneType,&isEnable); res = kk_scene_get_scene_info(sceneId,&sceneType,&isEnable);
if(res != SUCCESS_RETURN || isEnable != 1){ if(res != SUCCESS_RETURN || isEnable != 1){
...@@ -1283,10 +1317,10 @@ int kk_scene_check_trigger_condition(const char *sceneId) ...@@ -1283,10 +1317,10 @@ int kk_scene_check_trigger_condition(const char *sceneId)
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
conditionFlag = 1; conditionFlag = 1;
pdeviceCode = sqlite3_column_text(stmt, DB_SCENETRIGGER_DEVICECODE); pdeviceCode = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_DEVICECODE);
identifier = sqlite3_column_text(stmt,DB_SCENETRIGGER_PROPERTYNAME); identifier = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_PROPERTYNAME);
compareType = sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPARETYPE); compareType = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPARETYPE);
compareValue = sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPAREVALUE); compareValue = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPAREVALUE);
kk_property_db_get_value_directly(pdeviceCode,identifier,currentValue); kk_property_db_get_value_directly(pdeviceCode,identifier,currentValue);
INFO_PRINT("currentValue:%s\n",currentValue); INFO_PRINT("currentValue:%s\n",currentValue);
...@@ -1321,7 +1355,7 @@ int kk_scene_check_condition(const char *sceneId) ...@@ -1321,7 +1355,7 @@ int kk_scene_check_condition(const char *sceneId)
char curWeek = 0; char curWeek = 0;
char repeatday = 0; char repeatday = 0;
time_t startTime = 0,startTime_m = 0; time_t startTime = 0,startTime_m = 0;
time_t endTime = 0,endTime_m = 0; time_t endTime = 0;
int duration = 0; int duration = 0;
int crossDay = 0; int crossDay = 0;
int conditionFlag = 0; int conditionFlag = 0;
...@@ -1342,7 +1376,7 @@ int kk_scene_check_condition(const char *sceneId) ...@@ -1342,7 +1376,7 @@ int kk_scene_check_condition(const char *sceneId)
startTime = (startTime - 86400) >= 0?(startTime - 86400) : startTime; startTime = (startTime - 86400) >= 0?(startTime - 86400) : startTime;
endTime = endTime + g_timezone*3600; endTime = endTime + g_timezone*3600;
endTime = (endTime - 86400) >= 0?(endTime - 86400) : endTime; endTime = (endTime - 86400) >= 0?(endTime - 86400) : endTime;
INFO_PRINT("[endTime:%d][startTime:%d]\n",endTime,startTime); INFO_PRINT("[endTime:%ld][startTime:%ld]\n",endTime,startTime);
if(endTime < startTime){ if(endTime < startTime){
duration = 86400- (startTime - endTime); duration = 86400- (startTime - endTime);
crossDay = 1; crossDay = 1;
...@@ -1618,13 +1652,12 @@ static int kk_scene_start_action(const char *deviceCode,const char *propertyName ...@@ -1618,13 +1652,12 @@ static int kk_scene_start_action(const char *deviceCode,const char *propertyName
INFO_PRINT("[%s][%d]kk_scene_start_action called\n",__FUNCTION__,__LINE__); INFO_PRINT("[%s][%d]kk_scene_start_action called\n",__FUNCTION__,__LINE__);
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
kk_scene_action_info_t *actionInfo = NULL; kk_scene_action_info_t *actionInfo = NULL;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
if(deviceCode == NULL || propertyName == NULL || valueS == NULL){ if(deviceCode == NULL || propertyName == NULL || valueS == NULL){
ERROR_PRINT("[%d]kk_scene_send_action fail!!!\n",__LINE__); ERROR_PRINT("[%d]kk_scene_send_action fail!!!\n",__LINE__);
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
res = dm_mgr_get_device_by_devicecode(deviceCode, &node); res = dm_mgr_get_device_by_devicecode((char*)deviceCode, &node);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
return FAIL_RETURN; return FAIL_RETURN;
} }
...@@ -1683,7 +1716,7 @@ int kk_scene_execute_action(const char* sceneId,char *msgId) ...@@ -1683,7 +1716,7 @@ int kk_scene_execute_action(const char* sceneId,char *msgId)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
next: next:
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
gwdeviceCode = sqlite3_column_text(stmt,DB_SCENEACTION_GWDEVICECODE); gwdeviceCode = (char*)sqlite3_column_text(stmt,DB_SCENEACTION_GWDEVICECODE);
if(kk_subDev_check_scene_support(gwdeviceCode) == 1){ if(kk_subDev_check_scene_support(gwdeviceCode) == 1){
for(idx = 0; idx < num;idx++){ for(idx = 0; idx < num;idx++){
if(!strcmp(gwdevice[idx],gwdeviceCode)){ if(!strcmp(gwdevice[idx],gwdeviceCode)){
...@@ -1700,9 +1733,9 @@ next: ...@@ -1700,9 +1733,9 @@ next:
free(out); free(out);
} }
else{ else{
deviceCode = sqlite3_column_text(stmt, DB_SCENEACTION_DEVICECODE); deviceCode = (char*)sqlite3_column_text(stmt, DB_SCENEACTION_DEVICECODE);
propertyName = sqlite3_column_text(stmt,DB_SCENEACTION_PROPERTYNAME); propertyName = (char*)sqlite3_column_text(stmt,DB_SCENEACTION_PROPERTYNAME);
propertyValue = sqlite3_column_text(stmt,DB_SCENEACTION_PROPERTYVALUE); propertyValue = (char*)sqlite3_column_text(stmt,DB_SCENEACTION_PROPERTYVALUE);
delay = sqlite3_column_int(stmt,DB_SCENEACTION_DELAY); delay = sqlite3_column_int(stmt,DB_SCENEACTION_DELAY);
res = kk_scene_start_action(deviceCode,propertyName,propertyValue,delay); res = kk_scene_start_action(deviceCode,propertyName,propertyValue,delay);
} }
...@@ -1773,7 +1806,7 @@ static int kk_scene_embed_find(const char *sceneId) ...@@ -1773,7 +1806,7 @@ static int kk_scene_embed_find(const char *sceneId)
INFO_PRINT("kk_scene_embed_find:%s\n",sceneId); INFO_PRINT("kk_scene_embed_find:%s\n",sceneId);
find = 1; find = 1;
delay = sqlite3_column_int(stmt,DB_SCENEEMBED_WEEK); delay = sqlite3_column_int(stmt,DB_SCENEEMBED_WEEK);
executeSceneId = sqlite3_column_text(stmt,DB_SCENEEMBED_EXECUTESCENEID); executeSceneId = (char*)sqlite3_column_text(stmt,DB_SCENEEMBED_EXECUTESCENEID);
/*如果有延时,加入到队列*/ /*如果有延时,加入到队列*/
if(delay > 0){ if(delay > 0){
kk_scene_push_embed_list(delay,executeSceneId); kk_scene_push_embed_list(delay,executeSceneId);
...@@ -1837,10 +1870,10 @@ static int kk_scene_invokeService_find(const char *sceneId) ...@@ -1837,10 +1870,10 @@ static int kk_scene_invokeService_find(const char *sceneId)
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
find = 1; find = 1;
INFO_PRINT("kk_scene_invokeService_find:%s\n",sceneId); INFO_PRINT("kk_scene_invokeService_find:%s\n",sceneId);
identifier = sqlite3_column_text(stmt,DB_SCENEINVOKESERVICE_IDENTIFIER); identifier = (char*)sqlite3_column_text(stmt,DB_SCENEINVOKESERVICE_IDENTIFIER);
//场景使能控制 //场景使能控制
if(!strcmp(identifier,MSG_SCENE_ENABLESCENE)){ if(!strcmp(identifier,MSG_SCENE_ENABLESCENE)){
args = sqlite3_column_text(stmt,DB_SCENEINVOKESERVICE_args); args = (char*)sqlite3_column_text(stmt,DB_SCENEINVOKESERVICE_args);
kk_scene_enableScene_handle(args); kk_scene_enableScene_handle(args);
break; break;
} }
...@@ -1861,7 +1894,6 @@ int kk_scene_query_trigger_info(const char *deviceCode,cJSON *param) ...@@ -1861,7 +1894,6 @@ int kk_scene_query_trigger_info(const char *deviceCode,cJSON *param)
{ {
int res = FAIL_RETURN; int res = FAIL_RETURN;
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0;
char *sceneId = NULL; char *sceneId = NULL;
char *identifier = NULL; char *identifier = NULL;
char *compareType = NULL; char *compareType = NULL;
...@@ -1875,10 +1907,10 @@ int kk_scene_query_trigger_info(const char *deviceCode,cJSON *param) ...@@ -1875,10 +1907,10 @@ int kk_scene_query_trigger_info(const char *deviceCode,cJSON *param)
sqlCmd = sqlite3_mprintf("select * from SceneTriggerInfo WHERE deviceCode= '%s'",deviceCode); sqlCmd = sqlite3_mprintf("select * from SceneTriggerInfo WHERE deviceCode= '%s'",deviceCode);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
sceneId = sqlite3_column_text(stmt, DB_SCENETRIGGER_SCENEID); sceneId = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_SCENEID);
identifier = sqlite3_column_text(stmt,DB_SCENETRIGGER_PROPERTYNAME); identifier = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_PROPERTYNAME);
compareType = sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPARETYPE); compareType = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPARETYPE);
compareValue = sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPAREVALUE); compareValue = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPAREVALUE);
isAnd = sqlite3_column_int(stmt,DB_SCENETRIGGER_ISAND); isAnd = sqlite3_column_int(stmt,DB_SCENETRIGGER_ISAND);
res = kk_scene_get_scene_info(sceneId,&sceneType,&isEnable); res = kk_scene_get_scene_info(sceneId,&sceneType,&isEnable);
if(res == SUCCESS_RETURN && isEnable && isAnd == 0){ if(res == SUCCESS_RETURN && isEnable && isAnd == 0){
...@@ -1940,7 +1972,7 @@ int kk_scene_execute_scene(const char *sceneId,const char *msgId) ...@@ -1940,7 +1972,7 @@ int kk_scene_execute_scene(const char *sceneId,const char *msgId)
//res = kk_scene_check_condition(sceneId); //res = kk_scene_check_condition(sceneId);
//if(res == SUCCESS_RETURN){ //if(res == SUCCESS_RETURN){
_kk_scene_lock(); _kk_scene_lock();
res = kk_scene_execute_action(sceneId,msgId); res = kk_scene_execute_action(sceneId,(char*)msgId);
_kk_scene_unlock(); _kk_scene_unlock();
//} //}
} }
......
...@@ -72,5 +72,15 @@ int kk_scene_execute_action(const char* sceneId,char *msgId); ...@@ -72,5 +72,15 @@ int kk_scene_execute_action(const char* sceneId,char *msgId);
int kk_scene_check_condition(const char *sceneId); int kk_scene_check_condition(const char *sceneId);
int kk_scene_check_trigger_condition(const char *sceneId); int kk_scene_check_trigger_condition(const char *sceneId);
int kk_scene_get_scene_info(const char* sceneId,int *sceneType,int *enable); int kk_scene_get_scene_info(const char* sceneId,int *sceneType,int *enable);
void kk_scene_remove_timer_info(char *sceneId,int lockflag);
kk_scene_ctx_t *_kk_scene_get_ctx(void);
void _kk_scene_lock(void);
void _kk_scene_unlock(void);
int kk_scene_parse_addscene(const cJSON* args,char *sceneId,int isUpdate,const char *msgId);
kk_tsl_t * kk_scene_shadow(void);
int kk_scene_parse_updatescene(const cJSON* arg,char *sceneId);
int kk_scene_parse_deletescene(char *sceneId);
int kk_scene_delete_send_to_gw(const char *sceneId);
#endif #endif
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
#include "kk_dm_mng.h" #include "kk_dm_mng.h"
#include "sqlite3.h" #include "sqlite3.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_hal.h"
#include "kk_timer_handle.h" #include "kk_timer_handle.h"
//#define KK_AREA_DB_FILE "kk_area.db" //#define KK_AREA_DB_FILE "kk_area.db"
...@@ -66,7 +67,7 @@ static void _kk_timer_unlock(void) ...@@ -66,7 +67,7 @@ static void _kk_timer_unlock(void)
void *kk_timer_yield(void *args) void *kk_timer_yield(void *args)
{ {
uint64_t current_time = 0; uint64_t current_time = 0;
kk_timer_info_t *ptr = NULL,*ptemp = NULL; kk_timer_info_t *ptr = NULL;
while (1) { while (1) {
current_time = HAL_GetTime(); current_time = HAL_GetTime();
_kk_timer_lock(); _kk_timer_lock();
...@@ -135,8 +136,6 @@ int kk_service_get_array_size(kk_tsl_t *shadow) ...@@ -135,8 +136,6 @@ int kk_service_get_array_size(kk_tsl_t *shadow)
int kk_service_localtimer_set(kk_tsl_t *shadow,const char *timer,int isEnable,int isValid,int TimezoneOffset,const char *Targets,int size) int kk_service_localtimer_set(kk_tsl_t *shadow,const char *timer,int isEnable,int isValid,int TimezoneOffset,const char *Targets,int size)
{ {
kk_timer_ctx_t *ctx = _kk_timer_get_ctx(); kk_timer_ctx_t *ctx = _kk_timer_get_ctx();
int res = 0;
int index = 0;
char identifier_name[256] = {0}; char identifier_name[256] = {0};
if(shadow == NULL){ if(shadow == NULL){
return INVALID_PARAMETER; return INVALID_PARAMETER;
...@@ -175,8 +174,6 @@ int kk_service_localtimer_set(kk_tsl_t *shadow,const char *timer,int isEnable,in ...@@ -175,8 +174,6 @@ int kk_service_localtimer_set(kk_tsl_t *shadow,const char *timer,int isEnable,in
int kk_service_setCountDown_set(kk_tsl_t *shadow,int delaytime,int CurrentTime,int isEnable,int isValid,const char *Targets,int size) int kk_service_setCountDown_set(kk_tsl_t *shadow,int delaytime,int CurrentTime,int isEnable,int isValid,const char *Targets,int size)
{ {
kk_timer_ctx_t *ctx = _kk_timer_get_ctx(); kk_timer_ctx_t *ctx = _kk_timer_get_ctx();
int res = 0;
int index = 0;
char identifier_name[256] = {0}; char identifier_name[256] = {0};
if(shadow == NULL){ if(shadow == NULL){
return INVALID_PARAMETER; return INVALID_PARAMETER;
......
...@@ -370,8 +370,7 @@ static int _kk_msg_set_object(kk_msg_set_type_t type, kk_tsl_t *dev_shadow, char ...@@ -370,8 +370,7 @@ static int _kk_msg_set_object(kk_msg_set_type_t type, kk_tsl_t *dev_shadow, char
int _kk_msg_property_set(kk_tsl_t *dev_shadow, kk_msg_request_payload_t *request) int _kk_msg_property_set(kk_tsl_t *dev_shadow, kk_msg_request_payload_t *request)
{ {
int res = 0, message_len = 0; int res = 0;
char *message = NULL;
lite_cjson_t lite; lite_cjson_t lite;
if (request == NULL) { if (request == NULL) {
...@@ -998,7 +997,6 @@ int kk_tsl_get_value(kk_tsl_get_t method_get, kk_tsl_t * dev_shadow, const char ...@@ -998,7 +997,6 @@ int kk_tsl_get_value(kk_tsl_get_t method_get, kk_tsl_t * dev_shadow, const char
char **value_str) char **value_str)
{ {
int res = 0; int res = 0;
kk_tsl_api_ctx_t *kk_tsl_api_ctx = _kk_tsl_api_get_ctx();
if ( identifier == NULL || (value == NULL && value_str == NULL)) { if ( identifier == NULL || (value == NULL && value_str == NULL)) {
ERROR_PRINT("Invalid Parameter"); ERROR_PRINT("Invalid Parameter");
...@@ -1052,7 +1050,6 @@ int kk_tsl_set_value(kk_tsl_set_t set, kk_tsl_t * dev_shadow, const char *identi ...@@ -1052,7 +1050,6 @@ int kk_tsl_set_value(kk_tsl_set_t set, kk_tsl_t * dev_shadow, const char *identi
int index = 0; int index = 0;
kk_tsl_event_t *property = NULL; kk_tsl_event_t *property = NULL;
char *e_identifier = NULL; char *e_identifier = NULL;
kk_tsl_api_ctx_t *kk_tsl_api_ctx = _kk_tsl_api_get_ctx();
if ( identifier == NULL || (value == NULL && value_str == NULL)) { if ( identifier == NULL || (value == NULL && value_str == NULL)) {
ERROR_PRINT("Invalid Parameter"); ERROR_PRINT("Invalid Parameter");
...@@ -1142,7 +1139,7 @@ int kk_msg_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli, ...@@ -1142,7 +1139,7 @@ int kk_msg_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli,
int kk_tsl_property_set_by_shadow(kk_tsl_t* dev_shadow, const char *payload, unsigned int payload_len) int kk_tsl_property_set_by_shadow(kk_tsl_t* dev_shadow, const char *payload, unsigned int payload_len)
{ {
kk_msg_request_payload_t request; kk_msg_request_payload_t request;
int res = 0, devid = 0; int res = 0;
memset(&request, 0, sizeof(kk_msg_request_payload_t)); memset(&request, 0, sizeof(kk_msg_request_payload_t));
...@@ -1227,7 +1224,6 @@ static int kk_tsl_post_property_start(_IN_ kk_tsl_t * dev_shadow, _OU_ void **ha ...@@ -1227,7 +1224,6 @@ static int kk_tsl_post_property_start(_IN_ kk_tsl_t * dev_shadow, _OU_ void **ha
int kk_tsl_get_property_number(_IN_ kk_tsl_t *shadow, _OU_ int *number) int kk_tsl_get_property_number(_IN_ kk_tsl_t *shadow, _OU_ int *number)
{ {
int res = 0;
int index = 0; int index = 0;
kk_tsl_event_t *property = NULL; kk_tsl_event_t *property = NULL;
if (shadow == NULL || number == NULL) { if (shadow == NULL || number == NULL) {
...@@ -1250,7 +1246,6 @@ static int _kk_tsl_post_property_add(_IN_ void *handle, _IN_ char *identifier, _ ...@@ -1250,7 +1246,6 @@ static int _kk_tsl_post_property_add(_IN_ void *handle, _IN_ char *identifier, _
{ {
int res = 0; int res = 0;
dm_api_property_t *dapi_property = NULL; dm_api_property_t *dapi_property = NULL;
dm_mgr_dev_node_t *node = NULL;
if (handle == NULL || identifier == NULL || identifier_len <= 0) { if (handle == NULL || identifier == NULL || identifier_len <= 0) {
return INVALID_PARAMETER; return INVALID_PARAMETER;
...@@ -1314,7 +1309,6 @@ int kk_tsl_post_property_add(_IN_ void *handle, _IN_ char *identifier, _IN_ int ...@@ -1314,7 +1309,6 @@ int kk_tsl_post_property_add(_IN_ void *handle, _IN_ char *identifier, _IN_ int
} }
static char* kk_tsl_post_property_end(_IN_ void *handle) static char* kk_tsl_post_property_end(_IN_ void *handle)
{ {
int res = 0;
char *payload = NULL; char *payload = NULL;
dm_api_property_t *dapi_property = NULL; dm_api_property_t *dapi_property = NULL;
...@@ -1339,9 +1333,8 @@ static char* kk_tsl_post_property_end(_IN_ void *handle) ...@@ -1339,9 +1333,8 @@ static char* kk_tsl_post_property_end(_IN_ void *handle)
char* kk_tsl_get_post_property_str(kk_tsl_t *dev_shadow, const char *property_identifier) char* kk_tsl_get_post_property_str(kk_tsl_t *dev_shadow, const char *property_identifier)
{ {
int res = 0, msgid = 0, property_identifier_len = 0, post_property_reply = 0; int res = 0, property_identifier_len = 0;
void *property_handle = NULL; void *property_handle = NULL;
kk_tsl_api_ctx_t *kk_tsl_api_ctx = _kk_tsl_api_get_ctx();
_kk_tsl_api_lock(); _kk_tsl_api_lock();
res = kk_tsl_post_property_start(dev_shadow, &property_handle); res = kk_tsl_post_property_start(dev_shadow, &property_handle);
...@@ -1396,8 +1389,6 @@ static int _kk_tsl_get_event_by_identifier(_IN_ kk_tsl_t *shadow, _IN_ char *ide ...@@ -1396,8 +1389,6 @@ static int _kk_tsl_get_event_by_identifier(_IN_ kk_tsl_t *shadow, _IN_ char *ide
int kk_tsl_get_event_by_identifier(_IN_ kk_tsl_t *dev_shadow, _IN_ char *identifier, _OU_ void **event) int kk_tsl_get_event_by_identifier(_IN_ kk_tsl_t *dev_shadow, _IN_ char *identifier, _OU_ void **event)
{ {
int res = 0;
if (dev_shadow == NULL || identifier == NULL || event == NULL || *event != NULL) { if (dev_shadow == NULL || identifier == NULL || event == NULL || *event != NULL) {
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
...@@ -1429,8 +1420,6 @@ static int _kk_tsl_get_service_by_identifier(_IN_ kk_tsl_t *shadow, _IN_ char *i ...@@ -1429,8 +1420,6 @@ static int _kk_tsl_get_service_by_identifier(_IN_ kk_tsl_t *shadow, _IN_ char *i
int kk_tsl_get_service_by_identifier(_IN_ kk_tsl_t *dev_shadow, _IN_ char *identifier, _OU_ void **service) int kk_tsl_get_service_by_identifier(_IN_ kk_tsl_t *dev_shadow, _IN_ char *identifier, _OU_ void **service)
{ {
int res = 0;
if (dev_shadow == NULL || identifier == NULL || service == NULL || *service != NULL) { if (dev_shadow == NULL || identifier == NULL || service == NULL || *service != NULL) {
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
......
...@@ -94,5 +94,10 @@ int dm_tsl_set_service_input_output_value(_IN_ kk_tsl_data_target_e type, _IN_ k ...@@ -94,5 +94,10 @@ int dm_tsl_set_service_input_output_value(_IN_ kk_tsl_data_target_e type, _IN_ k
_IN_ int key_len, _IN_ void *value, _IN_ int value_len); _IN_ int key_len, _IN_ void *value, _IN_ int value_len);
int dm_tsl_set_property_value(_IN_ kk_tsl_t *shadow, _IN_ char *key, _IN_ int key_len, _IN_ void *value, int dm_tsl_set_property_value(_IN_ kk_tsl_t *shadow, _IN_ char *key, _IN_ int key_len, _IN_ void *value,
_IN_ int value_len); _IN_ int value_len);
int kk_tsl_get_data_type(_IN_ void *data, _OU_ kk_tsl_data_type_e *type); int kk_tsl_get_data_type(_IN_ void *data, _OU_ kk_tsl_data_type_e *type);
int kk_tsl_get_property_type(_IN_ kk_tsl_t *dev_shadow, _IN_ char *key);
int kk_tsl_get_event_by_identifier(_IN_ kk_tsl_t *dev_shadow, _IN_ char *identifier, _OU_ void **event);
int kk_tsl_get_event_method(_IN_ void *event, _OU_ char **method);
int kk_tsl_get_service_by_identifier(_IN_ kk_tsl_t *dev_shadow, _IN_ char *identifier, _OU_ void **service);
int kk_tsl_get_service_method(_IN_ void *service, _OU_ char **method);
#endif #endif
...@@ -180,5 +180,9 @@ typedef struct { ...@@ -180,5 +180,9 @@ typedef struct {
int service_number; int service_number;
kk_tsl_service_t *services; //service array, type is dm_shw_service_t kk_tsl_service_t *services; //service array, type is dm_shw_service_t
} kk_tsl_t; } kk_tsl_t;
void kk_tsl_datavalue_free(kk_tsl_data_value_t *data_value);
int kk_tsl_get_property_value_ex(_IN_ kk_tsl_t *shadow, _IN_ char *key, _IN_ int key_len, _OU_ void *value);
int kk_tsl_get_event_oput_value(_IN_ kk_tsl_t *shadow, _IN_ char *key, _IN_ int key_len, _IN_ void *value);
int kk_tsl_get_service_input_output_value(_IN_ kk_tsl_data_target_e type, _IN_ kk_tsl_t *shadow, _IN_ char *key,
_IN_ int key_len, _IN_ void *value);
#endif #endif
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include "kk_utils.h"
#include "kk_log.h" #include "kk_log.h"
#include "kk_tsl_parse.h" #include "kk_tsl_parse.h"
...@@ -793,10 +793,6 @@ static int _kk_tsl_service_parse_get_input_identifier(char *str,int count,kk_tsl ...@@ -793,10 +793,6 @@ static int _kk_tsl_service_parse_get_input_identifier(char *str,int count,kk_tsl
static int _kk_tsl_service_inputdatas_get_parse(_IN_ kk_tsl_t *shadow, _IN_ kk_tsl_service_t *service, static int _kk_tsl_service_inputdatas_get_parse(_IN_ kk_tsl_t *shadow, _IN_ kk_tsl_service_t *service,
_IN_ lite_cjson_t *root) _IN_ lite_cjson_t *root)
{ {
int res = 0, index = 0;
lite_cjson_t lite_item;
kk_tsl_data_t *input_data = NULL;
//printf("input Number: %d\n", service->input_data_number); //printf("input Number: %d\n", service->input_data_number);
if (service->input_data_number == 0) { if (service->input_data_number == 0) {
return SUCCESS_RETURN; return SUCCESS_RETURN;
......
#include <pthread.h>
#include "kk_utils.h" #include "kk_utils.h"
#include "lite-cjson.h"
int kk_utils_copy(_IN_ void *input, _IN_ int input_len, _OU_ void **output, _IN_ int output_len) int kk_utils_copy(_IN_ void *input, _IN_ int input_len, _OU_ void **output, _IN_ int output_len)
...@@ -297,7 +298,7 @@ int kk_utils_json_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int ...@@ -297,7 +298,7 @@ int kk_utils_json_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int
} }
if (lite->type != cJSON_Object) { if (lite->type != cJSON_Object) {
dm_log_err("lite->type != cJSON_Object, %d", lite->type); printf("lite->type != cJSON_Object, %d", lite->type);
} }
memset(lite_item, 0, sizeof(lite_cjson_t)); memset(lite_item, 0, sizeof(lite_cjson_t));
......
#ifndef __KK_UTILS_H__ #ifndef __KK_UTILS_H__
#define __KK_UTILS_H__ #define __KK_UTILS_H__
#include "kk_tsl_common.h" #include "kk_tsl_common.h"
#include "lite-cjson.h"
int kk_utils_copy(_IN_ void *input, _IN_ int input_len, _OU_ void **output, _IN_ int output_len); int kk_utils_copy(_IN_ void *input, _IN_ int input_len, _OU_ void **output, _IN_ int output_len);
int kk_utils_strarr_index(_IN_ char *input, _IN_ int input_len,_OU_ int *partial_input_len, _OU_ int *array_input_len, _OU_ int *array_index); int kk_utils_strarr_index(_IN_ char *input, _IN_ int input_len,_OU_ int *partial_input_len, _OU_ int *array_input_len, _OU_ int *array_index);
...@@ -13,6 +13,8 @@ void kk_MutexLock(void *mutex); ...@@ -13,6 +13,8 @@ void kk_MutexLock(void *mutex);
void kk_MutexUnLock(void *mutex); void kk_MutexUnLock(void *mutex);
void kk_MutexDestroy(void *mutex); void kk_MutexDestroy(void *mutex);
int kk_utils_itoa_direct(_IN_ int input, _OU_ char **output); int kk_utils_itoa_direct(_IN_ int input, _OU_ char **output);
int kk_utils_ftoa_direct(_IN_ double input, _OU_ char **output);
int kk_utils_json_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int type, _OU_ lite_cjson_t *lite);
int kk_utils_json_object_item(_IN_ lite_cjson_t *lite, _IN_ const char *key, _IN_ int key_len, _IN_ int type,
_OU_ lite_cjson_t *lite_item);
#endif #endif
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