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

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

parent c27371dc
......@@ -15,19 +15,7 @@ typedef struct {
sqlite3 *pDb;
} 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};
......@@ -185,7 +173,8 @@ static int _kk_check_dev_exist(const char* deviceCode)
while(sqlite3_step(stmt) == SQLITE_ROW){
pDeviceCode = sqlite3_column_text(stmt, DB_DEV_DEVICECODE);
if(!strcmp(deviceCode,pDeviceCode))
{
{
isExist = 1;
break;
}
......
......@@ -7,6 +7,18 @@ typedef struct kk_dev_list{
struct kk_dev_list * next;
}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
......@@ -22,7 +22,6 @@ int dm_ota_init(void)
dm_ota_ctx_t *ctx = _dm_ota_get_ctx();
memset(ctx, 0, sizeof(dm_ota_ctx_t));
HAL_GetProduct_Type(ctx->productType);
HAL_GetProduct_Code(ctx->deviceCode);
return SUCCESS_RETURN;
......
......@@ -508,7 +508,7 @@ static void _dm_mgr_destroy_devlist(void)
free(del_node);
}
}
extern char *kk_sync_get_info();
int dm_mgr_init(void)
{
int res = 0;
......@@ -527,11 +527,12 @@ int dm_mgr_init(void)
/* Init Device Id*/
ctx->global_devid = 1;
kk_property_db_init();
/* Init Device List */
INIT_LIST_HEAD(&ctx->dev_list);
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);
if (res != SUCCESS_RETURN) {
goto ERROR;
......@@ -1086,7 +1087,7 @@ int dm_mgr_upstream_thing_topo_get(void)
memset(&request, 0, sizeof(dm_msg_request_t));
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);
......
......@@ -29,14 +29,7 @@ typedef struct {
sqlite3 *pDb;
} kk_property_db_ctx_t;
typedef enum{
DB_IDX = 0,
DB_DEVICECODE,
DB_IDENTIFITER,
DB_VALUE,
DB_VALUETYPE,
DB_DEVTYPE
};
typedef enum{
DB_LOCKKEY_IDX = 0,
......@@ -184,7 +177,7 @@ static int _kk_check_property_exist(const char* deviceCode,const char* identifie
pIdentifier = sqlite3_column_text(stmt, DB_IDENTIFITER);
if(!strcmp(deviceCode,pDeviceCode)&&!strcmp(identifier,pIdentifier))
{
{
isExist = 1;
break;
}
......
......@@ -8,6 +8,14 @@ typedef struct{
char raw[60];
}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);
#endif
......
......@@ -22,20 +22,7 @@ typedef struct {
int subDevNum;
sqlite3 *pDb;
} 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 *_kk_subDb_get_ctx(void)
......@@ -128,12 +115,12 @@ static int _kk_load_subDevice(void)
_kk_subDb_lock();
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
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,
sqlite3_column_text(stmt, DB_PRODUCTCODE),
sqlite3_column_text(stmt, DB_DEVICECODE),
sqlite3_column_text(stmt, DB_MAC),
sqlite3_column_text(stmt, DB_FATHERDEVICECODE),
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),
KK_DEV_UNKNOW,&devId,&heartbeat);
if(res != SUCCESS_RETURN){
......@@ -147,11 +134,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_DEVICECODE));
kk_property_sync_values(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_DEVICECODE));
kk_dm_gw_status_check_push(sqlite3_column_text(stmt, DB_SUB_DEVICECODE));
}
//post the property to cloud
//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)
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_DEVICECODE);
pmac = sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
if(!strcmp(deviceCode,pmac))
{
{
isExist = 1;
break;
}
......@@ -447,15 +435,15 @@ int kk_subDev_send_property_get_from_db(void)
_kk_subDb_lock();
sqlite3_prepare_v2(ctx->pDb, searchCmd, strlen(searchCmd), &stmt, NULL);
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){
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) {
continue;
}
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);
......@@ -490,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_DEVICECODE);
pDeviceCode = 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);
......@@ -540,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_DEVICECODE);
pDeviceCode = sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
if (!strcmp(deviceCode,pDeviceCode)) {
res = 1;
}
......@@ -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);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
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);
if (res != SUCCESS_RETURN) {
continue;
......
......@@ -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_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
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