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

【修改内容】去warning处理

【提交人】陈伟灿
parent f368c9f1
......@@ -4,6 +4,8 @@
#include "sqlite3.h"
#include "kk_log.h"
#include "kk_area_handle.h"
#include "kk_hal.h"
#include "id.h"
extern sqlite3 *g_kk_pDb;
......@@ -98,9 +100,7 @@ int kk_area_init(void)
res = _kk_area_db_init();
if(res != SUCCESS_RETURN){
ERROR_PRINT("[%s][%d]kk_area_init FAIL!!!\n",__FUNCTION__,__LINE__);
}
return SUCCESS_RETURN;
}
......@@ -116,7 +116,7 @@ int kk_room_add(const char *name,const char *roomId)
values ('%s','%s');";
_kk_area_lock();
ctx->roomNum++;
HAL_GetTime_s(roomId);
HAL_GetTime_s((char*)roomId);
sqlCmd = sqlite3_mprintf(insertCmd,name,roomId);
res = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg);
......@@ -163,7 +163,6 @@ static int _kk_check_dev_exist(const char* deviceCode)
int isExist = 0;
sqlite3_stmt *stmt;
char *pDeviceCode = NULL;
char *pKeyId = NULL;
kk_area_ctx_t *ctx = _kk_area_get_ctx();
const char *searchCmd = "select * from AreaDevInfo;";
_kk_area_lock();
......@@ -171,7 +170,7 @@ static int _kk_check_dev_exist(const char* deviceCode)
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
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))
{
......@@ -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 len;
//int len;
kk_dev_list_t *ptr,*pre;
ptr = pre = s_device_list;
......@@ -283,14 +282,13 @@ kk_dev_list_t* kk_get_room_deviceCode(const char* roomId)
char *sqlCmd = NULL;
kk_area_ctx_t *ctx = _kk_area_get_ctx();
const char *searchCmd = "select * from AreaDevInfo;";
printf("");
_kk_area_lock();
sqlCmd = sqlite3_mprintf(searchCmd,roomId);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){
if(strcmp(sqlite3_column_text(stmt, DB_DEV_ROOM_ID),roomId) == 0){
kk_room_device_list_add(sqlite3_column_text(stmt, DB_DEV_DEVICECODE));
if(strcmp((char*)sqlite3_column_text(stmt, DB_DEV_ROOM_ID),roomId) == 0){
kk_room_device_list_add((char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE));
}
}
sqlite3_finalize(stmt);
......
......@@ -7,18 +7,27 @@ typedef struct kk_dev_list{
struct kk_dev_list * next;
}kk_dev_list_t;
typedef enum{
enum{
DB_ROOM_IDX = 0,
DB_ROOM_NAME,
DB_ROOM_ID,
};
typedef enum{
enum{
DB_DEV_IDX = 0,
DB_DEV_ROOM_ID,
DB_DEV_DEVICECODE,
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
......@@ -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,
_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 count = 0;
......@@ -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])
{
dm_ota_ctx_t *ctx = _dm_ota_get_ctx();
int res = 0;
//int res = 0;
memset(ctx->productType, 0, PRODUCT_TYPE_MAXLEN);
memset(ctx->deviceCode, 0, DEVICE_CODE_MAXLEN);
memcpy(ctx->productType, productType, PRODUCT_TYPE_MAXLEN);
......@@ -171,11 +171,9 @@ int dm_ota_get_ota_handle(void **handle)
void dm_ota_handle(void *data){
printf("dm_ota_handle ================== [%s]\n",data);
char *out;
int res = 0;
printf("dm_ota_handle ================== [%s]\n",(char*)data);
cJSON *json,*info_root,*info;
cJSON *topic,*typeJson;
cJSON *typeJson;
cJSON *payload;
cJSON *product_type,*device_code;
json=cJSON_Parse(data);
......
......@@ -10,7 +10,8 @@
#include "com_api.h"
#include "dm_ota.h"
#include "kk_log.h"
#include "kk_hal.h"
#include "kk_dm_queue.h"
static dm_api_ctx_t g_dm_api_ctx;
......@@ -210,7 +211,7 @@ void iotx_dm_dispatch(void)
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();
if (cb == NULL) {
......@@ -311,7 +312,7 @@ ERROR:
int iotx_dm_subscribe(_IN_ int devid)
{
int res = 0, dev_type = 0;
int res = 0;
if (devid < 0) {
return INVALID_PARAMETER;
......@@ -345,7 +346,7 @@ int iotx_dm_subscribe(_IN_ int devid)
ERROR_PRINT("\n [%d][%s] malloc faild kk_ipc_send \n", __LINE__, __FUNCTION__);
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 @@
#include "kk_log.h"
#include "kk_tsl_common.h"
#include "kk_dm_mng.h"
#include "kk_hal.h"
/*************************************************************
全局变量定义
......
......@@ -3,4 +3,5 @@
#include "kk_tsl_common.h"
int kk_heartbeat_init(void);
int kk_dm_gw_status_update_online(const char *deviceCode);
int kk_dm_gw_status_check_push(const char *deviceCode);
#endif
......@@ -3,15 +3,19 @@
#include <string.h>
#include "kk_dm_mng.h"
#include "kk_dm_msg.h"
#include "kk_dm_api.h"
#include "kk_tsl_api.h"
#include "kk_tsl_load.h"
#include "iot_export_linkkit.h"
#include "kk_product.h"
#include "kk_log.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/";
......@@ -92,10 +96,10 @@ static int _dm_init_tsl_params(kk_tsl_t * dev_shadow)
{
int res = 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_SN[SN_ADDR_LEN] = {0};
int port = 0;
//int port = 0;
/*******set version***********/
HAL_GetVersion(version);
......@@ -211,8 +215,7 @@ 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_dev_node_t *node = NULL;
char *tsl_str = NULL;
int idx = 0;
//int idx = 0;
if (deviceCode != NULL && strlen(deviceCode) >= DEVICE_CODE_MAXLEN) {
return INVALID_PARAMETER;
......@@ -270,7 +273,6 @@ int dm_mgr_device_create(_IN_ int dev_type,_IN_ char productCode[PRODUCT_CODE_MA
if(res != 0){
return FAIL_RETURN;
}
printf("--------------------------------------------------------->heartbeat:%d\n",heartbeat);
node->hb_timeout = heartbeat;
}
else{
......@@ -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) {
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); */
if (node) {
*node = search_node;
......@@ -514,8 +516,6 @@ int dm_mgr_init(void)
{
int res = 0;
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};
int devId = 0,heartbeat = 0;
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_
memset(&request, 0, sizeof(dm_msg_request_t));
sprintf(msgId,"%d",iotx_report_id());
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) {
return FAIL_RETURN;
}
......@@ -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));
res = _dm_mgr_upstream_request_assemble(msgId, devid,identifier,
res = _dm_mgr_upstream_request_assemble((char*)msgId, devid,identifier,
payload, payload_len, method, &request);
if (res != SUCCESS_RETURN) {
return FAIL_RETURN;
......@@ -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,
_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;
kk_msg_request_payload_t request;
kk_msg_response_t response;
......@@ -876,7 +876,7 @@ int dm_mgr_upstream_thing_sub_register(_IN_ int devid)
}
}
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){
memcpy(request.productCode,node->productCode,strlen(node->productCode));
memcpy(request.deviceCode,node->deviceCode,strlen(node->deviceCode));
......@@ -932,7 +932,7 @@ int dm_mgr_upstream_thing_sub_unregister(_IN_ int devid)
}
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.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
......@@ -990,7 +990,7 @@ int dm_mgr_upstream_thing_topo_add(_IN_ int devid)
}
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.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
......@@ -1046,7 +1046,7 @@ int dm_mgr_upstream_thing_topo_delete(_IN_ int devid)
}
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.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
......@@ -1087,7 +1087,7 @@ int dm_mgr_upstream_thing_topo_get(void)
dm_msg_request_t request;
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);
......@@ -1145,7 +1145,7 @@ int dm_mgr_upstream_thing_list_found(_IN_ int devid)
}
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.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
......@@ -1180,7 +1180,7 @@ int dm_mgr_ccu_status_cloud(_IN_ int devid)
{
int res = 0;
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;
char msgId[MSG_MAX_LEN] = {0};
......@@ -1197,7 +1197,7 @@ int dm_mgr_ccu_status_cloud(_IN_ int devid)
memcpy(request.productCode,node->productCode,strlen(node->productCode));
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 */
......@@ -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 */
......@@ -1322,7 +1322,7 @@ int dm_mgr_upstream_status_offline(_IN_ int devid)
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 */
res = dm_msg_status_offline( node->productCode, node->deviceCode, &request);
......@@ -1374,7 +1374,7 @@ int dm_mgr_upstream_combine_login(_IN_ int devid)
}
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.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
......@@ -1428,7 +1428,7 @@ int dm_mgr_upstream_combine_logout(_IN_ int devid)
}
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.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
......
......@@ -103,4 +103,5 @@ 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],
_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_msg_thing_property_post_all(char *deviceCode);
#endif
......@@ -5,7 +5,8 @@
#include "kk_hal.h"
#include "com_api.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_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],
{
char *params = NULL;
int params_len = 0;
char timestamp[DM_UTILS_UINT64_STRLEN] = {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 ||
deviceCode == NULL ||
......@@ -307,10 +302,6 @@ const char DM_MSG_COMBINE_STATUS_ONLINE[] DM_READ_ONLY =
char *params = NULL;
int params_len = 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 ||
deviceCode == NULL || productCode == NULL ||
......@@ -351,10 +342,6 @@ int dm_msg_status_offline(_IN_ char productCode[PRODUCT_CODE_MAXLEN],
char *params = NULL;
int params_len = 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 ||
deviceCode == NULL || productCode == NULL ||
......@@ -570,7 +557,7 @@ int dm_msg_request (_IN_ dm_msg_request_t *request,_IN_ int isAsync)
memset(&lite, 0, sizeof(lite_cjson_t));
res = lite_cjson_parse(req_info, req_info_len, &lite);
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(payload);
return FAIL_RETURN;
......@@ -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));
res = lite_cjson_parse(res_info, res_info_len, &lite);
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(payload);
return FAIL_RETURN;
......@@ -712,7 +699,7 @@ int dm_msg_thing_syncinfo_reply(void){
kk_msg_response_t response;
dm_mgr_dev_node_t *node = NULL;
char *info = NULL;
int res = 0, devid = 0;
int res = 0;
memset(&request, 0, sizeof(kk_msg_request_payload_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
kk_msg_response_t response;
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(&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
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.deviceCode, node->deviceCode, strlen(node->deviceCode));
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
int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const char *msgId)
{
int res = 0;
int nums = 0;
int idx = 0;
char *payload = NULL;
dm_mgr_dev_node_t *node = NULL;
void *event = NULL;
......@@ -788,12 +773,12 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const
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) {
ERROR_PRINT("dm_msg_thing_event_post failed\n");
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){
res = kk_tsl_get_event_by_identifier(node->dev_shadow, identifier, &event);
if (res != SUCCESS_RETURN) {
......@@ -809,7 +794,7 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const
return FAIL_RETURN;
}
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
{
......@@ -825,8 +810,6 @@ 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 res = 0;
int nums = 0;
int idx = 0;
char *payload = NULL;
void *event = NULL;
char *method = NULL;
......@@ -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 res = 0;
int nums = 0;
int idx = 0;
char *payload = NULL;
dm_mgr_dev_node_t *node = NULL;
char *method = NULL;
......@@ -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 res = 0;
int nums = 0;
int idx = 0;
char *payload = NULL;
dm_mgr_dev_node_t *node = NULL;
......
......@@ -6,7 +6,7 @@
#include "kk_dm_queue.h"
#include "kk_tsl_common.h"
#include "kk_hal.h"
dm_queue_t g_dm_queue;
......
......@@ -17,11 +17,15 @@
#include "kk_dm_msg.h"
#include "kk_dm_mng.h"
#include "kk_dm_api.h"
#include "kk_sub_db.h"
#include "kk_tsl_api.h"
#include "com_api.h"
#include "kk_log.h"
#include "kk_area_handle.h"
#include "kk_scene_handle.h"
#include "kk_property_db.h"
#include "kk_product.h"
#include "kk_hal.h"
#define IOTX_LINKKIT_KEY_ID "id"
#define IOTX_LINKKIT_KEY_CODE "code"
......@@ -345,15 +349,15 @@ static int kk_service_addRoom_handle(const char *deviceCode, cJSON *params)
dm_mgr_dev_node_t *node = NULL;
char roomId[32] = {0};
int res = 0;
int idx = 0,idxIpt = 0;
int start = 0,serverNum = 0;
kk_tsl_service_t *serviceItem = NULL;
kk_tsl_data_t* pinputData = NULL;
cJSON *currentItem =NULL;
//int idx = 0,idxIpt = 0;
//int start = 0,serverNum = 0;
//kk_tsl_service_t *serviceItem = NULL;
//kk_tsl_data_t* pinputData = NULL;
//cJSON *currentItem =NULL;
if(deviceCode == NULL||params == NULL){
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) {
ERROR_PRINT("dm_mgr_get_device_by_devicecode failed\n");
return res;
......@@ -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)
{
int idx = 0;
kk_tsl_data_t *pCurrentItem = NULL;
cJSON *pCurrentData = NULL;
//int idx = 0;
//kk_tsl_data_t *pCurrentItem = NULL;
//cJSON *pCurrentData = NULL;
if(node == NULL){
return INVALID_PARAMETER;
}
......@@ -756,7 +760,7 @@ static int kk_service_addScene_handle(cJSON *param,cJSON *msgId)
{
int res = 0;
char sceneId[32] = {0};
kk_tsl_t *pSceneShadow = NULL;
//kk_tsl_t *pSceneShadow = NULL;
if(param == NULL || msgId == NULL){
return INVALID_PARAMETER;
}
......@@ -1116,10 +1120,10 @@ int kk_init_dmproc(void)
*************************************************************/
int _iotx_linkkit_slave_connect(int devid)
{
int res = 0, msgid = 0, code = 0;
iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx();
iotx_linkkit_upstream_sync_callback_node_t *node = NULL;
void *semaphore = NULL;
int res = 0;
//iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx();
//iotx_linkkit_upstream_sync_callback_node_t *node = NULL;
//void *semaphore = NULL;
if (devid <= 0) {
dm_log_err("devid invalid");
......@@ -1145,10 +1149,10 @@ int _iotx_linkkit_slave_connect(int devid)
*************************************************************/
int _iotx_linkkit_slave_register(int devid)
{
int res = 0, msgid = 0, code = 0;
iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx();
iotx_linkkit_upstream_sync_callback_node_t *node = NULL;
void *semaphore = NULL;
int res = 0;
//iotx_linkkit_ctx_t *ctx = _iotx_linkkit_get_ctx();
//iotx_linkkit_upstream_sync_callback_node_t *node = NULL;
//void *semaphore = NULL;
if (devid <= 0) {
dm_log_err("devid invalid");
return FAIL_RETURN;
......@@ -1292,7 +1296,7 @@ static int _iotx_linkkit_slave_close(int devid)
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) {
dm_log_err("Invalid Parameter");
......@@ -1352,10 +1356,10 @@ int IOT_Linkkit_Close(int devid)
*************************************************************/
static int _iotx_linkkit_subdev_login(int devid)
{
int res = 0, msgid = 0, code = 0;
iotx_linkkit_upstream_sync_callback_node_t *node = NULL;
void *semaphore = NULL;
void *callback = NULL;
int res = 0;
//iotx_linkkit_upstream_sync_callback_node_t *node = NULL;
//void *semaphore = NULL;
//void *callback = NULL;
res = iotx_dm_dev_online(devid);//iotx_dm_subdev_login(devid);
if (res < SUCCESS_RETURN) {
......
......@@ -14,7 +14,7 @@
#include <stdio.h>
#include "kk_tsl_api.h"
#include "kk_hal.h"
#include "kk_log.h"
#include "kk_dm_mng.h"
#include "kk_property_db.h"
......@@ -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);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while(sqlite3_step(stmt) == SQLITE_ROW){
pDeviceCode = sqlite3_column_text(stmt, DB_DEVICECODE);
pIdentifier = sqlite3_column_text(stmt, DB_IDENTIFITER);
pDeviceCode = (char*)sqlite3_column_text(stmt, DB_DEVICECODE);
pIdentifier = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
if(!strcmp(deviceCode,pDeviceCode)&&!strcmp(identifier,pIdentifier))
{
......@@ -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)
{
char *sqlCmd = NULL;
int rc = 0;
char *zErrMsg = 0;
//int rc = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *valueStr = NULL;
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
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode= '%s' and identifier = '%s'",deviceCode,identifier);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
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));
}
sqlite3_free(sqlCmd);
......@@ -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)
{
char *sqlCmd = NULL;
int rc = 0;
char *zErrMsg = 0;
//int rc = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *valueStr = NULL;
int valueType = 0;
......@@ -296,7 +296,7 @@ int kk_property_db_get_value(const char *deviceCode,const char *identifier,void*
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);
if(valueType == KK_TSL_DATA_TYPE_INT||
valueType == KK_TSL_DATA_TYPE_ENUM||
......@@ -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)
{
char *sqlCmd = NULL;
int rc = 0;
char *zErrMsg = 0;
//int rc = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *valueStr = NULL;
char *devcode = NULL;
......@@ -354,8 +354,8 @@ int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_pro
curData = raw;
while(sqlite3_step(stmt) == SQLITE_ROW && idx < count){
devcode = sqlite3_column_text(stmt, DB_DEVICECODE);
valueStr = sqlite3_column_text(stmt, DB_VALUE);
devcode = (char*)sqlite3_column_text(stmt, DB_DEVICECODE);
valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
memcpy(curData->deviceCode,devcode, strlen(devcode));
memcpy(curData->raw,valueStr, strlen(valueStr));
......@@ -387,7 +387,7 @@ int kk_property_db_update(const char *deviceCode)
dm_mgr_dev_node_t *node = 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) {
return FAIL_RETURN;
}
......@@ -433,9 +433,9 @@ int kk_property_db_update(const char *deviceCode)
int kk_property_sync_values(const char *deviceCode)
{
char *sqlCmd = NULL;
int rc = 0;
//int rc = 0;
int res = 0;
char *zErrMsg = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *pIdentifier = NULL;
char *valueStr = NULL;
......@@ -445,7 +445,7 @@ int kk_property_sync_values(const char *deviceCode)
char *searchCmd = "select * from PropertiesInfo;";
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) {
return FAIL_RETURN;
}
......@@ -458,10 +458,10 @@ int kk_property_sync_values(const char *deviceCode)
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);
valueStr = sqlite3_column_text(stmt, DB_VALUE);
pIdentifier = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
valueType = sqlite3_column_int(stmt, DB_VALUETYPE);
if(valueType == KK_TSL_DATA_TYPE_INT||
valueType == KK_TSL_DATA_TYPE_ENUM||
......@@ -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);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
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))
{
{
isExist = 1;
break;
}
......
......@@ -10,11 +10,15 @@
#include <stdio.h>
#include "kk_tsl_api.h"
#include "kk_sub_db.h"
#include "kk_property_db.h"
#include "kk_dm_mng.h"
#include "kk_dm_msg.h"
#include "kk_scene_handle.h"
#include "kk_dm_heartbeat.h"
#include "kk_dm_api.h"
#include "sqlite3.h"
#include "kk_log.h"
#include "kk_hal.h"
extern sqlite3 *g_kk_pDb;
typedef struct {
......@@ -117,10 +121,10 @@ static int _kk_load_subDevice(void)
while(sqlite3_step(stmt) == SQLITE_ROW){
deviceType = sqlite3_column_int(stmt, DB_SUB_DEVTYPE);
res = dm_mgr_subdev_create(deviceType,
sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE),
sqlite3_column_text(stmt, DB_SUB_DEVICECODE),
sqlite3_column_text(stmt, DB_SUB_MAC),
sqlite3_column_text(stmt, DB_SUB_FATHERDEVICECODE),
(char*)sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE),
(char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE),
(char*)sqlite3_column_text(stmt, DB_SUB_MAC),
(char*)sqlite3_column_text(stmt, DB_SUB_FATHERDEVICECODE),
KK_DEV_UNKNOW,&devId,&heartbeat);
if(res != SUCCESS_RETURN){
......@@ -134,11 +138,11 @@ static int _kk_load_subDevice(void)
iotx_dm_subscribe(devId);
//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);
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
//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)
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
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))
{
......@@ -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)
{
char *sqlCmd = NULL;
int len =0;
int rc = 0;
char *zErrMsg = 0;
kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx();
......@@ -333,7 +336,6 @@ int kk_subDev_update_offline(int isOffline,const char *deviceCode)
int kk_subDev_update_productType(char *productType,const char *deviceCode)
{
char *sqlCmd = NULL;
int len =0;
int rc = 0;
char *zErrMsg = 0;
kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx();
......@@ -364,7 +366,6 @@ int kk_subDev_update_productType(char *productType,const char *deviceCode)
int kk_subDev_update_auth(int isAuth,const char *deviceCode)
{
char *sqlCmd = NULL;
int len =0;
int rc = 0;
char *zErrMsg = 0;
kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx();
......@@ -395,7 +396,6 @@ int kk_subDev_update_auth(int isAuth,const char *deviceCode)
int kk_subDev_update_sceneSupport(int sceneSupport,const char *deviceCode)
{
char *sqlCmd = NULL;
int len =0;
int rc = 0;
char *zErrMsg = 0;
kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx();
......@@ -437,13 +437,13 @@ int kk_subDev_send_property_get_from_db(void)
while(sqlite3_step(stmt) == SQLITE_ROW){
isOffline = sqlite3_column_int(stmt, DB_SUB_DEVTYPE);
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) {
continue;
}
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);
......@@ -478,7 +478,7 @@ int kk_subDev_send_property_get(const char *fatherDeviceCode)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
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);
if (res != SUCCESS_RETURN) {
ERROR_PRINT("ERROR [%s][%d] res:%d\n",__FUNCTION__,__LINE__,res);
......@@ -528,7 +528,7 @@ int kk_subDev_check_scene_support(const char *deviceCode)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
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)) {
res = 1;
}
......@@ -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);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
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);
if (res != SUCCESS_RETURN) {
continue;
......
......@@ -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);
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_sceneSupport(int sceneSupport,const char *deviceCode);
int kk_subDev_delete_by_dcode(char deviceCode[DEVICE_CODE_MAXLEN]);
......@@ -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_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{
DB_SUB_IDX = 0,
DB_SUB_ONLINE,
......
......@@ -20,6 +20,7 @@
#include "kk_tsl_api.h"
#include "kk_area_handle.h"
#include "kk_sub_db.h"
#include "kk_hal.h"
extern sqlite3 *g_kk_pDb;
typedef struct {
......@@ -57,7 +58,7 @@ static void _kk_sync_unlock(void)
*************************************************************/
int kk_sync_init(void)
{
int res = 0;
//int res = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
/* Create Mutex */
ctx->mutex = HAL_MutexCreate();
......@@ -81,7 +82,7 @@ static int kk_get_rooms_devices(cJSON *roomDevicesArray,char *roomId)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
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);
}
sqlite3_free(sqlCmd);
......@@ -94,7 +95,7 @@ static int kk_get_rooms_info(cJSON *data)
sqlite3_stmt *stmt;
char *roomId = NULL;
char *roomName = NULL;
int valueType = 0;
//int valueType = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
if(data == NULL){
return FAIL_RETURN;
......@@ -106,8 +107,8 @@ static int kk_get_rooms_info(cJSON *data)
sqlCmd = sqlite3_mprintf("select * from AreaInfo");
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
roomId = sqlite3_column_text(stmt, DB_ROOM_ID);
roomName = sqlite3_column_text(stmt, DB_ROOM_NAME);
roomId = (char*)sqlite3_column_text(stmt, DB_ROOM_ID);
roomName = (char*)sqlite3_column_text(stmt, DB_ROOM_NAME);
cJSON_AddStringToObject(roomItem, KK_SYNC_ROOMID_STR, roomId);
cJSON_AddStringToObject(roomItem, KK_SYNC_NANE_STR, roomName);
kk_get_rooms_devices(roomDevicesArray,roomId);
......@@ -130,7 +131,7 @@ static int kk_get_rooms_info(cJSON *data)
static int kk_get_properties_info(char *deviceCode,cJSON *obj)
{
char *sqlCmd = NULL;
char *zErrMsg = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *propertyStr = NULL;
char *valueStr = NULL;
......@@ -143,9 +144,9 @@ static int kk_get_properties_info(char *deviceCode,cJSON *obj)
sqlCmd = sqlite3_mprintf("select * from PropertiesInfo WHERE deviceCode = '%s' ",deviceCode);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
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);
valueStr = sqlite3_column_text(stmt, DB_VALUE);
valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
if(valueType == KK_TSL_DATA_TYPE_TEXT){
cJSON_AddStringToObject(propertyItem, propertyStr, valueStr);
......@@ -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)
{
char *sqlCmd = NULL;
char *zErrMsg = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
char *subDeviceCode = NULL;
......@@ -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);
while(sqlite3_step(stmt) == SQLITE_ROW){
cJSON *subdevicesItem = cJSON_CreateObject();
subDeviceCode = sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
subProductCode = sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE);
subVersion = sqlite3_column_text(stmt, DB_SUB_VERSION);
subIsline = sqlite3_column_text(stmt, DB_SUB_ONLINE);
subDeviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
subProductCode = (char*)sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE);
subVersion = (char*)sqlite3_column_text(stmt, DB_SUB_VERSION);
subIsline = (char*)sqlite3_column_text(stmt, DB_SUB_ONLINE);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_DEVICECODE_STR, subDeviceCode);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_VERSION_STR, subVersion);
cJSON_AddStringToObject(subdevicesItem, KK_SYNC_MAC_STR, subDeviceCode);
......@@ -204,15 +205,15 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
static int kk_get_gw_devices_info(cJSON *gwdevices)
{
char *sqlCmd = NULL;
char *zErrMsg = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
cJSON *gwdevicesItem = NULL;
//cJSON *gwdevicesItem = NULL;
char *gw_deviceCode = NULL;
char *gw_productCode = NULL;
char *gw_version = NULL;
char *gw_isline = NULL;
char *valueStr = NULL;
int valueType = 0;
//char *valueStr = NULL;
//int valueType = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
if(gwdevices == NULL){
return FAIL_RETURN;
......@@ -223,10 +224,10 @@ static int kk_get_gw_devices_info(cJSON *gwdevices)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
cJSON *gwdevicesItem = cJSON_CreateObject();
gw_deviceCode = sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
gw_productCode = sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE);
gw_version = sqlite3_column_text(stmt, DB_SUB_VERSION);
gw_isline = sqlite3_column_text(stmt, DB_SUB_ONLINE);
gw_deviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
gw_productCode = (char*)sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE);
gw_version = (char*)sqlite3_column_text(stmt, DB_SUB_VERSION);
gw_isline = (char*)sqlite3_column_text(stmt, DB_SUB_ONLINE);
printf("gw_deviceCode:%s\n",gw_deviceCode);
printf("gw_productCode:%s\n",gw_productCode);
cJSON_AddStringToObject(gwdevicesItem, KK_SYNC_DEVICECODE_STR, gw_deviceCode);
......@@ -256,10 +257,10 @@ static int kk_get_devices_info(cJSON *data)
cJSON_AddItemToObject(data, KK_SYNC_DEVICES_STR, gwdevices);
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 *zErrMsg = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *deviceCode = NULL;
char *propertyName = NULL;
......@@ -274,12 +275,12 @@ static int kk_get_scenes_actions_info(char *actionArray )
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
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);
epNum = sqlite3_column_int(stmt, DB_SCENEACTION_EPNUM);
propertyName = sqlite3_column_text(stmt, DB_SCENEACTION_PROPERTYNAME);
propertyValue = sqlite3_column_text(stmt, DB_SCENEACTION_PROPERTYVALUE);
type = sqlite3_column_text(stmt, DB_SCENEACTION_TYPE);
propertyName = (char*)sqlite3_column_text(stmt, DB_SCENEACTION_PROPERTYNAME);
propertyValue = (char*)sqlite3_column_text(stmt, DB_SCENEACTION_PROPERTYVALUE);
type = (char*)sqlite3_column_text(stmt, DB_SCENEACTION_TYPE);
cJSON_AddStringToObject(actionItem, KK_SYNC_DEVICECODE_STR, deviceCode);
cJSON_AddNumberToObject(actionItem, KK_SYNC_SCENE_DELAY_STR, delay);
cJSON_AddNumberToObject(actionItem, KK_SYNC_SCENE_EPNUM_STR, epNum);
......@@ -293,17 +294,17 @@ static int kk_get_scenes_actions_info(char *actionArray )
sqlite3_finalize(stmt);
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 *zErrMsg = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
const unsigned char *deviceCode = NULL;
const unsigned char *propertyName = NULL;
const unsigned char *compareType = NULL;
const unsigned char *compareValue = NULL;
const unsigned char *type = NULL;
int delay = 0,epNum = 0;
char *deviceCode = NULL;
char *propertyName = NULL;
char *compareType = NULL;
char *compareValue = NULL;
//char *type = NULL;
int epNum = 0;
kk_sync_ctx_t *ctx = _kk_sync_get_ctx();
if(triggerArray == NULL || sceneId == NULL){
return FAIL_RETURN;
......@@ -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);
while(sqlite3_step(stmt) == SQLITE_ROW){
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);
propertyName = sqlite3_column_text(stmt, DB_SCENETRIGGER_PROPERTYNAME);
compareType = sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPARETYPE);
compareValue = sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPAREVALUE);
type = sqlite3_column_text(stmt, DB_SCENETRIGGER_TYPE);
propertyName = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_PROPERTYNAME);
compareType = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPARETYPE);
compareValue = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPAREVALUE);
//type = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_TYPE);
cJSON_AddStringToObject(triggerItem, KK_SYNC_DEVICECODE_STR, (char*)deviceCode);
cJSON_AddNumberToObject(triggerItem, KK_SYNC_SCENE_EPNUM_STR, epNum);
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)
sqlite3_finalize(stmt);
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 *zErrMsg = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
int starttime = 0;
int endtime = 0;
......@@ -364,7 +365,7 @@ static int kk_get_scenes_condition_info(char *conditionArray,char *sceneId)
static int kk_get_scenes_info(cJSON *data)
{
char *sqlCmd = NULL;
char *zErrMsg = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
int enable = 0,type = 0;
char *name = NULL;
......@@ -387,9 +388,9 @@ static int kk_get_scenes_info(cJSON *data)
}
type = sqlite3_column_int(stmt, DB_SCENEINFO_SCENETYPE);
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);
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 *actionArray = cJSON_CreateArray();
kk_get_scenes_actions_info(actionArray);
......@@ -410,7 +411,7 @@ static int kk_get_scenes_info(cJSON *data)
static int kk_get_ccu_properties(cJSON *property)
{
char *sqlCmd = NULL;
char *zErrMsg = 0;
//char *zErrMsg = 0;
sqlite3_stmt *stmt;
char *propertyStr = NULL;
char *valueStr = NULL;
......@@ -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);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
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);
valueStr = sqlite3_column_text(stmt, DB_VALUE);
valueStr = (char*)sqlite3_column_text(stmt, DB_VALUE);
if(valueType == KK_TSL_DATA_TYPE_TEXT){
cJSON_AddStringToObject(property, propertyStr, valueStr);
}else if(valueType == KK_TSL_DATA_TYPE_INT||
......@@ -451,7 +452,6 @@ static int kk_get_ccu_properties(cJSON *property)
char *kk_sync_get_info()
{
char *out = NULL;
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
char ccu_deviceCode[DEVICE_CODE_MAXLEN] = {0};
char ccu_productCode[PRODUCT_CODE_MAXLEN] = {0};
char version[32] = {0};
......@@ -460,17 +460,12 @@ char *kk_sync_get_info()
cJSON_AddStringToObject(root,KK_SYNC_CODE_STR,"0");
cJSON *data = cJSON_CreateObject();
cJSON_AddItemToObject(root, KK_SYNC_DATA_STR, data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_rooms_info(data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_devices_info(data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_scenes_info(data);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
HAL_GetDevice_Code(ccu_deviceCode);
HAL_GetProduct_Code(ccu_productCode);
HAL_GetVersion(version);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_AddStringToObject(data, KK_SYNC_DEVICECODE_STR,ccu_deviceCode);
cJSON_AddStringToObject(data, KK_SYNC_NANE_STR, "newccu");
sprintf(cloudstatus_str, "%d", kk_get_cloudstatus());
......@@ -478,10 +473,9 @@ char *kk_sync_get_info()
cJSON_AddStringToObject(data, KK_SYNC_PRODUCTCODE_STR, ccu_productCode);
cJSON_AddStringToObject(data, KK_SYNC_VERSION_STR, version);
cJSON *property = cJSON_CreateObject();
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_get_ccu_properties(property);
cJSON_AddItemToObject(data, KK_SYNC_PROPERTY_STR, property);
printf("[%s][%d]\n",__FUNCTION__,__LINE__);
out=cJSON_Print(root);
printf("kk_sync_get_info:%s\n",out);
cJSON_Delete(root);
......
......@@ -34,4 +34,8 @@
#define KK_SYNC_SCENE_ENDTIME_STR "endTime"
#define KK_SYNC_SCENE_CROSSDAY_STR "crossDay"
#define KK_SYNC_SCENE_REPEATDAY_STR "repeat_days"
int kk_sync_init(void);
char *kk_sync_get_info();
#endif
......@@ -15,6 +15,7 @@
#include "kk_tsl_api.h"
#include "sqlite3.h"
#include "kk_log.h"
#include "kk_hal.h"
#include "kk_history_db.h"
......@@ -213,7 +214,7 @@ int kk_history_insert_sensor_info(const char* deviceCode,const char* identifier,
while(sqlite3_step(stmt) == SQLITE_ROW){
rtime = sqlite3_column_int(stmt, DB_SENSOR_RECORDTIME);
kk_history_delete_by_recordtime("SensorHistoryInfo",rtime);
INFO_PRINT("delete rtime:%d\n",rtime);
INFO_PRINT("delete rtime:%ld\n",rtime);
break;
}
sqlite3_finalize(stmt);
......
......@@ -13,7 +13,6 @@
#include"com_api.h"
#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <unistd.h>
......@@ -415,12 +414,10 @@ void gw2mid_cb(void* data, int len, char* chalMark){
*************************************************************/
void kk_platMsg_handle(void* data, char* chalMark){
char *out;
int res = 0;
cJSON *json;
cJSON *info;
cJSON *info_dcode;
cJSON *params;
cJSON *jsonPay;
cJSON *msgType;
cJSON *proCode;
......@@ -829,22 +826,11 @@ void *udp_dispatch_yield(void *args){
}
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 szDec[1024] = {0};
char host_ip[32] = {0};
char mac[32] = {0};
char device_code[DEVICE_CODE_LEN] = {0};
int devId = 0;
kk_prop_raw_struct_t ipList[10] = {0};
int idx = 0;
......@@ -1048,9 +1034,9 @@ int kk_sqlite_init(void)
int main(const int argc, const char **argv)
{
int res = 0;
char *tsl_str;
int i;
kk_tsl_t *dev_shadow[30] = {NULL};
//char *tsl_str;
//int i;
//kk_tsl_t *dev_shadow[30] = {NULL};
mid_ctx_t *mid_ctx = kk_mid_get_ctx();
open("midware",LOG_PID,LOG_USER);
......@@ -1098,7 +1084,7 @@ int main(const int argc, const char **argv)
return -1;
}
int ct = 0;
//int ct = 0;
for (;;) {
usleep(200000);
kk_platMsg_dispatch();
......
......@@ -176,7 +176,7 @@ int kk_scene_db_init(void)
int kk_scene_update_scene_enable(int enable,const char *sceneId)
{
char *sqlCmd = NULL;
int len =0;
//int len =0;
int rc = 0;
char *zErrMsg = 0;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
......@@ -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;
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
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
dbepNum = sqlite3_column_int(stmt, DB_SCENETRIGGER_EPNUM);
dbcompareType = sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPARETYPE);
dbcompareValue = sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPAREVALUE);
dbsceneId = sqlite3_column_text(stmt, DB_SCENETRIGGER_SCENEID);
dbcompareType = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPARETYPE);
dbcompareValue = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_COMPAREVALUE);
dbsceneId = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_SCENEID);
if((epNum == dbepNum) && (!strcmp(dbcompareType,compareType)) && \
(!strcmp(compareValue,compareValue)) && (!strcmp(dbsceneId,sceneId))){
(!strcmp(compareValue,dbcompareValue)) && (!strcmp(dbsceneId,sceneId))){
res = 1;
INFO_PRINT("kk_scene_check_trigger_exist!!!\n");
break;
......@@ -710,7 +710,6 @@ int kk_scene_delete_scene_action(const char *sceneId,int isforword)
kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
char *sqlCmd = NULL;
char *zErrMsg = 0;
sqlite3_stmt *stmt;
if(isforword){
kk_scene_delete_send_to_gw(sceneId);
......
......@@ -67,4 +67,23 @@ enum{
DB_SCENEINVOKESERVICE_SCENEID,
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
......@@ -12,9 +12,16 @@
*************************************************************/
#include <stdio.h>
#include <pthread.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>
......@@ -33,9 +40,9 @@ static kk_scene_timer_list_t *p_scene_timer_list = NULL;
extern time_t s_start_time;
static kk_scene_action_t *p_kk_scene_action = 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_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);
static int kk_scene_check_value_ex(const char * compareType,const char * compareValue1,const char * compareValue2)
{
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){
ERROR_PRINT("[%d]kk_scene_check_value fail!!!\n",__LINE__);
......@@ -98,8 +100,6 @@ void _kk_scene_unlock(void)
}
}
#define KK_DEVICE_TSL_TYPE (0x08)
static kk_tsl_t *s_scene_shadow = NULL;
static int kk_scene_tsl_load(void)
......@@ -151,14 +151,16 @@ static int kk_scene_timer_load(void)
kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
sqlite3_stmt *stmt;
char *sceneId = NULL;
int starttime;
int repeatday;
char *sqlCmd = "select * from SceneTimerInfo;";
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
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){
int starttime = sqlite3_column_int(stmt, DB_SCENETIMER_TIME);
int repeatday = sqlite3_column_int(stmt, DB_SCENETIMER_WEEK);
starttime = sqlite3_column_int(stmt, DB_SCENETIMER_TIME);
repeatday = sqlite3_column_int(stmt, DB_SCENETIMER_WEEK);
kk_scene_push_timer_info(starttime,repeatday,sceneId);
}
}
......@@ -187,7 +189,7 @@ void *kk_scene_yield(void *args)
kk_scene_embed_delay_t *embedDelayInfo = NULL;
kk_scene_embed_delay_t *pTempEmbed = NULL;
kk_scene_timer_list_t *scene_timer_list = NULL;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
while (1) {
current_time = HAL_GetTime();
/****系统起来15s后开始定时处理****/
......@@ -201,8 +203,8 @@ void *kk_scene_yield(void *args)
/*处理action delay*/
actionDelayInfo = p_delay_action_list;
while(actionDelayInfo){
INFO_PRINT("[%s][%d] current_time:%d\n",__FUNCTION__,__LINE__,current_time);
INFO_PRINT("[%s][%d] actionDelayInfo->starttime:%d\n",__FUNCTION__,__LINE__,actionDelayInfo->starttime);
INFO_PRINT("[%s][%d] current_time:%ld\n",__FUNCTION__,__LINE__,current_time);
INFO_PRINT("[%s][%d] actionDelayInfo->starttime:%ld\n",__FUNCTION__,__LINE__,actionDelayInfo->starttime);
if(current_time >= actionDelayInfo->starttime){
INFO_PRINT("[%s][%d]\n",__FUNCTION__,__LINE__);
kk_scene_send_action_msg(actionDelayInfo->action);
......@@ -230,8 +232,8 @@ void *kk_scene_yield(void *args)
/*处理场景嵌套delay*/
embedDelayInfo = p_delay_embed_list;
while(embedDelayInfo){
INFO_PRINT("[%s][%d] current_time:%d\n",__FUNCTION__,__LINE__,current_time);
INFO_PRINT("[%s][%d] embedDelayInfo->starttime:%d\n",__FUNCTION__,__LINE__,embedDelayInfo->starttime);
INFO_PRINT("[%s][%d] current_time:%ld\n",__FUNCTION__,__LINE__,current_time);
INFO_PRINT("[%s][%d] embedDelayInfo->starttime:%ld\n",__FUNCTION__,__LINE__,embedDelayInfo->starttime);
if(current_time >= embedDelayInfo->starttime){
kk_scene_execute_action(embedDelayInfo->executeSceneId,NULL);
if(embedDelayInfo == p_delay_embed_list){
......@@ -258,8 +260,8 @@ void *kk_scene_yield(void *args)
_kk_scene_lock();
scene_timer_list = p_scene_timer_list;
while(scene_timer_list){
INFO_PRINT("scene_timer_list->starttime:%d\n",scene_timer_list->starttime);
INFO_PRINT("current_time %d\n",current_time);
INFO_PRINT("scene_timer_list->starttime:%ld\n",scene_timer_list->starttime);
INFO_PRINT("current_time %ld\n",current_time);
if(scene_timer_list->starttime != 0 && current_time >= scene_timer_list->starttime){
if(kk_scene_check_trigger_condition(scene_timer_list->sceneId) == 0){
kk_scene_execute_action(scene_timer_list->sceneId,NULL);
......@@ -305,7 +307,7 @@ int kk_scene_init(void)
}
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) {
ERROR_PRINT("HAL_ThreadCreate mid Failed\n");
//IOT_Linkkit_Close(mid_ctx->master_devid);
......@@ -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)
{
int len;
kk_scene_action_info_ex_t *ptr,*pre;
ptr = pre = *head;
......@@ -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 len;
kk_scene_action_t *ptr,*pre;
ptr = pre = p_kk_scene_action;
......@@ -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)
{
int len;
kk_scene_action_t *ptr,*pnext;
kk_scene_action_info_ex_t *actionTemp = NULL;
kk_scene_action_info_ex_t *ptemp = NULL;
ptr = p_kk_scene_action;
while(ptr){
pnext = ptr->next;
actionTemp = ptr->actionInfo;
while(actionTemp != NULL){
kk_scene_action_info_ex_t *ptemp = actionTemp->next;
ptemp = actionTemp->next;
//printf("kk_scene_action_free free:%p\n",actionTemp);
free(actionTemp);
actionTemp = NULL;
......@@ -457,18 +457,19 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
char gwdevice[][DEVICE_CODE_MAXLEN] = {0};
sqlite3_stmt *stmt;
char *sqlCmd = NULL;
char *zErrMsg = 0;
char *gwdeviceCode = NULL;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
int idx=0,num = 0;
int res = 0;
cJSON *root;
char *out = NULL;
sqlCmd = sqlite3_mprintf("select * from SceneActionInfo WHERE sceneId = '%s'",sceneId);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
next:
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){
for(idx = 0; idx < num;idx++){
/*此网关已经发送过*/
......@@ -479,9 +480,9 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
}
memcpy(gwdevice[num],gwdeviceCode,strlen(gwdeviceCode));
num++;
cJSON *root=cJSON_CreateObject();
root=cJSON_CreateObject();
cJSON_AddStringToObject(root,MSG_SCENE_SCENEID,sceneId);
char *out=cJSON_Print(root);
out=cJSON_Print(root);
res = kk_msg_execute_scene_delete(out,gwdeviceCode);
cJSON_Delete(root);
free(out);
......@@ -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)
{
cJSON *root;
cJSON *array;
cJSON *info;
char *out;
kk_scene_action_t *ptr = p_kk_scene_action;
kk_scene_action_info_ex_t *ptmp = NULL;
if(ptr == NULL){
return FAIL_RETURN;
}
while(ptr){
cJSON *root=cJSON_CreateObject();
cJSON *array = cJSON_CreateArray();
root=cJSON_CreateObject();
array = cJSON_CreateArray();
cJSON_AddStringToObject(root,MSG_SCENE_SCENEID,ptr->sceneId);
ptmp = 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_SCENE_PROPERTYNAME,ptr->actionInfo->info.propertyName);
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
}
ptr->actionInfo = ptmp;
cJSON_AddItemToObject(root,MSG_SCENE_ACTIONS,array);
char *out=cJSON_Print(root);
out=cJSON_Print(root);
//printf("out:%s\n",out);
kk_msg_execute_scene_set(out,ptr->gwdeviceCode,isUpdate);
cJSON_Delete(root);
......@@ -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)
{
char *out = NULL;
if(action == NULL || gwdeviceCode == NULL || sceneId == NULL){
return INVALID_PARAMETER;
}
cJSON *root=cJSON_CreateObject();
cJSON_AddStringToObject(root,MSG_SCENE_SCENEID,sceneId);
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);
kk_msg_execute_scene_set(out,gwdeviceCode,isUpdate);
cJSON_Delete(root);
......@@ -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)
{
int res = FAIL_RETURN;
cJSON *deviceCode,*epNum;
cJSON *propertyName,*compareType;
cJSON *compareValue;
if(type == NULL || item == NULL || sceneId == NULL){
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;
cJSON *epNum = cJSON_GetObjectItem(item,MSG_SCENE_EPNUM);
epNum = cJSON_GetObjectItem(item,MSG_SCENE_EPNUM);
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;
cJSON *compareType = cJSON_GetObjectItem(item,MSG_SCENE_COMPARETYPE);
compareType = cJSON_GetObjectItem(item,MSG_SCENE_COMPARETYPE);
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;
res = kk_scene_insert_scene_trigger(type,deviceCode->valuestring,epNum->valueint,
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
*************************************************************/
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 weekflag = 0;
if(str == NULL || sceneId == NULL){
return INVALID_PARAMETER;
}
cJSON *triggers = cJSON_GetObjectItem(str,MSG_SCENE_TRIGGERS);
triggers = cJSON_GetObjectItem(str,MSG_SCENE_TRIGGERS);
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;
cJSON * item = items->child;
item = items->child;
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(!strcmp("trigger/thing/property",type->valuestring)){
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)
}
}
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;
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;
time_t current = HAL_GetTime();
time_t newStart = kk_scene_creat_timer_starttime(weekflag,atoi(time->valuestring),current);
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;
}
......@@ -796,31 +810,36 @@ int kk_scene_push_timer_info(time_t starttime,int repeatday,char *sceneId)
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
int kk_scene_parse_scene_condition(const cJSON* str,const char *sceneId)
{
char weekflag = 0;
int res = 0;
cJSON *conditon,*items,*item;
cJSON *type;
cJSON *startTime;
cJSON *endTime;
cJSON *repeatday;
if(str == NULL || sceneId == NULL){
ERROR_PRINT("kk_scene_parse_scene_condition failed\n");
return INVALID_PARAMETER;
}
cJSON *conditon = cJSON_GetObjectItem(str,MSG_SCENE_CONDITIONS);
conditon = cJSON_GetObjectItem(str,MSG_SCENE_CONDITIONS);
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;
cJSON * item = items->child;
item = items->child;
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(!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;
cJSON *endTime = cJSON_GetObjectItem(item,MSG_SCENE_ENDTIME);
endTime = cJSON_GetObjectItem(item,MSG_SCENE_ENDTIME);
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;
weekflag = kk_scene_parse_repeatday(repeatday);
//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
{
int res = 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;
if(str == NULL || sceneId == NULL){
ERROR_PRINT("kk_scene_parse_scene_action failed\n");
return INVALID_PARAMETER;
}
cJSON *action = cJSON_GetObjectItem(str,MSG_SCENE_ACTIONS);
action = cJSON_GetObjectItem(str,MSG_SCENE_ACTIONS);
if(action == NULL) return FAIL_RETURN;
cJSON * item = action->child;
item = action->child;
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(!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;
cJSON *exeucteSceneId = cJSON_GetObjectItem(item,MSG_SCENE_SCENEID);
exeucteSceneId = cJSON_GetObjectItem(item,MSG_SCENE_SCENEID);
if(exeucteSceneId == NULL) return FAIL_RETURN;
kk_scene_insert_scene_embed(delay->valueint,exeucteSceneId->valuestring,sceneId);
}
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;
cJSON *arg = cJSON_GetObjectItem(item,MSG_COMMON_ARGS);
arg = cJSON_GetObjectItem(item,MSG_COMMON_ARGS);
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);
free(argStr);
}
else
{
propertySetType = 1;
cJSON *propertyName = cJSON_GetObjectItem(item,MSG_SCENE_PROPERTYNAME);
propertyName = cJSON_GetObjectItem(item,MSG_SCENE_PROPERTYNAME);
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;
cJSON *productType = cJSON_GetObjectItem(item,MSG_PRODUCT_TYPE_STR);
productType = cJSON_GetObjectItem(item,MSG_PRODUCT_TYPE_STR);
if(productType != NULL){
kk_subDev_set_action_by_productType(productType->valuestring,sceneId,propertyName->valuestring,
propertyValue->valuestring,type->valuestring);
}
else{
cJSON *deviceCode = cJSON_GetObjectItem(item,MSG_DEVICE_CODE_STR);
deviceCode = cJSON_GetObjectItem(item,MSG_DEVICE_CODE_STR);
if(deviceCode == NULL) return FAIL_RETURN;
cJSON *epNum = cJSON_GetObjectItem(item,MSG_SCENE_EPNUM);
epNum = cJSON_GetObjectItem(item,MSG_SCENE_EPNUM);
if(epNum == NULL){
epNum = 1;
iepnum = 1;
}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;
delay = delay->valueint;
int idelay = delay->valueint;
res = dm_mgr_get_device_by_devicecode(deviceCode->valuestring,&node);
if (res != SUCCESS_RETURN) {
item = item->next;
......@@ -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.propertyName,propertyName->valuestring,strlen(propertyName->valuestring));
memcpy(info.propertyValue,propertyValue->valuestring,strlen(propertyValue->valuestring));
info.epNum = epNum;
info.delay = delay;
info.epNum = iepnum;
info.delay = idelay;
kk_scene_action_add(node->fatherDeviceCode,sceneId,info);
}
res = kk_scene_insert_scene_action(type->valuestring,node->deviceCode,epNum,
propertyName->valuestring,propertyValue->valuestring,delay,sceneId,node->fatherDeviceCode);
res = kk_scene_insert_scene_action(type->valuestring,node->deviceCode,iepnum,
propertyName->valuestring,propertyValue->valuestring,idelay,sceneId,node->fatherDeviceCode);
if(res != SUCCESS_RETURN){
INFO_PRINT("kk_scene_insert_scene_action fail!!!\n");
return res;
......@@ -955,7 +989,7 @@ int kk_scene_parse_scene_muticontrol(const cJSON* str,const char *sceneId,int is
cJSON *type = NULL;
cJSON *deviceCode = NULL;
cJSON *epNum = NULL;
cJSON *arrayParam = NULL;
//cJSON *arrayParam = NULL;
dm_mgr_dev_node_t *node = NULL;
if(str == NULL){
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
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;
INFO_PRINT("[%d]startTime :%d\n",__LINE__,starttime);
INFO_PRINT("[%d]startTime :%ld\n",__LINE__,starttime);
hour = starttime/3600;
min = starttime%3600/60;
......@@ -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)
{
int hour,min,sec;
time_t newTime = 0;
char curWeek = 0;
int startNew = 0;
......@@ -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);
startNew = starttime + g_timezone*3600;
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*/
if((week > 0)&&(!(week &(1<<(curWeek-1)))))
......@@ -1242,6 +1275,8 @@ static time_t kk_scene_creat_timer_starttime(int week,int starttime,time_t curre
if(curWeek & week){
newTime = current + 86400*i;
return kk_scene_creat_new_starttime(startNew,newTime);
}else{
return kk_scene_creat_new_starttime(startNew,current);
}
}
}
......@@ -1249,6 +1284,7 @@ static time_t kk_scene_creat_timer_starttime(int week,int starttime,time_t curre
{
return kk_scene_creat_new_starttime(startNew,current);
}
}
/************************************************************
......@@ -1266,12 +1302,10 @@ int kk_scene_check_trigger_condition(const char *sceneId)
char *identifier = NULL;
char *compareType = NULL;
char *compareValue = NULL;
int propertyValueType = 0;
int conditionFlag = 0;
int sceneType = 0,isEnable = 0;
sqlite3_stmt *stmt;
char currentValue[64] = {0};
dm_mgr_dev_node_t *node = NULL;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
res = kk_scene_get_scene_info(sceneId,&sceneType,&isEnable);
if(res != SUCCESS_RETURN || isEnable != 1){
......@@ -1283,10 +1317,10 @@ int kk_scene_check_trigger_condition(const char *sceneId)
while(sqlite3_step(stmt) == SQLITE_ROW){
conditionFlag = 1;
pdeviceCode = sqlite3_column_text(stmt, DB_SCENETRIGGER_DEVICECODE);
identifier = sqlite3_column_text(stmt,DB_SCENETRIGGER_PROPERTYNAME);
compareType = sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPARETYPE);
compareValue = sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPAREVALUE);
pdeviceCode = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_DEVICECODE);
identifier = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_PROPERTYNAME);
compareType = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPARETYPE);
compareValue = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPAREVALUE);
kk_property_db_get_value_directly(pdeviceCode,identifier,currentValue);
INFO_PRINT("currentValue:%s\n",currentValue);
......@@ -1321,7 +1355,7 @@ int kk_scene_check_condition(const char *sceneId)
char curWeek = 0;
char repeatday = 0;
time_t startTime = 0,startTime_m = 0;
time_t endTime = 0,endTime_m = 0;
time_t endTime = 0;
int duration = 0;
int crossDay = 0;
int conditionFlag = 0;
......@@ -1342,7 +1376,7 @@ int kk_scene_check_condition(const char *sceneId)
startTime = (startTime - 86400) >= 0?(startTime - 86400) : startTime;
endTime = endTime + g_timezone*3600;
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){
duration = 86400- (startTime - endTime);
crossDay = 1;
......@@ -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__);
dm_mgr_dev_node_t *node = NULL;
kk_scene_action_info_t *actionInfo = NULL;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
if(deviceCode == NULL || propertyName == NULL || valueS == NULL){
ERROR_PRINT("[%d]kk_scene_send_action fail!!!\n",__LINE__);
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) {
return FAIL_RETURN;
}
......@@ -1683,7 +1716,7 @@ int kk_scene_execute_action(const char* sceneId,char *msgId)
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
next:
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){
for(idx = 0; idx < num;idx++){
if(!strcmp(gwdevice[idx],gwdeviceCode)){
......@@ -1700,9 +1733,9 @@ next:
free(out);
}
else{
deviceCode = sqlite3_column_text(stmt, DB_SCENEACTION_DEVICECODE);
propertyName = sqlite3_column_text(stmt,DB_SCENEACTION_PROPERTYNAME);
propertyValue = sqlite3_column_text(stmt,DB_SCENEACTION_PROPERTYVALUE);
deviceCode = (char*)sqlite3_column_text(stmt, DB_SCENEACTION_DEVICECODE);
propertyName = (char*)sqlite3_column_text(stmt,DB_SCENEACTION_PROPERTYNAME);
propertyValue = (char*)sqlite3_column_text(stmt,DB_SCENEACTION_PROPERTYVALUE);
delay = sqlite3_column_int(stmt,DB_SCENEACTION_DELAY);
res = kk_scene_start_action(deviceCode,propertyName,propertyValue,delay);
}
......@@ -1773,7 +1806,7 @@ static int kk_scene_embed_find(const char *sceneId)
INFO_PRINT("kk_scene_embed_find:%s\n",sceneId);
find = 1;
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){
kk_scene_push_embed_list(delay,executeSceneId);
......@@ -1837,10 +1870,10 @@ static int kk_scene_invokeService_find(const char *sceneId)
while(sqlite3_step(stmt) == SQLITE_ROW){
find = 1;
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)){
args = sqlite3_column_text(stmt,DB_SCENEINVOKESERVICE_args);
args = (char*)sqlite3_column_text(stmt,DB_SCENEINVOKESERVICE_args);
kk_scene_enableScene_handle(args);
break;
}
......@@ -1861,7 +1894,6 @@ int kk_scene_query_trigger_info(const char *deviceCode,cJSON *param)
{
int res = FAIL_RETURN;
char *sqlCmd = NULL;
char *zErrMsg = 0;
char *sceneId = NULL;
char *identifier = NULL;
char *compareType = NULL;
......@@ -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);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
sceneId = sqlite3_column_text(stmt, DB_SCENETRIGGER_SCENEID);
identifier = sqlite3_column_text(stmt,DB_SCENETRIGGER_PROPERTYNAME);
compareType = sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPARETYPE);
compareValue = sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPAREVALUE);
sceneId = (char*)sqlite3_column_text(stmt, DB_SCENETRIGGER_SCENEID);
identifier = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_PROPERTYNAME);
compareType = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPARETYPE);
compareValue = (char*)sqlite3_column_text(stmt,DB_SCENETRIGGER_COMPAREVALUE);
isAnd = sqlite3_column_int(stmt,DB_SCENETRIGGER_ISAND);
res = kk_scene_get_scene_info(sceneId,&sceneType,&isEnable);
if(res == SUCCESS_RETURN && isEnable && isAnd == 0){
......@@ -1940,7 +1972,7 @@ int kk_scene_execute_scene(const char *sceneId,const char *msgId)
//res = kk_scene_check_condition(sceneId);
//if(res == SUCCESS_RETURN){
_kk_scene_lock();
res = kk_scene_execute_action(sceneId,msgId);
res = kk_scene_execute_action(sceneId,(char*)msgId);
_kk_scene_unlock();
//}
}
......
......@@ -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_trigger_condition(const char *sceneId);
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
......@@ -3,6 +3,7 @@
#include "kk_dm_mng.h"
#include "sqlite3.h"
#include "kk_log.h"
#include "kk_hal.h"
#include "kk_timer_handle.h"
//#define KK_AREA_DB_FILE "kk_area.db"
......@@ -66,7 +67,7 @@ static void _kk_timer_unlock(void)
void *kk_timer_yield(void *args)
{
uint64_t current_time = 0;
kk_timer_info_t *ptr = NULL,*ptemp = NULL;
kk_timer_info_t *ptr = NULL;
while (1) {
current_time = HAL_GetTime();
_kk_timer_lock();
......@@ -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)
{
kk_timer_ctx_t *ctx = _kk_timer_get_ctx();
int res = 0;
int index = 0;
char identifier_name[256] = {0};
if(shadow == NULL){
return INVALID_PARAMETER;
......@@ -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)
{
kk_timer_ctx_t *ctx = _kk_timer_get_ctx();
int res = 0;
int index = 0;
char identifier_name[256] = {0};
if(shadow == NULL){
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
int _kk_msg_property_set(kk_tsl_t *dev_shadow, kk_msg_request_payload_t *request)
{
int res = 0, message_len = 0;
char *message = NULL;
int res = 0;
lite_cjson_t lite;
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
char **value_str)
{
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)) {
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
int index = 0;
kk_tsl_event_t *property = 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)) {
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,
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;
int res = 0, devid = 0;
int res = 0;
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
int kk_tsl_get_property_number(_IN_ kk_tsl_t *shadow, _OU_ int *number)
{
int res = 0;
int index = 0;
kk_tsl_event_t *property = NULL;
if (shadow == NULL || number == NULL) {
......@@ -1250,7 +1246,6 @@ static int _kk_tsl_post_property_add(_IN_ void *handle, _IN_ char *identifier, _
{
int res = 0;
dm_api_property_t *dapi_property = NULL;
dm_mgr_dev_node_t *node = NULL;
if (handle == NULL || identifier == NULL || identifier_len <= 0) {
return INVALID_PARAMETER;
......@@ -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)
{
int res = 0;
char *payload = NULL;
dm_api_property_t *dapi_property = NULL;
......@@ -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)
{
int res = 0, msgid = 0, property_identifier_len = 0, post_property_reply = 0;
int res = 0, property_identifier_len = 0;
void *property_handle = NULL;
kk_tsl_api_ctx_t *kk_tsl_api_ctx = _kk_tsl_api_get_ctx();
_kk_tsl_api_lock();
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
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) {
return INVALID_PARAMETER;
}
......@@ -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 res = 0;
if (dev_shadow == NULL || identifier == NULL || service == NULL || *service != NULL) {
return INVALID_PARAMETER;
}
......
......@@ -95,4 +95,9 @@ int dm_tsl_set_service_input_output_value(_IN_ kk_tsl_data_target_e type, _IN_ k
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);
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
......@@ -180,5 +180,9 @@ typedef struct {
int service_number;
kk_tsl_service_t *services; //service array, type is dm_shw_service_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
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "kk_utils.h"
#include "kk_log.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
static int _kk_tsl_service_inputdatas_get_parse(_IN_ kk_tsl_t *shadow, _IN_ kk_tsl_service_t *service,
_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);
if (service->input_data_number == 0) {
return SUCCESS_RETURN;
......
#include <pthread.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)
......@@ -297,7 +298,7 @@ int kk_utils_json_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int
}
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));
......
#ifndef __KK_UTILS_H__
#define __KK_UTILS_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_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);
void kk_MutexUnLock(void *mutex);
void kk_MutexDestroy(void *mutex);
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
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