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

【修改内容】增加同步接口,待调试

parent c27371dc
...@@ -15,19 +15,7 @@ typedef struct { ...@@ -15,19 +15,7 @@ typedef struct {
sqlite3 *pDb; sqlite3 *pDb;
} kk_area_ctx_t; } kk_area_ctx_t;
typedef enum{
DB_IDX = 0,
DB_ROOM_NAME,
DB_ROOM_ID,
};
typedef enum{
DB_DEV_IDX = 0,
DB_DEV_ROOM_ID,
DB_DEV_DEVICECODE,
DB_DEV_EPNUM,
};
static kk_area_ctx_t s_kk_area_ctx = {NULL,0,NULL}; static kk_area_ctx_t s_kk_area_ctx = {NULL,0,NULL};
...@@ -185,7 +173,8 @@ static int _kk_check_dev_exist(const char* deviceCode) ...@@ -185,7 +173,8 @@ static int _kk_check_dev_exist(const char* deviceCode)
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
pDeviceCode = sqlite3_column_text(stmt, DB_DEV_DEVICECODE); pDeviceCode = sqlite3_column_text(stmt, DB_DEV_DEVICECODE);
if(!strcmp(deviceCode,pDeviceCode)) if(!strcmp(deviceCode,pDeviceCode))
{
{
isExist = 1; isExist = 1;
break; break;
} }
...@@ -259,32 +248,32 @@ int kk_room_dev_remove(const char *deviceCode,const char *epNum) ...@@ -259,32 +248,32 @@ 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;
if(deviceCode == NULL){ if(deviceCode == NULL){
return FAIL_RETURN; return FAIL_RETURN;
} }
while(ptr!=NULL){ while(ptr!=NULL){
pre = ptr; pre = ptr;
if(strcmp(ptr->deviceCode,deviceCode) == 0){ if(strcmp(ptr->deviceCode,deviceCode) == 0){
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
ptr = ptr->next; ptr = ptr->next;
} }
ptr = (kk_dev_list_t*)malloc(sizeof(kk_dev_list_t)); ptr = (kk_dev_list_t*)malloc(sizeof(kk_dev_list_t));
memset(ptr,0,sizeof(kk_dev_list_t)); memset(ptr,0,sizeof(kk_dev_list_t));
memcpy(ptr->deviceCode,deviceCode,strlen(deviceCode)); memcpy(ptr->deviceCode,deviceCode,strlen(deviceCode));
if(s_device_list==NULL){ if(s_device_list==NULL){
s_device_list = ptr; s_device_list = ptr;
}else{ }else{
pre->next = ptr; pre->next = ptr;
} }
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
......
...@@ -7,6 +7,18 @@ typedef struct kk_dev_list{ ...@@ -7,6 +7,18 @@ 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{
DB_ROOM_IDX = 0,
DB_ROOM_NAME,
DB_ROOM_ID,
};
typedef enum{
DB_DEV_IDX = 0,
DB_DEV_ROOM_ID,
DB_DEV_DEVICECODE,
DB_DEV_EPNUM,
};
#endif #endif
...@@ -22,7 +22,6 @@ int dm_ota_init(void) ...@@ -22,7 +22,6 @@ int dm_ota_init(void)
dm_ota_ctx_t *ctx = _dm_ota_get_ctx(); dm_ota_ctx_t *ctx = _dm_ota_get_ctx();
memset(ctx, 0, sizeof(dm_ota_ctx_t)); memset(ctx, 0, sizeof(dm_ota_ctx_t));
HAL_GetProduct_Type(ctx->productType);
HAL_GetProduct_Code(ctx->deviceCode); HAL_GetProduct_Code(ctx->deviceCode);
return SUCCESS_RETURN; return SUCCESS_RETURN;
......
...@@ -508,7 +508,7 @@ static void _dm_mgr_destroy_devlist(void) ...@@ -508,7 +508,7 @@ static void _dm_mgr_destroy_devlist(void)
free(del_node); free(del_node);
} }
} }
extern char *kk_sync_get_info();
int dm_mgr_init(void) int dm_mgr_init(void)
{ {
int res = 0; int res = 0;
...@@ -527,11 +527,12 @@ int dm_mgr_init(void) ...@@ -527,11 +527,12 @@ int dm_mgr_init(void)
/* Init Device Id*/ /* Init Device Id*/
ctx->global_devid = 1; ctx->global_devid = 1;
kk_property_db_init(); kk_property_db_init();
/* Init Device List */ /* Init Device List */
INIT_LIST_HEAD(&ctx->dev_list); INIT_LIST_HEAD(&ctx->dev_list);
HAL_Get_mac(mac); HAL_Get_mac(mac);
kk_sync_init();
//kk_sync_get_info();
res = dm_mgr_device_create(KK_DM_DEVICE_CCU,KK_DM_CCU_DEVICE_PRODUCT_CODE,KK_CCU_ID,mac,"",KK_DEV_UNKNOW,&devId,&heartbeat); res = dm_mgr_device_create(KK_DM_DEVICE_CCU,KK_DM_CCU_DEVICE_PRODUCT_CODE,KK_CCU_ID,mac,"",KK_DEV_UNKNOW,&devId,&heartbeat);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
goto ERROR; goto ERROR;
...@@ -1086,7 +1087,7 @@ int dm_mgr_upstream_thing_topo_get(void) ...@@ -1086,7 +1087,7 @@ int dm_mgr_upstream_thing_topo_get(void)
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 = DM_URI_THING_TOPO_GET;
HAL_GetProduct_Code(request.deviceCode); HAL_GetDevice_Code(request.deviceCode);
res = _dm_mgr_search_dev_by_pkdn(request.deviceCode, &node); res = _dm_mgr_search_dev_by_pkdn(request.deviceCode, &node);
......
...@@ -29,14 +29,7 @@ typedef struct { ...@@ -29,14 +29,7 @@ typedef struct {
sqlite3 *pDb; sqlite3 *pDb;
} kk_property_db_ctx_t; } kk_property_db_ctx_t;
typedef enum{
DB_IDX = 0,
DB_DEVICECODE,
DB_IDENTIFITER,
DB_VALUE,
DB_VALUETYPE,
DB_DEVTYPE
};
typedef enum{ typedef enum{
DB_LOCKKEY_IDX = 0, DB_LOCKKEY_IDX = 0,
...@@ -184,7 +177,7 @@ static int _kk_check_property_exist(const char* deviceCode,const char* identifie ...@@ -184,7 +177,7 @@ static int _kk_check_property_exist(const char* deviceCode,const char* identifie
pIdentifier = sqlite3_column_text(stmt, DB_IDENTIFITER); pIdentifier = sqlite3_column_text(stmt, DB_IDENTIFITER);
if(!strcmp(deviceCode,pDeviceCode)&&!strcmp(identifier,pIdentifier)) if(!strcmp(deviceCode,pDeviceCode)&&!strcmp(identifier,pIdentifier))
{ {
isExist = 1; isExist = 1;
break; break;
} }
......
...@@ -8,6 +8,14 @@ typedef struct{ ...@@ -8,6 +8,14 @@ typedef struct{
char raw[60]; char raw[60];
}kk_prop_raw_struct_t; }kk_prop_raw_struct_t;
typedef enum{
DB_IDX = 0,
DB_DEVICECODE,
DB_IDENTIFITER,
DB_VALUE,
DB_VALUETYPE,
DB_DEVTYPE
};
int kk_property_db_init(void); int kk_property_db_init(void);
#endif #endif
......
...@@ -22,20 +22,7 @@ typedef struct { ...@@ -22,20 +22,7 @@ typedef struct {
int subDevNum; int subDevNum;
sqlite3 *pDb; sqlite3 *pDb;
} kk_subDb_ctx_t; } kk_subDb_ctx_t;
typedef enum{
DB_IDX = 0,
DB_ONLINE,
DB_PRODUCTCODE,
DB_DEVICECODE,
DB_MAC,
DB_FATHERDEVICECODE,
DB_VERSION,
DB_AUTH,
DB_DEVTYPE,
DB_HEARTBEAT,
DB_PRODUCTTYPE,
DB_SCENESUPPORT
};
static kk_subDb_ctx_t s_kk_subDb_ctx = {NULL,0,NULL}; static kk_subDb_ctx_t s_kk_subDb_ctx = {NULL,0,NULL};
static kk_subDb_ctx_t *_kk_subDb_get_ctx(void) static kk_subDb_ctx_t *_kk_subDb_get_ctx(void)
...@@ -128,12 +115,12 @@ static int _kk_load_subDevice(void) ...@@ -128,12 +115,12 @@ static int _kk_load_subDevice(void)
_kk_subDb_lock(); _kk_subDb_lock();
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
deviceType = sqlite3_column_int(stmt, DB_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_PRODUCTCODE), sqlite3_column_text(stmt, DB_SUB_PRODUCTCODE),
sqlite3_column_text(stmt, DB_DEVICECODE), sqlite3_column_text(stmt, DB_SUB_DEVICECODE),
sqlite3_column_text(stmt, DB_MAC), sqlite3_column_text(stmt, DB_SUB_MAC),
sqlite3_column_text(stmt, DB_FATHERDEVICECODE), 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){
...@@ -147,11 +134,11 @@ static int _kk_load_subDevice(void) ...@@ -147,11 +134,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_DEVICECODE)); kk_property_sync_values(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_DEVICECODE)); kk_dm_gw_status_check_push(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));
...@@ -209,9 +196,10 @@ static int _kk_check_subDev_exist(const char* deviceCode) ...@@ -209,9 +196,10 @@ 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_DEVICECODE); pmac = sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
if(!strcmp(deviceCode,pmac)) if(!strcmp(deviceCode,pmac))
{
{
isExist = 1; isExist = 1;
break; break;
} }
...@@ -447,15 +435,15 @@ int kk_subDev_send_property_get_from_db(void) ...@@ -447,15 +435,15 @@ int kk_subDev_send_property_get_from_db(void)
_kk_subDb_lock(); _kk_subDb_lock();
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL); sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){ while(sqlite3_step(stmt) == SQLITE_ROW){
isOffline = sqlite3_column_int(stmt, DB_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_DEVICECODE), &node); res = dm_mgr_get_device_by_devicecode(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_DEVICECODE)); dm_msg_thing_property_post_all(sqlite3_column_text(stmt, DB_SUB_DEVICECODE));
} }
} }
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
...@@ -490,7 +478,7 @@ int kk_subDev_send_property_get(const char *fatherDeviceCode) ...@@ -490,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_DEVICECODE); pDeviceCode = 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);
...@@ -540,7 +528,7 @@ int kk_subDev_check_scene_support(const char *deviceCode) ...@@ -540,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_DEVICECODE); pDeviceCode = sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
if (!strcmp(deviceCode,pDeviceCode)) { if (!strcmp(deviceCode,pDeviceCode)) {
res = 1; res = 1;
} }
...@@ -598,7 +586,7 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *scen ...@@ -598,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_DEVICECODE); pDeviceCode = 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;
......
...@@ -10,6 +10,19 @@ int kk_subDev_delete_byMac(char device_mac[DEVICE_MAC_MAXLEN]); ...@@ -10,6 +10,19 @@ 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_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);
typedef enum{
DB_SUB_IDX = 0,
DB_SUB_ONLINE,
DB_SUB_PRODUCTCODE,
DB_SUB_DEVICECODE,
DB_SUB_MAC,
DB_SUB_FATHERDEVICECODE,
DB_SUB_VERSION,
DB_SUB_AUTH,
DB_SUB_DEVTYPE,
DB_SUB_HEARTBEAT,
DB_SUB_PRODUCTTYPE,
DB_SUB_SCENESUPPORT
};
#endif #endif
This diff is collapsed.
#ifndef _KK_SYNC_DATA_H_
#define _KK_SYNC_DATA_H_
#include "kk_tsl_common.h"
#define KK_SYNC_CODE_STR "code"
#define KK_SYNC_DATA_STR "data"
#define KK_SYNC_ROOMS_STR "rooms"
#define KK_SYNC_ROOMID_STR "roomId"
#define KK_SYNC_DEVICES_STR "devices"
#define KK_SYNC_DEVICECODE_STR "deviceCode"
#define KK_SYNC_NANE_STR "name"
#define KK_SYNC_SCENEID_STR "sceneId"
#define KK_SYNC_SCENE_STR "scenes"
#define KK_SYNC_VERSION_STR "firmwareVersion"
#define KK_SYNC_MAC_STR "mac"
#define KK_SYNC_ONLINE_STR "onlineStatus"
#define KK_SYNC_PRODUCTCODE_STR "productCode"
#define KK_SYNC_PROPERTY_STR "properties"
#define KK_SYNC_SN_STR "sn"
#define KK_SYNC_STATUS_STR "status"
#define KK_SYNC_SCENE_DELAY_STR "delay"
#define KK_SYNC_SCENE_EPNUM_STR "epNum"
#define KK_SYNC_SCENE_PROPERTYNAME_STR "propertyName"
#define KK_SYNC_SCENE_PROPERTYVALUE_STR "propertyValue"
#define KK_SYNC_SCENE_TYPE_STR "type"
#define KK_SYNC_SCENE_ACTIONS_STR "actions"
#define KK_SYNC_SCENE_ENABLE_STR "enable"
#define KK_SYNC_SCENE_SCENETYPE_STR "sceneType"
#define KK_SYNC_SCENE_TRIGGER_STR "trigger"
#define KK_SYNC_SCENE_ITEMS_STR "items"
#define KK_SYNC_SCENE_CONDITION_STR "condition"
#define KK_SYNC_SCENE_COMPARETYPE_STR "compareType"
#define KK_SYNC_SCENE_COMPAREValue_STR "compareValue"
#define KK_SYNC_SCENE_STARTTIME_STR "startTime"
#define KK_SYNC_SCENE_ENDTIME_STR "endTime"
#define KK_SYNC_SCENE_CROSSDAY_STR "crossDay"
#define KK_SYNC_SCENE_REPEATDAY_STR "repeat_days"
#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