Commit c54ae908 authored by 陈伟灿's avatar 陈伟灿

Merge branch 'cwc' into 'master'

Cwc

See merge request chenweican/k-sdk!82
parents c27371dc 38361eed
......@@ -2,7 +2,7 @@
#ifndef MQTT_CONF_H_
#define MQTT_CONF_H_
#define ADDRESS "tcp://172.25.240.199:1883"//"tcp://172.25.240.31:1983"////
#define ADDRESS "tcp://172.25.240.31:1983"//"tcp://172.25.240.199:1883"//
#define CLIENTID "CCU.%s.%s"
#define PAYLOAD "Hello World!"
......
......@@ -431,12 +431,12 @@ static char * _kk_data_create(const char *topic,const char *data)
char deviceCode[DEVICE_CODE_LEN] = {0};
char * msgStr = NULL;
res =_kk_topic_parse_pkdn((char *)topic,3,productCode,deviceCode);
res =_kk_topic_parse_pkdn((char *)topic,2,productCode,deviceCode);
//if(!strcmp("gateway_2",productCode)){
//memset(productCode,0x0,sizeof(productCode));
//memcpy(productCode,"2",strlen("2"));
//}
res|=_kk_topic_parse_msgType((char *)topic,5,&msgStr);
res|=_kk_topic_parse_msgType((char *)topic,4,&msgStr);
infoStr_len = strlen(DM_MSG_TO_MIDDWARE)+strlen(productCode)+strlen(deviceCode)+strlen(msgStr)+10;
infoStr = malloc(infoStr_len);
if(infoStr == NULL){
......
......@@ -99,7 +99,7 @@ static int kk_info_get(char *str)
}
}
str_tmp = cJSON_PrintUnformatted(root);
INFO_PRINT("JSON %s\r\n", str_tmp);
//INFO_PRINT("JSON %s\r\n", str_tmp);
strcpy(str, str_tmp);
free(str_tmp);
cJSON_Delete(root);
......@@ -124,10 +124,10 @@ void *kk_info_nanomsg_send(void *data)
memset(str,0x0,sizeof(str));
ret = kk_info_get(str);
if(ret == 0){
printf("*********nn_send***********\n");
//printf("*********nn_send***********\n");
ret = nn_send(socketfd, str, strlen(str), 1);
if(ret < 0) {
WARNING_PRINT("[%s][%d]nn_send fail!!!\n",__FUNCTION__,__LINE__);
//WARNING_PRINT("[%s][%d]nn_send fail!!!\n",__FUNCTION__,__LINE__);
}
}
sleep(10);
......
......@@ -353,7 +353,6 @@ int kk_start_ccu_register(void)
return -1;
}
printf("\n get %s\n",buf);
char* json = strstr(buf,"\r\n\r\n");
if(registerType == 1){//get deviceSecret
char* deviceSecret = strstr(buf,"deviceSecret");
if(deviceSecret != NULL){
......@@ -379,6 +378,7 @@ int kk_start_ccu_register(void)
if(jwt != NULL){
char* start = strchr(buf,'{');
char* end = strrchr(buf,'}');
if(start != NULL && end != NULL){
strncpy(buf2,start,end-start+1);
ret = kk_parse_token(buf2);
if(ret == 0){
......@@ -389,6 +389,7 @@ int kk_start_ccu_register(void)
}
}
}
}
close(sockfd);
return -1;
}
\ No newline at end of file
......@@ -12,7 +12,7 @@ const char KK_URI_SYS_PREFIX[] = "biz/kk/%s/%s/thing/service/property/set";
const char KK_URI_SYS_PREFIX_SERVICE[] = "biz/kk/%s/%s/thing/service/+";
const char KK_URI_SYS_PREFIX_TOPO_CHANGE[] = "biz/kk/%s/%s/thing/topo/change";
const char KK_URI_SYS_PREFIX_EX[] = "biz/kk/%s/%s";
const char KK_URI_OTA_PREFIX[] = "/ota/device/upgrade/kk/%s/%s/#";
const char KK_URI_OTA_PREFIX[] = "ota/device/%s/%s/upgrade";
const char KK_URI_OTA_PROCESS[] = "/ota/device/progress/%s/%s";
const char KK_URI_OTA_INFORM[] = "/ota/device/inform/%s/%s";
......@@ -54,8 +54,8 @@ int KK_Subdev_Subscribe(const cJSON *root)
memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_OTA_PREFIX, productCode->valuestring, deviceCode->valuestring);
//INFO_PRINT("ota [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
//res = KK_MQTT_SubTopic(url);
INFO_PRINT("ota [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
res = KK_MQTT_SubTopic(url);
memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_SYS_PREFIX, productCode->valuestring, deviceCode->valuestring);
......
......@@ -208,7 +208,7 @@ MQTTAsync KK_MQTT_Connect(void)
fclose(fp);
}
HAL_Get_mac(mac);
sprintf(usrname, "%s&%s", KK_CCU_ID,KK_CCU_PRODUCTID);
sprintf(usrname, "%s.%s", KK_CCU_ID,KK_CCU_PRODUCTID);
printf("cliendid:%s,usrname:%s\n",g_clientId,usrname);
printf("------------>token:%s\n",token);
if ((rc = MQTTAsync_createWithOptions(&s_Client, ADDRESS, g_clientId, MQTTCLIENT_PERSISTENCE_NONE, NULL,&opts)) != MQTTASYNC_SUCCESS)
......
......@@ -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