Commit f7abf54d authored by 尹佳钦's avatar 尹佳钦

20210727

parent af5cfaad
...@@ -67,7 +67,6 @@ static char *s_split_product[] = { ...@@ -67,7 +67,6 @@ static char *s_split_product[] = {
"3024" //肖邦系列三路面板 "3024" //肖邦系列三路面板
}; };
static int kk_utils_memtok(_IN_ char *input, _IN_ int input_len, _IN_ char delimiter, _IN_ int index, _OU_ int *offset) static int kk_utils_memtok(_IN_ char *input, _IN_ int input_len, _IN_ char delimiter, _IN_ int index, _OU_ int *offset)
{ {
int item_index = 0; int item_index = 0;
...@@ -232,7 +231,6 @@ int _kk_sendto_cloud(cJSON *root) ...@@ -232,7 +231,6 @@ int _kk_sendto_cloud(cJSON *root)
free(out); free(out);
free(topic); free(topic);
return RETURN_SUCCESS; return RETURN_SUCCESS;
} }
else if(strstr(msgTypeStr->valuestring,KK_FILTER_TOPO_BATCH_DELETE) != NULL){ else if(strstr(msgTypeStr->valuestring,KK_FILTER_TOPO_BATCH_DELETE) != NULL){
cJSON *params = NULL; cJSON *params = NULL;
...@@ -507,7 +505,6 @@ static char * _kk_data_create(const char *topic,const char *data) ...@@ -507,7 +505,6 @@ static char * _kk_data_create(const char *topic,const char *data)
free(msgStr); free(msgStr);
return NULL; return NULL;
} }
memset(infoStr,0x0,infoStr_len); memset(infoStr,0x0,infoStr_len);
snprintf(infoStr,infoStr_len,DM_MSG_TO_MIDDWARE,msgStr,productCode,deviceCode); snprintf(infoStr,infoStr_len,DM_MSG_TO_MIDDWARE,msgStr,productCode,deviceCode);
......
...@@ -61,7 +61,6 @@ extern int kk_info_report_start(void); ...@@ -61,7 +61,6 @@ extern int kk_info_report_start(void);
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
int rc = 0; int rc = 0;
open("kcloud",LOG_PID,LOG_USER); open("kcloud",LOG_PID,LOG_USER);
/*set the callback to get the device date to cloud*/ /*set the callback to get the device date to cloud*/
kk_ipc_init(IPC_APP2MID,(ipc_cb*)KK_Data_FromDev,NULL,NULL); kk_ipc_init(IPC_APP2MID,(ipc_cb*)KK_Data_FromDev,NULL,NULL);
......
...@@ -315,13 +315,11 @@ int kk_start_ccu_register(void) ...@@ -315,13 +315,11 @@ int kk_start_ccu_register(void)
if (inet_pton(AF_INET, IPSTR, &servaddr.sin_addr) <= 0 ){ if (inet_pton(AF_INET, IPSTR, &servaddr.sin_addr) <= 0 ){
printf("--inet_pton error!\n"); printf("--inet_pton error!\n");
close(sockfd);
return -1; return -1;
}; };
if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0){ if (connect(sockfd, (struct sockaddr *)&servaddr, sizeof(servaddr)) < 0){
printf("connect error!\n"); printf("connect error!\n");
close(sockfd);
return -1; return -1;
} }
printf("connect successful\n"); printf("connect successful\n");
......
...@@ -63,10 +63,12 @@ int KK_Subdev_Subscribe(const cJSON *root) ...@@ -63,10 +63,12 @@ int KK_Subdev_Subscribe(const cJSON *root)
snprintf(url, url_len, KK_URI_SYS_PREFIX, productCode->valuestring, deviceCode->valuestring); snprintf(url, url_len, KK_URI_SYS_PREFIX, productCode->valuestring, deviceCode->valuestring);
INFO_PRINT("sys [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url); INFO_PRINT("sys [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
res = KK_MQTT_SubTopic(url); res = KK_MQTT_SubTopic(url);
memset(url, 0, url_len); memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_SYS_PREFIX_SERVICE, productCode->valuestring, deviceCode->valuestring); snprintf(url, url_len, KK_URI_SYS_PREFIX_SERVICE, productCode->valuestring, deviceCode->valuestring);
INFO_PRINT("sys [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url); INFO_PRINT("sys [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
res = KK_MQTT_SubTopic(url); res = KK_MQTT_SubTopic(url);
memset(url, 0, url_len); memset(url, 0, url_len);
snprintf(url, url_len, KK_URI_SYS_PREFIX_TOPO_CHANGE, productCode->valuestring, deviceCode->valuestring); snprintf(url, url_len, KK_URI_SYS_PREFIX_TOPO_CHANGE, productCode->valuestring, deviceCode->valuestring);
INFO_PRINT("sys [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url); INFO_PRINT("sys [%s][%d] URL:%s\n",__FUNCTION__,__LINE__,url);
......
...@@ -180,7 +180,6 @@ static void mqtt_set_callbacks(void) ...@@ -180,7 +180,6 @@ static void mqtt_set_callbacks(void)
MQTTAsync_setDeliveryCompleteCallback(s_Client,NULL,onDeliveryComplete); MQTTAsync_setDeliveryCompleteCallback(s_Client,NULL,onDeliveryComplete);
MQTTAsync_setConnected(s_Client,NULL,onConnectBuild); MQTTAsync_setConnected(s_Client,NULL,onConnectBuild);
MQTTAsync_setDisconnected(s_Client,NULL,onDisConnected); MQTTAsync_setDisconnected(s_Client,NULL,onDisConnected);
} }
void KK_Get_MqttClient(MQTTAsync *pClient) void KK_Get_MqttClient(MQTTAsync *pClient)
{ {
......
...@@ -478,7 +478,7 @@ static int kk_create_scene_to_sdk(cJSON *root) ...@@ -478,7 +478,7 @@ static int kk_create_scene_to_sdk(cJSON *root)
cJSON_AddItemToObject(root, "scenes", scenes); cJSON_AddItemToObject(root, "scenes", scenes);
return 0; return 0;
} }
int kk_create_syncinfo_to_sdk(void) int kk_create_syncinfo_to_sdk(cJSON *payload)
{ {
cJSON *air_box_devices; cJSON *air_box_devices;
cJSON *alarms; cJSON *alarms;
...@@ -529,6 +529,9 @@ int kk_create_syncinfo_to_sdk(void) ...@@ -529,6 +529,9 @@ int kk_create_syncinfo_to_sdk(void)
kk_create_devices_to_sdk(root); kk_create_devices_to_sdk(root);
kk_create_rooms_to_sdk(root);
#if 1 #if 1
...@@ -593,14 +596,17 @@ void KK_Data_FromMid(void* str,int len) ...@@ -593,14 +596,17 @@ void KK_Data_FromMid(void* str,int len)
if(typeJson == NULL) return; if(typeJson == NULL) return;
if (strstr(typeJson->valuestring,SYNC_MSG_TYPE_REPLY) != NULL){ if (strstr(typeJson->valuestring,SYNC_MSG_TYPE_REPLY) != NULL){
kk_parse_syncinfo(payload); kk_parse_syncinfo(payload);
kk_create_syncinfo_to_sdk(); kk_create_syncinfo_to_sdk(payload);
printf("TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT\n"); printf("TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT\n");
}else if((typeJson->valuestring,"/thing/event/property/post")!= NULL){ }else if(strstr(typeJson->valuestring,"/thing/event/property/post")!= NULL){
property_post_deal(deviceCode->valuestring,payload); property_post_deal(deviceCode->valuestring,payload);
}else if(strstr(typeJson->valuestring,"/thing/topo/delete")!= NULL){
device_delete_sync(payload);
}else if(strstr(typeJson->valuestring,"/thing/status/online")!= NULL){
device_add_sync(payload);
} }
} }
...@@ -162,7 +162,7 @@ int kk_creater_nodeid(char *deviceCode,int channel,char *nodeId) ...@@ -162,7 +162,7 @@ int kk_creater_nodeid(char *deviceCode,int channel,char *nodeId)
printf("channel=%d\n",channel); printf("channel=%d\n",channel);
printf("deviceCode=%s\n",deviceCode); printf("deviceCode=%s\n",deviceCode);
printf(",,,,\n"); printf(",,,,\n");
//INFO_PRINT("-------------->deviceCode=%s,channel=%d\n",deviceCode,channel); INFO_PRINT("-------------->deviceCode=%s,channel=%d\n",deviceCode,channel);
printf("aaa-1\n"); printf("aaa-1\n");
if(kk_check_lan_node_exist(deviceCode,channel)){ if(kk_check_lan_node_exist(deviceCode,channel)){
...@@ -187,7 +187,7 @@ int kk_creater_nodeid(char *deviceCode,int channel,char *nodeId) ...@@ -187,7 +187,7 @@ int kk_creater_nodeid(char *deviceCode,int channel,char *nodeId)
sprintf(nodeId,"%d",node); sprintf(nodeId,"%d",node);
printf("aaa-4\n"); printf("aaa-4\n");
//INFO_PRINT("[node]deviceCode=%s,channel=%d,node=%d,nodeId=%s\n",deviceCode,channel,node,nodeId); INFO_PRINT("[node]deviceCode=%s,channel=%d,node=%d,nodeId=%s\n",deviceCode,channel,node,nodeId);
return 0; return 0;
...@@ -280,6 +280,73 @@ int _deviceCode_switchto_mac(char * deviceCode,char *mac) ...@@ -280,6 +280,73 @@ int _deviceCode_switchto_mac(char * deviceCode,char *mac)
} }
typedef struct{
char *floor_id;
char *room_id;
char *room_icon;
char *room_name;
cJSON *room_status;
}ROOM_ITEM;
cJSON *_room_build(ROOM_ITEM *item)
{
cJSON *room = cJSON_CreateObject();
cJSON_AddStringToObject(room, "floor_id", item->floor_id);
cJSON_AddStringToObject(room, "id", item->room_id);
cJSON_AddStringToObject(room, "room_icon", item->room_icon);
cJSON_AddStringToObject(room, "name", item->room_name);
cJSON_AddItemToObject(room, "room_status", item->room_status);
return room;
}
cJSON *_rooms_build(int num,ROOM_ITEM **items)
{
cJSON *rooms = cJSON_CreateArray();
cJSON *room;
int i;
for(int i=0;i<num;i++){
room = _room_build(items[i]);
if(room!=NULL){
cJSON_AddItemToArray(rooms,room);
}
}
return rooms;
}
cJSON *kk_create_rooms_to_sdk(cJSON *payload)
{
cJSON *data_1 = cJSON_GetObjectItem(payload,"data");
cJSON *data_2 = cJSON_GetObjectItem(data_1,"data");
cJSON *rooms = cJSON_GetObjectItem(data_2,"rooms");
cJSON *room;
cJSON *roomId,*name,*devices,*scenes;
int i;
int num = cJSON_GetArraySize(rooms);
ROOM_ITEM* items = (ROOM_ITEM*)malloc(sizeof(ROOM_ITEM)*num);
ROOM_ITEM* item = item;
memset(items,0,(sizeof(ROOM_ITEM)*num));
for(i=0;i<num;i++,item++){
room = cJSON_GetArrayItem(rooms,i);
roomId = cJSON_GetObjectItem(room,"roomId");
name = cJSON_GetObjectItem(room,"name");
devices = cJSON_GetObjectItem(room,"devices");
scenes= cJSON_GetObjectItem(room,"scenes");
memcpy(item->floor_id,"",sizeof(""));
memcpy(item->room_id,roomId->valuestring,sizeof(roomId->valuestring));
memcpy(item->room_icon,"",sizeof(""));
memcpy(item->room_name,name->valuestring,sizeof(name->valuestring));
memcpy(item->room_status,"",sizeof(""));
}
_rooms_build(num,&items);
}
int kk_create_devices_to_sdk(cJSON *root) int kk_create_devices_to_sdk(cJSON *root)
{ {
...@@ -426,6 +493,8 @@ int kk_map_dev_search_by_deviceCode(char *deviceCode, kk_map_dev_node_t **node) ...@@ -426,6 +493,8 @@ int kk_map_dev_search_by_deviceCode(char *deviceCode, kk_map_dev_node_t **node)
{ {
kk_map_dev_ctx *ctx = _kk_map_dev_ctx(); kk_map_dev_ctx *ctx = _kk_map_dev_ctx();
kk_map_dev_node_t *search_node = NULL; kk_map_dev_node_t *search_node = NULL;
kk_map_dev_node_t *n = NULL;
//list_for_each_entry_safe
list_for_each_entry(search_node, &ctx->dev_list, linked_list, kk_map_dev_node_t) { list_for_each_entry(search_node, &ctx->dev_list, linked_list, kk_map_dev_node_t) {
if ( (strlen(search_node->deviceCode) == strlen(deviceCode)) && if ( (strlen(search_node->deviceCode) == strlen(deviceCode)) &&
......
...@@ -35,11 +35,15 @@ static void sig_handler(int sig) ...@@ -35,11 +35,15 @@ static void sig_handler(int sig)
abort(); abort();
} }
extern void ttttt_test();
int main(int argc, char* argv[]) int main(int argc, char* argv[])
{ {
int rc = 0; int rc = 0;
char *ppp; char *ppp;
open("kk_lan",LOG_PID,LOG_USER); open("kk_lan",LOG_PID,LOG_USER);
ttttt_test();
/*set the callback to get the device date to cloud*/ /*set the callback to get the device date to cloud*/
kk_ipc_init(IPC_APP2MID,(ipc_cb*)KK_Data_FromMid,NULL,NULL); kk_ipc_init(IPC_APP2MID,(ipc_cb*)KK_Data_FromMid,NULL,NULL);
kk_findccu_handle_init(); kk_findccu_handle_init();
...@@ -59,6 +63,8 @@ int main(int argc, char* argv[]) ...@@ -59,6 +63,8 @@ int main(int argc, char* argv[])
while(1){ while(1){
extern void kk_scene_build_test(void);
kk_scene_build_test();
//count++; //count++;
//if(count == 10){ //if(count == 10){
//kk_ipc_send(IPC_APP2MID, "wooooooooooooooooooooooooooooooooooollllll!", strlen("wooooooooooooooooooooooooooooooooooollllll!")+1); //kk_ipc_send(IPC_APP2MID, "wooooooooooooooooooooooooooooooooooollllll!", strlen("wooooooooooooooooooooooooooooooooooollllll!")+1);
......
...@@ -137,7 +137,6 @@ void __loop_init(Bloop_ctrl_t *loop_ctrl, struct ev_loop* loop) ...@@ -137,7 +137,6 @@ void __loop_init(Bloop_ctrl_t *loop_ctrl, struct ev_loop* loop)
int __nanomsg_init(Bloop_ctrl_t *loop_ctrl, ipc_type type,char* chlMark, char* ip) int __nanomsg_init(Bloop_ctrl_t *loop_ctrl, ipc_type type,char* chlMark, char* ip)
{ {
loop_ctrl->ba.n = -1; loop_ctrl->ba.n = -1;
loop_ctrl->ba.s = -1; loop_ctrl->ba.s = -1;
loop_ctrl->ab.n = -1; loop_ctrl->ab.n = -1;
...@@ -329,7 +328,6 @@ int kk_ipc_init(ipc_type type, ipc_cb cb, char* chlMark, char* ip) ...@@ -329,7 +328,6 @@ int kk_ipc_init(ipc_type type, ipc_cb cb, char* chlMark, char* ip)
if(loop_ctrl->cb != NULL){ if(loop_ctrl->cb != NULL){
WARNING_PRINT("middleware to platform ipc has been inited!\r\n"); WARNING_PRINT("middleware to platform ipc has been inited!\r\n");
return -1; return -1;
} }
if (__nanomsg_init(loop_ctrl, type, chlMark, ip) < 0) { if (__nanomsg_init(loop_ctrl, type, chlMark, ip) < 0) {
...@@ -457,11 +455,9 @@ int kk_ipc_send_ex(ipc_type type, void* data, int len, char* chalMark) ...@@ -457,11 +455,9 @@ int kk_ipc_send_ex(ipc_type type, void* data, int len, char* chalMark)
loop_ctrl->sendErrCnt = 0; loop_ctrl->sendErrCnt = 0;
loop_ctrl->isconnect = 1; loop_ctrl->isconnect = 1;
} }
} }
return 0; return 0;
} }
......
...@@ -49,6 +49,7 @@ typedef enum { ...@@ -49,6 +49,7 @@ typedef enum {
#define MSG_TOPO_CHANGE_DEVICES_STR "devices" #define MSG_TOPO_CHANGE_DEVICES_STR "devices"
#define MSG_DEVICE_MAC "mac" #define MSG_DEVICE_MAC "mac"
#define MSG_DEVICE_PARENTCODE "parentCode" #define MSG_DEVICE_PARENTCODE "parentCode"
#define MSG_AREA_ADDROOM_DEVICENAME "name"
#define MSG_AREA_ADDROOM_ROOMNAME "roomName" #define MSG_AREA_ADDROOM_ROOMNAME "roomName"
#define MSG_AREA_ROOM_ROOMID "roomId" #define MSG_AREA_ROOM_ROOMID "roomId"
#define MSG_AREA_ROOM_EPNUM "epNum" #define MSG_AREA_ROOM_EPNUM "epNum"
......
...@@ -267,7 +267,6 @@ static kk_tcp_ctrl_t* get_channel_by_deviceCode(char deviceCode[DEVICE_CODE_LEN] ...@@ -267,7 +267,6 @@ static kk_tcp_ctrl_t* get_channel_by_deviceCode(char deviceCode[DEVICE_CODE_LEN]
} }
} }
return NULL; return NULL;
} }
static kk_tcp_ctrl_t* get_channel_by_ip(char ip[MAX_IP_LEN]){ static kk_tcp_ctrl_t* get_channel_by_ip(char ip[MAX_IP_LEN]){
...@@ -285,7 +284,6 @@ static kk_tcp_ctrl_t* get_channel_by_ip(char ip[MAX_IP_LEN]){ ...@@ -285,7 +284,6 @@ static kk_tcp_ctrl_t* get_channel_by_ip(char ip[MAX_IP_LEN]){
} }
} }
return NULL; return NULL;
} }
#if 0 #if 0
...@@ -321,7 +319,6 @@ static int reset_by_sock(int sock){ ...@@ -321,7 +319,6 @@ static int reset_by_sock(int sock){
} }
} }
return -1; return -1;
} }
static int set_sock_by_ip(char ip[MAX_IP_LEN], int sock){ static int set_sock_by_ip(char ip[MAX_IP_LEN], int sock){
int i = 0; int i = 0;
...@@ -332,7 +329,6 @@ static int set_sock_by_ip(char ip[MAX_IP_LEN], int sock){ ...@@ -332,7 +329,6 @@ static int set_sock_by_ip(char ip[MAX_IP_LEN], int sock){
INFO_PRINT("[%s] ip=%s \n", __FUNCTION__,ip); INFO_PRINT("[%s] ip=%s \n", __FUNCTION__,ip);
for(;i < MAX_LISTEN_NUM; i++){ for(;i < MAX_LISTEN_NUM; i++){
if(strcmp(ip, g_tcp_ctrl[i].ip) == 0){ if(strcmp(ip, g_tcp_ctrl[i].ip) == 0){
g_tcp_ctrl[i].sock = sock; g_tcp_ctrl[i].sock = sock;
INFO_PRINT("[%s] idx=%d ip=%s sock=%d\n", __FUNCTION__,i, ip, g_tcp_ctrl[i].sock); INFO_PRINT("[%s] idx=%d ip=%s sock=%d\n", __FUNCTION__,i, ip, g_tcp_ctrl[i].sock);
//create mutex //create mutex
...@@ -343,12 +339,10 @@ static int set_sock_by_ip(char ip[MAX_IP_LEN], int sock){ ...@@ -343,12 +339,10 @@ static int set_sock_by_ip(char ip[MAX_IP_LEN], int sock){
return -1; return -1;
} }
} }
return 0; return 0;
} }
} }
return -1; return -1;
} }
int kk_is_tcp_channel(char devCode[DEVICE_CODE_LEN]){ int kk_is_tcp_channel(char devCode[DEVICE_CODE_LEN]){
...@@ -361,7 +355,6 @@ int kk_is_tcp_channel(char devCode[DEVICE_CODE_LEN]){ ...@@ -361,7 +355,6 @@ int kk_is_tcp_channel(char devCode[DEVICE_CODE_LEN]){
INFO_PRINT("[%s] devCode=%s \n", __FUNCTION__,devCode); INFO_PRINT("[%s] devCode=%s \n", __FUNCTION__,devCode);
for(;i < MAX_LISTEN_NUM; i++){ for(;i < MAX_LISTEN_NUM; i++){
if(strcmp(devCode, g_tcp_ctrl[i].deviceCode) == 0){ if(strcmp(devCode, g_tcp_ctrl[i].deviceCode) == 0){
INFO_PRINT("[%s] idx=%d ip=%s sock=%d\n", __FUNCTION__,i, g_tcp_ctrl[i].ip, g_tcp_ctrl[i].sock); INFO_PRINT("[%s] idx=%d ip=%s sock=%d\n", __FUNCTION__,i, g_tcp_ctrl[i].ip, g_tcp_ctrl[i].sock);
return g_tcp_ctrl[i].sock; return g_tcp_ctrl[i].sock;
} }
...@@ -396,7 +389,6 @@ int kk_set_tcp_channel(char devCode[DEVICE_CODE_LEN], char ip[MAX_IP_LEN]){ ...@@ -396,7 +389,6 @@ int kk_set_tcp_channel(char devCode[DEVICE_CODE_LEN], char ip[MAX_IP_LEN]){
} }
for(;i < MAX_LISTEN_NUM; i++){ for(;i < MAX_LISTEN_NUM; i++){
if(strcmp(devCode, g_tcp_ctrl[i].deviceCode) == 0){ if(strcmp(devCode, g_tcp_ctrl[i].deviceCode) == 0){
strncpy(g_tcp_ctrl[i].ip, ip, strlen(ip)); strncpy(g_tcp_ctrl[i].ip, ip, strlen(ip));
INFO_PRINT("find and replace it [%d][%s][%s] \n",i, g_tcp_ctrl[i].ip, devCode); INFO_PRINT("find and replace it [%d][%s][%s] \n",i, g_tcp_ctrl[i].ip, devCode);
...@@ -414,7 +406,6 @@ int kk_set_tcp_channel(char devCode[DEVICE_CODE_LEN], char ip[MAX_IP_LEN]){ ...@@ -414,7 +406,6 @@ int kk_set_tcp_channel(char devCode[DEVICE_CODE_LEN], char ip[MAX_IP_LEN]){
} }
if (isEmptyIdx != -1){ if (isEmptyIdx != -1){
strncpy(g_tcp_ctrl[isEmptyIdx].ip, ip, strlen(ip)); strncpy(g_tcp_ctrl[isEmptyIdx].ip, ip, strlen(ip));
strncpy(g_tcp_ctrl[isEmptyIdx].deviceCode, devCode, strlen(devCode)); strncpy(g_tcp_ctrl[isEmptyIdx].deviceCode, devCode, strlen(devCode));
INFO_PRINT("idx deviceCode ip[%d][%s][%s]",isEmptyIdx, g_tcp_ctrl[isEmptyIdx].deviceCode, g_tcp_ctrl[isEmptyIdx].ip); INFO_PRINT("idx deviceCode ip[%d][%s][%s]",isEmptyIdx, g_tcp_ctrl[isEmptyIdx].deviceCode, g_tcp_ctrl[isEmptyIdx].ip);
...@@ -423,7 +414,6 @@ int kk_set_tcp_channel(char devCode[DEVICE_CODE_LEN], char ip[MAX_IP_LEN]){ ...@@ -423,7 +414,6 @@ int kk_set_tcp_channel(char devCode[DEVICE_CODE_LEN], char ip[MAX_IP_LEN]){
} }
return -1; return -1;
} }
...@@ -698,7 +688,6 @@ int kk_tcp_channel_ser_send(char* data, int len, char chalMark[DEVICE_CODE_LEN]) ...@@ -698,7 +688,6 @@ int kk_tcp_channel_ser_send(char* data, int len, char chalMark[DEVICE_CODE_LEN])
printf("[%s] write failed!!!! \n",__FUNCTION__); printf("[%s] write failed!!!! \n",__FUNCTION__);
}*/ }*/
} }
} }
return ret; return ret;
} }
......
...@@ -69,8 +69,10 @@ static int _kk_area_db_init(void) ...@@ -69,8 +69,10 @@ static int _kk_area_db_init(void)
const char *pAreaDevTable = "CREATE TABLE IF NOT EXISTS AreaDevInfo( \ const char *pAreaDevTable = "CREATE TABLE IF NOT EXISTS AreaDevInfo( \
idx INTEGER PRIMARY KEY, \ idx INTEGER PRIMARY KEY, \
roomId varchar(256), \ roomId varchar(256), \
roomName varchar(256), \
deviceCode varchar(33), \ deviceCode varchar(33), \
epNum varchar(10))"; epNum varchar(10), \
devName varchar(256))";
if (sqlite3_exec(ctx->pDb, pAreaDevTable, NULL, NULL, &pcErr) != SQLITE_OK) if (sqlite3_exec(ctx->pDb, pAreaDevTable, NULL, NULL, &pcErr) != SQLITE_OK)
{ {
...@@ -84,8 +86,6 @@ static int _kk_area_db_init(void) ...@@ -84,8 +86,6 @@ static int _kk_area_db_init(void)
_kk_area_unlock(); _kk_area_unlock();
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
int kk_area_init(void) int kk_area_init(void)
{ {
int res = 0; int res = 0;
...@@ -103,20 +103,17 @@ int kk_area_init(void) ...@@ -103,20 +103,17 @@ int kk_area_init(void)
} }
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
int kk_room_add(const char *name,const char *roomId) int kk_room_add(const char *name,const char *roomId)
{ {
int res = 0; int res = 0;
kk_area_ctx_t *ctx = _kk_area_get_ctx(); kk_area_ctx_t *ctx = _kk_area_get_ctx();
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; char *zErrMsg = 0;
printf("--->kk_room_add,name=%s,roomid=%s\n",name,roomId);
const char *insertCmd = "insert into AreaInfo (name, roomId) \ const char *insertCmd = "insert into AreaInfo (name, roomId) \
values ('%s','%s');"; values ('%s','%s');";
_kk_area_lock(); _kk_area_lock();
ctx->roomNum++; ctx->roomNum++;
HAL_GetTime_s((char*)roomId);
sqlCmd = sqlite3_mprintf(insertCmd,name,roomId); sqlCmd = sqlite3_mprintf(insertCmd,name,roomId);
res = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg); res = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg);
...@@ -130,7 +127,6 @@ int kk_room_add(const char *name,const char *roomId) ...@@ -130,7 +127,6 @@ int kk_room_add(const char *name,const char *roomId)
_kk_area_unlock(); _kk_area_unlock();
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
int kk_room_delete(const char *roomId) int kk_room_delete(const char *roomId)
{ {
int res = 0; int res = 0;
...@@ -139,7 +135,6 @@ int kk_room_delete(const char *roomId) ...@@ -139,7 +135,6 @@ int kk_room_delete(const char *roomId)
char *zErrMsg = 0; char *zErrMsg = 0;
const char *deleteCmd = "delete from AreaInfo where roomId = '%s';"; const char *deleteCmd = "delete from AreaInfo where roomId = '%s';";
_kk_area_lock(); _kk_area_lock();
sqlCmd = sqlite3_mprintf(deleteCmd,roomId); sqlCmd = sqlite3_mprintf(deleteCmd,roomId);
...@@ -158,11 +153,12 @@ int kk_room_delete(const char *roomId) ...@@ -158,11 +153,12 @@ int kk_room_delete(const char *roomId)
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
static int _kk_check_dev_exist(const char* deviceCode) static int _kk_check_dev_exist(const char* deviceCode,const char *epNum)
{ {
int isExist = 0; int isExist = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *pDeviceCode = NULL; char *pDeviceCode = NULL;
char *pEpNum = NULL;
kk_area_ctx_t *ctx = _kk_area_get_ctx(); kk_area_ctx_t *ctx = _kk_area_get_ctx();
const char *searchCmd = "select * from AreaDevInfo;"; const char *searchCmd = "select * from AreaDevInfo;";
_kk_area_lock(); _kk_area_lock();
...@@ -171,9 +167,9 @@ static int _kk_check_dev_exist(const char* deviceCode) ...@@ -171,9 +167,9 @@ static int _kk_check_dev_exist(const char* deviceCode)
//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 = (char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE); pDeviceCode = (char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE);
if(!strcmp(deviceCode,pDeviceCode)) pEpNum = (char*)sqlite3_column_text(stmt, DB_DEV_EPNUM);
if(!strcmp(deviceCode,pDeviceCode) && !strcmp(pEpNum,epNum))
{ {
isExist = 1; isExist = 1;
break; break;
} }
...@@ -184,22 +180,22 @@ static int _kk_check_dev_exist(const char* deviceCode) ...@@ -184,22 +180,22 @@ static int _kk_check_dev_exist(const char* deviceCode)
return isExist; return isExist;
} }
int kk_room_dev_add(const char *roomId,const char *deviceCode,const char *epNum) int kk_room_dev_add(const char *roomId,const char *roomName,const char *deviceCode,const char *epNum,const char *devName)
{ {
int res = 0; int res = 0;
kk_area_ctx_t *ctx = _kk_area_get_ctx(); kk_area_ctx_t *ctx = _kk_area_get_ctx();
char *sqlCmd = NULL; char *sqlCmd = NULL;
char *zErrMsg = 0; char *zErrMsg = 0;
if(_kk_check_dev_exist(deviceCode)){
sqlCmd = sqlite3_mprintf("UPDATE AreaDevInfo SET roomId='%s', epNum='%s' \
WHERE deviceCode= '%s'",roomId,epNum,deviceCode);
if(_kk_check_dev_exist(deviceCode,epNum)){
sqlCmd = sqlite3_mprintf("UPDATE AreaDevInfo SET roomId='%s', devName='%s', devName='%s'\
WHERE deviceCode= '%s' and epNum = '%s'",roomId,roomName,devName,deviceCode,epNum);
} }
else{ else{
const char *insertCmd = "insert into AreaDevInfo (roomId, deviceCode, epNum) \ const char *insertCmd = "insert into AreaDevInfo (roomId, roomName, deviceCode, epNum, devName) \
values ('%s','%s','%s');"; values ('%s','%s','%s','%s','%s');";
sqlCmd = sqlite3_mprintf(insertCmd,roomId,deviceCode,epNum); sqlCmd = sqlite3_mprintf(insertCmd,roomId,roomName,deviceCode,epNum,devName);
} }
_kk_area_lock(); _kk_area_lock();
...@@ -223,6 +219,9 @@ int kk_room_dev_remove(const char *deviceCode,const char *epNum) ...@@ -223,6 +219,9 @@ int kk_room_dev_remove(const char *deviceCode,const char *epNum)
char *zErrMsg = 0; char *zErrMsg = 0;
const char *insertCmd = NULL; const char *insertCmd = NULL;
printf("deviceCode---->%s,%s\n",deviceCode,epNum);
if(epNum == NULL){ if(epNum == NULL){
insertCmd = "delete from AreaDevInfo where deviceCode = '%s';"; insertCmd = "delete from AreaDevInfo where deviceCode = '%s';";
} }
...@@ -244,8 +243,6 @@ int kk_room_dev_remove(const char *deviceCode,const char *epNum) ...@@ -244,8 +243,6 @@ int kk_room_dev_remove(const char *deviceCode,const char *epNum)
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
int kk_room_device_list_add(const char *deviceCode) int kk_room_device_list_add(const char *deviceCode)
{ {
//int len; //int len;
......
...@@ -16,14 +16,15 @@ enum{ ...@@ -16,14 +16,15 @@ enum{
enum{ enum{
DB_DEV_IDX = 0, DB_DEV_IDX = 0,
DB_DEV_ROOM_ID, DB_DEV_ROOM_ID,
DB_DEV_ROOM_NAME,
DB_DEV_DEVICECODE, DB_DEV_DEVICECODE,
DB_DEV_EPNUM, DB_DEV_EPNUM,
DB_DEV_DEV_NAME,
}; };
int kk_room_delete(const char *roomId); int kk_room_delete(const char *roomId);
int kk_room_add(const char *name,const char *roomId); int kk_room_add(const char *name,const char *roomId);
int kk_area_init(void); int kk_area_init(void);
int kk_room_dev_add(const char *roomId,const char *deviceCode,const char *epNum); int kk_room_dev_add(const char *roomId,const char *roomName,const char *deviceCode,const char *epNum,const char *devName);
int kk_room_dev_remove(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); int kk_room_device_list_add(const char *deviceCode);
kk_dev_list_t* kk_get_room_deviceCode(const char* roomId); kk_dev_list_t* kk_get_room_deviceCode(const char* roomId);
......
...@@ -199,14 +199,11 @@ void dm_ota_handle(void *data){ ...@@ -199,14 +199,11 @@ void dm_ota_handle(void *data){
}else{ }else{
printf("parse params error !! \n"); printf("parse params error !! \n");
} }
}else { }else {
printf("invaild ota type: [%d]\n", atoi(typeJson->valuestring)); printf("invaild ota type: [%d]\n", atoi(typeJson->valuestring));
} }
cJSON_Delete(json); cJSON_Delete(json);
cJSON_Delete(info); cJSON_Delete(info);
} }
int dm_ota_check(void* payload, int len, iotx_ota_topic_types_t type){ int dm_ota_check(void* payload, int len, iotx_ota_topic_types_t type){
...@@ -217,7 +214,6 @@ int dm_ota_check(void* payload, int len, iotx_ota_topic_types_t type){ ...@@ -217,7 +214,6 @@ int dm_ota_check(void* payload, int len, iotx_ota_topic_types_t type){
dm_ota_get_ota_handle(&otaHandle); dm_ota_get_ota_handle(&otaHandle);
return ota_callback(otaHandle, payload, len,type); return ota_callback(otaHandle, payload, len,type);
} }
int dm_ota_yield(int timeout_ms) int dm_ota_yield(int timeout_ms)
...@@ -236,7 +232,6 @@ int dm_ota_yield(int timeout_ms) ...@@ -236,7 +232,6 @@ int dm_ota_yield(int timeout_ms)
printf("dm_ota_yield call \n"); printf("dm_ota_yield call \n");
dm_ota_handle(data); dm_ota_handle(data);
free(data); free(data);
data = NULL; data = NULL;
} else { } else {
......
...@@ -342,15 +342,11 @@ int iotx_dm_subscribe(_IN_ int devid) ...@@ -342,15 +342,11 @@ int iotx_dm_subscribe(_IN_ int devid)
dm_queue_msg_insert4(buf); dm_queue_msg_insert4(buf);
#endif #endif
}else{ }else{
ERROR_PRINT("\n [%d][%s] malloc faild kk_ipc_send \n", __LINE__, __FUNCTION__); ERROR_PRINT("\n [%d][%s] malloc faild kk_ipc_send \n", __LINE__, __FUNCTION__);
return FAIL_RETURN; return FAIL_RETURN;
} }
INFO_PRINT("\n [%d][%s] [%lu] 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());
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
...@@ -368,7 +364,6 @@ void kk_dm_ota_send(void *data, int len){ ...@@ -368,7 +364,6 @@ void kk_dm_ota_send(void *data, int len){
free(buf); free(buf);
return ; return ;
} }
} }
} }
......
...@@ -25,7 +25,6 @@ ...@@ -25,7 +25,6 @@
*************************************************************/ *************************************************************/
typedef struct { typedef struct {
void *mutex; void *mutex;
void *hearbeat_thread; void *hearbeat_thread;
int hearbeat_thread_running; int hearbeat_thread_running;
...@@ -90,7 +89,6 @@ void *kk_heartbeat_yield(void *args) ...@@ -90,7 +89,6 @@ void *kk_heartbeat_yield(void *args)
list_for_each_entry(gw, &ctx->gw_status_list, linked_list, kk_gw_status_ctx_t){ list_for_each_entry(gw, &ctx->gw_status_list, linked_list, kk_gw_status_ctx_t){
if(gw->isOnline == KK_DEV_ONLINE){ if(gw->isOnline == KK_DEV_ONLINE){
list_del(&gw->linked_list); list_del(&gw->linked_list);
//kk_subDev_send_property_get(gw->deviceCode); //kk_subDev_send_property_get(gw->deviceCode);
free(gw); free(gw);
} }
...@@ -155,7 +153,6 @@ int kk_heartbeat_init(void) ...@@ -155,7 +153,6 @@ int kk_heartbeat_init(void)
/* Init Device List */ /* Init Device List */
// INIT_LIST_HEAD(&ctx->dev_list); // INIT_LIST_HEAD(&ctx->dev_list);
} }
/************************************************************ /************************************************************
*功能描述: 上电把需要查询状态的网关加入队列,load设备的时候调用此函数 *功能描述: 上电把需要查询状态的网关加入队列,load设备的时候调用此函数
......
...@@ -166,7 +166,6 @@ int dm_mgr_properities_db_create(kk_tsl_t* dev_shadow,char *deviceCode,int devTy ...@@ -166,7 +166,6 @@ int dm_mgr_properities_db_create(kk_tsl_t* dev_shadow,char *deviceCode,int devTy
} }
num = dev_shadow->property_number; num = dev_shadow->property_number;
for(idx = 0; idx < num; idx++){ for(idx = 0; idx < num; idx++){
pProperty = dev_shadow->properties+idx; pProperty = dev_shadow->properties+idx;
//INFO_PRINT("dm_mgr_properities_db_create pProperty->identifier:%s!!\n",pProperty->identifier); //INFO_PRINT("dm_mgr_properities_db_create pProperty->identifier:%s!!\n",pProperty->identifier);
if(pProperty){ if(pProperty){
...@@ -661,7 +660,6 @@ static unsigned int g_report_id = 1; ...@@ -661,7 +660,6 @@ static unsigned int g_report_id = 1;
int iotx_report_id(void) int iotx_report_id(void)
{ {
return g_report_id++; return g_report_id++;
} }
...@@ -933,9 +931,13 @@ int dm_mgr_upstream_thing_sub_unregister(_IN_ int devid) ...@@ -933,9 +931,13 @@ int dm_mgr_upstream_thing_sub_unregister(_IN_ int devid)
memset(&request, 0, sizeof(dm_msg_request_t)); memset(&request, 0, sizeof(dm_msg_request_t));
request.msgTypeStr = (char*)DM_URI_THING_SUB_UNREGISTER; request.msgTypeStr = (char*)DM_URI_THING_SUB_UNREGISTER;
if(devid == KK_DM_DEVICE_CCU_DEVICEID){
memcpy(request.productCode,node->productCode,strlen(node->productCode));
memcpy(request.deviceCode,node->deviceCode,strlen(node->deviceCode));
}else{
memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode)); memcpy(request.productCode,gw_node->productCode,strlen(gw_node->productCode));
memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode)); memcpy(request.deviceCode,gw_node->deviceCode,strlen(gw_node->deviceCode));
}
/* Get Params And Method */ /* Get Params And Method */
res = dm_msg_thing_sub_unregister(node->deviceCode, &request); res = dm_msg_thing_sub_unregister(node->deviceCode, &request);
...@@ -1573,6 +1575,5 @@ int dm_mgr_subdev_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN]) ...@@ -1573,6 +1575,5 @@ int dm_mgr_subdev_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN])
free(node); free(node);
node = NULL; node = NULL;
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
...@@ -263,9 +263,9 @@ int dm_msg_thing_topo_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN],_OU_ dm_ms ...@@ -263,9 +263,9 @@ int dm_msg_thing_topo_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN],_OU_ dm_ms
const char DM_MSG_STATUS_CLOUD_METHOD[] DM_READ_ONLY = "thing.ccu.cloudstate"; const char DM_MSG_STATUS_CLOUD_METHOD[] DM_READ_ONLY = "thing.ccu.cloudstate";
const char DM_MSG_STATUS_CLOUD[] DM_READ_ONLY = const char DM_MSG_STATUS_CLOUD[] DM_READ_ONLY =
"{\"deviceCode\":\"%s\"}"; "{\"deviceCode\":\"%s\"}";
int dm_msg_status_cloud(_IN_ char productCode[PRODUCT_CODE_MAXLEN], int dm_msg_status_cloud(_IN_ char productCode[PRODUCT_CODE_MAXLEN],
_IN_ char deviceCode[DEVICE_CODE_MAXLEN], _OU_ dm_msg_request_t *request) _IN_ char deviceCode[DEVICE_CODE_MAXLEN], _OU_ dm_msg_request_t *request)
{ {
char *params = NULL; char *params = NULL;
int params_len = 0; int params_len = 0;
...@@ -292,13 +292,13 @@ const char DM_MSG_STATUS_CLOUD[] DM_READ_ONLY = ...@@ -292,13 +292,13 @@ const char DM_MSG_STATUS_CLOUD[] DM_READ_ONLY =
request->params_len = strlen(request->params); request->params_len = strlen(request->params);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
const char DM_MSG_COMBINE_STATUS_ONLINE_METHOD[] DM_READ_ONLY = "thing.status.online"; const char DM_MSG_COMBINE_STATUS_ONLINE_METHOD[] DM_READ_ONLY = "thing.status.online";
const char DM_MSG_COMBINE_STATUS_ONLINE[] DM_READ_ONLY = const char DM_MSG_COMBINE_STATUS_ONLINE[] DM_READ_ONLY =
"{\"deviceCode\":\"%s\"}"; "{\"deviceCode\":\"%s\"}";
int dm_msg_status_online(_IN_ char productCode[PRODUCT_CODE_MAXLEN], int dm_msg_status_online(_IN_ char productCode[PRODUCT_CODE_MAXLEN],
_IN_ char deviceCode[DEVICE_CODE_MAXLEN], _OU_ dm_msg_request_t *request) _IN_ char deviceCode[DEVICE_CODE_MAXLEN], _OU_ dm_msg_request_t *request)
{ {
char *params = NULL; char *params = NULL;
int params_len = 0; int params_len = 0;
char timestamp[DM_UTILS_UINT64_STRLEN] = {0}; char timestamp[DM_UTILS_UINT64_STRLEN] = {0};
...@@ -331,7 +331,7 @@ const char DM_MSG_COMBINE_STATUS_ONLINE[] DM_READ_ONLY = ...@@ -331,7 +331,7 @@ const char DM_MSG_COMBINE_STATUS_ONLINE[] DM_READ_ONLY =
request->params_len = strlen(request->params); request->params_len = strlen(request->params);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
const char DM_MSG_COMBINE_STATUS_OFFLINE_METHOD[] DM_READ_ONLY = "thing.status.offline"; const char DM_MSG_COMBINE_STATUS_OFFLINE_METHOD[] DM_READ_ONLY = "thing.status.offline";
const char DM_MSG_COMBINE_STATUS_OFFLINE[] DM_READ_ONLY = const char DM_MSG_COMBINE_STATUS_OFFLINE[] DM_READ_ONLY =
...@@ -902,7 +902,6 @@ int dm_msg_ccu_property_post(dm_mgr_dev_node_t *node) ...@@ -902,7 +902,6 @@ int dm_msg_ccu_property_post(dm_mgr_dev_node_t *node)
{ {
if(node == NULL){ if(node == NULL){
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
char *payload_property = kk_tsl_get_post_property_str(node->dev_shadow,NULL); char *payload_property = kk_tsl_get_post_property_str(node->dev_shadow,NULL);
if(payload_property != NULL){ if(payload_property != NULL){
...@@ -1088,7 +1087,6 @@ int kk_msg_execute_property_set(const char *productCode,const char *deviceCode,c ...@@ -1088,7 +1087,6 @@ int kk_msg_execute_property_set(const char *productCode,const char *deviceCode,c
free(payload); free(payload);
cJSON_Delete(root); cJSON_Delete(root);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
...@@ -1121,11 +1119,9 @@ int kk_msg_execute_property_get(dm_mgr_dev_node_t *node) ...@@ -1121,11 +1119,9 @@ int kk_msg_execute_property_get(dm_mgr_dev_node_t *node)
for(i = 0; i < serviceNum; i++){ for(i = 0; i < serviceNum; i++){
kk_tsl_service_t *item = node->dev_shadow->services + i; kk_tsl_service_t *item = node->dev_shadow->services + i;
if(!strcmp(item->identifier,"get")){ if(!strcmp(item->identifier,"get")){
int inputNum = item->input_data_number; int inputNum = item->input_data_number;
if(inputNum == 0){ if(inputNum == 0){
paramS = "{}"; paramS = "{}";
}else{ }else{
for(j = 0; j < inputNum; j++){ for(j = 0; j < inputNum; j++){
kk_tsl_data_t *inputItem = item->input_datas + j; kk_tsl_data_t *inputItem = item->input_datas + j;
...@@ -1293,7 +1289,6 @@ int kk_msg_execute_scene_action(const char* params,const char *fatherDeviceCode) ...@@ -1293,7 +1289,6 @@ int kk_msg_execute_scene_action(const char* params,const char *fatherDeviceCode)
free(payload); free(payload);
cJSON_Delete(root); cJSON_Delete(root);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
int kk_msg_execute_scene_delete(const char* params,const char *fatherDeviceCode) int kk_msg_execute_scene_delete(const char* params,const char *fatherDeviceCode)
......
...@@ -209,9 +209,6 @@ void dm_queue_deinit(void) ...@@ -209,9 +209,6 @@ void dm_queue_deinit(void)
list_del(&del_node->linked_list); list_del(&del_node->linked_list);
free(del_node); free(del_node);
} }
} }
int dm_queue_msg_insert(void *data) int dm_queue_msg_insert(void *data)
......
...@@ -333,8 +333,6 @@ int kk_topo_delete_handle(cJSON *payload) ...@@ -333,8 +333,6 @@ int kk_topo_delete_handle(cJSON *payload)
} }
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
/************************************************************ /************************************************************
...@@ -363,13 +361,14 @@ static int kk_service_addRoom_handle(const char *deviceCode, cJSON *params) ...@@ -363,13 +361,14 @@ static int kk_service_addRoom_handle(const char *deviceCode, cJSON *params)
return res; return res;
} }
cJSON *roomInfoStr = cJSON_GetObjectItem(params, MSG_AREA_ADDROOM_ROOMNAME); cJSON *roomInfoStr = cJSON_GetObjectItem(params, MSG_AREA_ADDROOM_ROOMNAME);
cJSON *roomIdStr = cJSON_GetObjectItem(params, MSG_AREA_ROOM_ROOMID);
if(roomInfoStr == NULL){ if(roomInfoStr == NULL){
return FAIL_RETURN; return FAIL_RETURN;
} }
kk_room_add(roomInfoStr->valuestring,roomId); memcpy(roomId,roomIdStr->valuestring,strlen(roomIdStr->valuestring));
kk_room_add(roomInfoStr->valuestring,roomIdStr->valuestring);
kk_tsl_set_value(kk_tsl_set_event_output_value,node->dev_shadow,MSG_AREA_ADDROOM_NOTIFICATION_ROOMID,NULL,roomId); kk_tsl_set_value(kk_tsl_set_event_output_value,node->dev_shadow,MSG_AREA_ADDROOM_NOTIFICATION_ROOMID,NULL,roomId);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
/************************************************************ /************************************************************
*功能描述:删除房间处理函数 *功能描述:删除房间处理函数
...@@ -406,6 +405,14 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params) ...@@ -406,6 +405,14 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params)
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
cJSON *dev_name = cJSON_GetObjectItem(params, MSG_AREA_ADDROOM_DEVICENAME);
if(dev_name == NULL){
return FAIL_RETURN;
}
cJSON *room_name = cJSON_GetObjectItem(params, MSG_AREA_ADDROOM_ROOMNAME);
if(room_name == NULL){
return FAIL_RETURN;
}
cJSON *roomId = cJSON_GetObjectItem(params, MSG_AREA_ROOM_ROOMID); cJSON *roomId = cJSON_GetObjectItem(params, MSG_AREA_ROOM_ROOMID);
if(roomId == NULL){ if(roomId == NULL){
return FAIL_RETURN; return FAIL_RETURN;
...@@ -420,7 +427,7 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params) ...@@ -420,7 +427,7 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params)
}else{ }else{
strcpy(epNumStr,epNum->valuestring); strcpy(epNumStr,epNum->valuestring);
} }
kk_room_dev_add(roomId->valuestring,deviceCode->valuestring,epNumStr); kk_room_dev_add(roomId->valuestring,room_name->valuestring,deviceCode->valuestring,epNumStr,dev_name->valuestring);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
/************************************************************ /************************************************************
...@@ -525,7 +532,6 @@ static int kk_service_executeRoom_handle(cJSON *params) ...@@ -525,7 +532,6 @@ static int kk_service_executeRoom_handle(cJSON *params)
cJSON *action = cJSON_GetObjectItem(params, MSG_AREA_ROOM_ACTION); cJSON *action = cJSON_GetObjectItem(params, MSG_AREA_ROOM_ACTION);
if(action != NULL){ if(action != NULL){
kk_service_execute_action(action,search_node); kk_service_execute_action(action,search_node);
} }
} }
pList = pList->next; pList = pList->next;
...@@ -954,11 +960,9 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data) ...@@ -954,11 +960,9 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
usleep(200000); usleep(200000);
dm_msg_ccu_property_post(node); dm_msg_ccu_property_post(node);
} }
}else if (strstr(typeJson->valuestring,KK_THING_OTA_DEVICE_UPGRADE)){ }else if (strstr(typeJson->valuestring,KK_THING_OTA_DEVICE_UPGRADE)){
INFO_PRINT("ota upgrade... \n"); INFO_PRINT("ota upgrade... \n");
kk_dm_ota_send(data, strlen(data)+1); kk_dm_ota_send(data, strlen(data)+1);
}else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_REBOOT) == 0){ }else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_REBOOT) == 0){
INFO_PRINT(" reboot called!!!\n"); INFO_PRINT(" reboot called!!!\n");
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID); cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
...@@ -977,7 +981,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data) ...@@ -977,7 +981,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
INFO_PRINT(" delete room \n"); INFO_PRINT(" delete room \n");
cJSON *paramStr = cJSON_GetObjectItem(payload, MSG_PARAMS_STR); cJSON *paramStr = cJSON_GetObjectItem(payload, MSG_PARAMS_STR);
kk_service_deleteRoom_handle(paramStr); kk_service_deleteRoom_handle(paramStr);
} }
else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_ADDDEVICETOROOM) == 0){ else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_ADDDEVICETOROOM) == 0){
INFO_PRINT(" adddevicetoroom \n"); INFO_PRINT(" adddevicetoroom \n");
...@@ -993,7 +996,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data) ...@@ -993,7 +996,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
INFO_PRINT(" executeroom \n"); INFO_PRINT(" executeroom \n");
cJSON *paramStr = cJSON_GetObjectItem(payload, MSG_PARAMS_STR); cJSON *paramStr = cJSON_GetObjectItem(payload, MSG_PARAMS_STR);
kk_service_executeRoom_handle(paramStr); kk_service_executeRoom_handle(paramStr);
} }
else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_ADDSCENC) == 0){ else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_ADDSCENC) == 0){
INFO_PRINT(" add scene \n"); INFO_PRINT(" add scene \n");
...@@ -1040,7 +1042,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data) ...@@ -1040,7 +1042,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
cJSON_Delete(root_); cJSON_Delete(root_);
free(out_); free(out_);
} }
} }
} }
else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_SYNCINFO) == 0){ else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_SYNCINFO) == 0){
...@@ -1049,7 +1050,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data) ...@@ -1049,7 +1050,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
} }
else{ else{
INFO_PRINT("Error msgtype!!! \n"); INFO_PRINT("Error msgtype!!! \n");
} }
directReturn: directReturn:
...@@ -1508,12 +1508,10 @@ int kk_mid_subdev_batch_add( char productCode[PRODUCT_CODE_MAXLEN], char deviceC ...@@ -1508,12 +1508,10 @@ int kk_mid_subdev_batch_add( char productCode[PRODUCT_CODE_MAXLEN], char deviceC
res = _iotx_linkkit_subdev_login(devid); res = _iotx_linkkit_subdev_login(devid);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
return FAIL_RETURN; return FAIL_RETURN;
} }
_iotx_linkkit_mutex_unlock(); _iotx_linkkit_mutex_unlock();
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
...@@ -60,8 +60,6 @@ static int _kk_property_db_Init(void) ...@@ -60,8 +60,6 @@ static int _kk_property_db_Init(void)
_kk_property_db_lock(); _kk_property_db_lock();
ctx->pDb = g_kk_pDb; ctx->pDb = g_kk_pDb;
const char *pPrpertyTable = "CREATE TABLE IF NOT EXISTS PropertiesInfo( \ const char *pPrpertyTable = "CREATE TABLE IF NOT EXISTS PropertiesInfo( \
idx INTEGER PRIMARY KEY, \ idx INTEGER PRIMARY KEY, \
deviceCode varchar(33), \ deviceCode varchar(33), \
...@@ -129,7 +127,6 @@ int kk_property_db_init(void) ...@@ -129,7 +127,6 @@ int kk_property_db_init(void)
res = _kk_property_db_Init(); res = _kk_property_db_Init();
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
ERROR_PRINT("[%s][%d]kk_wlist_db_Init FAIL!!!\n",__FUNCTION__,__LINE__); ERROR_PRINT("[%s][%d]kk_wlist_db_Init FAIL!!!\n",__FUNCTION__,__LINE__);
} }
//_kk_load_subDevice(); //_kk_load_subDevice();
return SUCCESS_RETURN; return SUCCESS_RETURN;
...@@ -157,7 +154,6 @@ static int _kk_check_property_exist(const char* deviceCode,const char* identifie ...@@ -157,7 +154,6 @@ static int _kk_check_property_exist(const char* deviceCode,const char* identifie
pDeviceCode = (char*)sqlite3_column_text(stmt, DB_DEVICECODE); pDeviceCode = (char*)sqlite3_column_text(stmt, DB_DEVICECODE);
pIdentifier = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER); pIdentifier = (char*)sqlite3_column_text(stmt, DB_IDENTIFITER);
if(!strcmp(deviceCode,pDeviceCode)&&!strcmp(identifier,pIdentifier)) if(!strcmp(deviceCode,pDeviceCode)&&!strcmp(identifier,pIdentifier))
{ {
isExist = 1; isExist = 1;
break; break;
...@@ -303,7 +299,6 @@ int kk_property_db_get_value(const char *deviceCode,const char *identifier,void* ...@@ -303,7 +299,6 @@ int kk_property_db_get_value(const char *deviceCode,const char *identifier,void*
valueType == KK_TSL_DATA_TYPE_BOOL){ valueType == KK_TSL_DATA_TYPE_BOOL){
int value_int = atoi(valueStr); int value_int = atoi(valueStr);
*(int*)value = value_int; *(int*)value = value_int;
} }
else if(valueType == KK_TSL_DATA_TYPE_FLOAT){ else if(valueType == KK_TSL_DATA_TYPE_FLOAT){
float value_float = atoi(valueStr); float value_float = atoi(valueStr);
...@@ -360,7 +355,6 @@ int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_pro ...@@ -360,7 +355,6 @@ int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_pro
memcpy(curData->deviceCode,devcode, strlen(devcode)); memcpy(curData->deviceCode,devcode, strlen(devcode));
memcpy(curData->raw,valueStr, strlen(valueStr)); memcpy(curData->raw,valueStr, strlen(valueStr));
curData->type = valueType; curData->type = valueType;
curData++; curData++;
idx++; idx++;
} }
...@@ -378,7 +372,6 @@ int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_pro ...@@ -378,7 +372,6 @@ int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_pro
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
int kk_property_db_update(const char *deviceCode) int kk_property_db_update(const char *deviceCode)
{ {
int res = 0; int res = 0;
int idx = 0; int idx = 0;
...@@ -403,8 +396,6 @@ int kk_property_db_update(const char *deviceCode) ...@@ -403,8 +396,6 @@ int kk_property_db_update(const char *deviceCode)
else if(property->data_value.type == KK_TSL_DATA_TYPE_FLOAT){ else if(property->data_value.type == KK_TSL_DATA_TYPE_FLOAT){
sprintf(tmpValue,"%f",property->data_value.value_float); sprintf(tmpValue,"%f",property->data_value.value_float);
kk_property_db_update_value(deviceCode,property->identifier,tmpValue); kk_property_db_update_value(deviceCode,property->identifier,tmpValue);
} }
else if(property->data_value.type == KK_TSL_DATA_TYPE_DOUBLE){ else if(property->data_value.type == KK_TSL_DATA_TYPE_DOUBLE){
sprintf(tmpValue,"%f",property->data_value.value_double); sprintf(tmpValue,"%f",property->data_value.value_double);
......
...@@ -94,7 +94,6 @@ static int kk_subDev_db_Init(void) ...@@ -94,7 +94,6 @@ static int kk_subDev_db_Init(void)
_kk_subDb_unlock(); _kk_subDb_unlock();
return FAIL_RETURN; return FAIL_RETURN;
} }
} }
//eUtils_LockUnlock(&sLock); //eUtils_LockUnlock(&sLock);
...@@ -134,7 +133,7 @@ static int _kk_load_subDevice(void) ...@@ -134,7 +133,7 @@ static int _kk_load_subDevice(void)
ctx->subDevNum++; ctx->subDevNum++;
} }
usleep(100000); usleep(100000);
// send the topc info // send the topo info
iotx_dm_subscribe(devId); iotx_dm_subscribe(devId);
//sync the data from property db //sync the data from property db
......
...@@ -84,7 +84,9 @@ static int kk_get_rooms_devices(cJSON *roomDevicesArray,char *roomId) ...@@ -84,7 +84,9 @@ static int kk_get_rooms_devices(cJSON *roomDevicesArray,char *roomId)
deviceObj = cJSON_CreateObject(); deviceObj = cJSON_CreateObject();
deviceCode = (char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE); deviceCode = (char*)sqlite3_column_text(stmt, DB_DEV_DEVICECODE);
cJSON_AddStringToObject(deviceObj, KK_SYNC_DEVICECODE_STR, deviceCode); cJSON_AddStringToObject(deviceObj, KK_SYNC_DEVICECODE_STR, deviceCode);
//cJSON_AddItemToArray(roomDevicesArray,deviceObj);
} }
sqlite3_free(sqlCmd); sqlite3_free(sqlCmd);
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
return SUCCESS_RETURN; return SUCCESS_RETURN;
...@@ -413,7 +415,6 @@ static int kk_get_scenes_info(cJSON *data) ...@@ -413,7 +415,6 @@ static int kk_get_scenes_info(cJSON *data)
static int kk_get_ccu_properties(cJSON *property) static int kk_get_ccu_properties(cJSON *property)
{ {
char *sqlCmd = NULL; char *sqlCmd = NULL;
//char *zErrMsg = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
char *propertyStr = NULL; char *propertyStr = NULL;
char *valueStr = NULL; char *valueStr = NULL;
...@@ -474,10 +475,11 @@ char *kk_sync_get_info() ...@@ -474,10 +475,11 @@ char *kk_sync_get_info()
cJSON_AddStringToObject(data, KK_SYNC_ONLINE_STR, cloudstatus_str); cJSON_AddStringToObject(data, KK_SYNC_ONLINE_STR, cloudstatus_str);
cJSON_AddStringToObject(data, KK_SYNC_PRODUCTCODE_STR, ccu_productCode); cJSON_AddStringToObject(data, KK_SYNC_PRODUCTCODE_STR, ccu_productCode);
cJSON_AddStringToObject(data, KK_SYNC_VERSION_STR, version); cJSON_AddStringToObject(data, KK_SYNC_VERSION_STR, version);
cJSON *property = cJSON_CreateObject();
cJSON *property = cJSON_CreateObject();
kk_get_ccu_properties(property); kk_get_ccu_properties(property);
cJSON_AddItemToObject(data, KK_SYNC_PROPERTY_STR, property); cJSON_AddItemToObject(data, KK_SYNC_PROPERTY_STR, property);
out=cJSON_Print(root); out=cJSON_Print(root);
printf("kk_sync_get_info:%s\n",out); printf("kk_sync_get_info:%s\n",out);
cJSON_Delete(root); cJSON_Delete(root);
......
...@@ -203,7 +203,6 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){ ...@@ -203,7 +203,6 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
} }
} }
else{ else{
kk_tsl_data_value_complex_t *complex_struct_1 = NULL; kk_tsl_data_value_complex_t *complex_struct_1 = NULL;
...@@ -246,7 +245,6 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){ ...@@ -246,7 +245,6 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
} }
else if(property->data_value.type == KK_TSL_DATA_TYPE_TEXT){ else if(property->data_value.type == KK_TSL_DATA_TYPE_TEXT){
if(strlen(propertyItem->valuestring) > property->data_value.length ){ if(strlen(propertyItem->valuestring) > property->data_value.length ){
ERROR_PRINT("ERROR !!!strlen(propertyItem->valuestring):%d,property->data_value.length:%d\n",strlen(propertyItem->valuestring),property->data_value.length ); ERROR_PRINT("ERROR !!!strlen(propertyItem->valuestring):%d,property->data_value.length:%d\n",strlen(propertyItem->valuestring),property->data_value.length );
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
...@@ -339,7 +337,6 @@ void mid_cb(void* data, int len){ ...@@ -339,7 +337,6 @@ void mid_cb(void* data, int len){
ERROR_PRINT("wrong type\n"); ERROR_PRINT("wrong type\n");
} }
cJSON_Delete(json); cJSON_Delete(json);
} }
} }
} }
...@@ -353,7 +350,6 @@ void mid_cb(void* data, int len){ ...@@ -353,7 +350,6 @@ void mid_cb(void* data, int len){
*返 回 值: 无 *返 回 值: 无
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
void mid2p_cb(void* data, int len, char* chalMark){ void mid2p_cb(void* data, int len, char* chalMark){
if (data != NULL){ if (data != NULL){
//printf("mid2plat_cb: %s RECEIVED \r\n", data); //printf("mid2plat_cb: %s RECEIVED \r\n", data);
...@@ -413,7 +409,6 @@ void gw2mid_cb(void* data, int len, char* chalMark){ ...@@ -413,7 +409,6 @@ void gw2mid_cb(void* data, int len, char* chalMark){
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
void kk_platMsg_handle(void* data, char* chalMark){ void kk_platMsg_handle(void* data, char* chalMark){
int res = 0; int res = 0;
cJSON *json; cJSON *json;
cJSON *info; cJSON *info;
...@@ -472,7 +467,6 @@ void kk_platMsg_handle(void* data, char* chalMark){ ...@@ -472,7 +467,6 @@ void kk_platMsg_handle(void* data, char* chalMark){
kk_mid_subdev_add(KK_DM_DEVICE_SUBDEV,proCode->valuestring,devCode->valuestring, mac->valuestring,info_dcode->valuestring); kk_mid_subdev_add(KK_DM_DEVICE_SUBDEV,proCode->valuestring,devCode->valuestring, mac->valuestring,info_dcode->valuestring);
} }
dm_mgr_update_timestamp_by_devicecode(devCode->valuestring,HAL_Uptimes()); dm_mgr_update_timestamp_by_devicecode(devCode->valuestring,HAL_Uptimes());
} }
else if (strstr(msgType->valuestring, KK_THING_TOPO_BATCH_ADD_MSG) != NULL){ else if (strstr(msgType->valuestring, KK_THING_TOPO_BATCH_ADD_MSG) != NULL){
kk_ipc_send(IPC_MID2APP,data,strlen(data)); kk_ipc_send(IPC_MID2APP,data,strlen(data));
...@@ -489,7 +483,6 @@ void kk_platMsg_handle(void* data, char* chalMark){ ...@@ -489,7 +483,6 @@ void kk_platMsg_handle(void* data, char* chalMark){
kk_mid_subdev_batch_add(productCode,deviceCode,mac_s,fatherMac); kk_mid_subdev_batch_add(productCode,deviceCode,mac_s,fatherMac);
item = item->next; item = item->next;
} }
}else if (strstr(msgType->valuestring, KK_THING_PROPERTY_POST) != NULL){ }else if (strstr(msgType->valuestring, KK_THING_PROPERTY_POST) != NULL){
INFO_PRINT("save property and send to cloud \n"); INFO_PRINT("save property and send to cloud \n");
jsonPay = cJSON_GetObjectItem(payload, MSG_PARAMS_STR); jsonPay = cJSON_GetObjectItem(payload, MSG_PARAMS_STR);
...@@ -621,8 +614,6 @@ void kk_platMsg_handle(void* data, char* chalMark){ ...@@ -621,8 +614,6 @@ void kk_platMsg_handle(void* data, char* chalMark){
} }
} }
} }
else if(strcmp(eventItem->identifier,MSG_PROPERTY_STR) != 0 && else if(strcmp(eventItem->identifier,MSG_PROPERTY_STR) != 0 &&
eventItem->output_data_number == 0){ eventItem->output_data_number == 0){
...@@ -672,7 +663,6 @@ void kk_platMsg_handle(void* data, char* chalMark){ ...@@ -672,7 +663,6 @@ void kk_platMsg_handle(void* data, char* chalMark){
} }
else{ else{
INFO_PRINT("kk_platMsg_handle data: don't handle it\n"); INFO_PRINT("kk_platMsg_handle data: don't handle it\n");
} }
error: error:
cJSON_Delete(json); cJSON_Delete(json);
...@@ -692,12 +682,10 @@ void kk_platMsg_dispatch(void) ...@@ -692,12 +682,10 @@ void kk_platMsg_dispatch(void)
void *data = NULL; void *data = NULL;
while (CONFIG_DISPATCH_QUEUE_MAXLEN == 0 || count++ < CONFIG_DISPATCH_QUEUE_MAXLEN) { while (CONFIG_DISPATCH_QUEUE_MAXLEN == 0 || count++ < CONFIG_DISPATCH_QUEUE_MAXLEN) {
if (dm_queue_msg_next2(&data) == SUCCESS_RETURN) { if (dm_queue_msg_next2(&data) == SUCCESS_RETURN) {
dm_queue_msg_t *msg = (dm_queue_msg_t *)data; dm_queue_msg_t *msg = (dm_queue_msg_t *)data;
//INFO_PRINT("kk_handle_platMsg_dispatch get call \n"); //INFO_PRINT("kk_handle_platMsg_dispatch get call \n");
kk_platMsg_handle(msg->data,(char*)msg->chalMark); kk_platMsg_handle(msg->data,(char*)msg->chalMark);
if (msg->data != NULL){ if (msg->data != NULL){
free(msg->data); free(msg->data);
} }
...@@ -785,8 +773,6 @@ void *ota_dispatch_yield(void *args) ...@@ -785,8 +773,6 @@ void *ota_dispatch_yield(void *args)
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
void *udp_dispatch_yield(void *args){ void *udp_dispatch_yield(void *args){
INFO_PRINT("udp_dispatch_yield udp thread create\n"); INFO_PRINT("udp_dispatch_yield udp thread create\n");
// 绑定地址 // 绑定地址
...@@ -845,7 +831,6 @@ void *udp_dispatch_yield(void *args){ ...@@ -845,7 +831,6 @@ void *udp_dispatch_yield(void *args){
while(1) while(1)
{ {
//从广播地址接受消息 //从广播地址接受消息
memset(szDec, 0 , sizeof(szDec)); memset(szDec, 0 , sizeof(szDec));
int size=recvfrom(sock, szDec, sizeof(szDec), 0, (struct sockaddr*)&from,(socklen_t*)&len); int size=recvfrom(sock, szDec, sizeof(szDec), 0, (struct sockaddr*)&from,(socklen_t*)&len);
...@@ -855,12 +840,10 @@ void *udp_dispatch_yield(void *args){ ...@@ -855,12 +840,10 @@ void *udp_dispatch_yield(void *args){
} }
else else
{ {
DEBUG_PRINT("lan recmsg: %s\n", szDec); DEBUG_PRINT("lan recmsg: %s\n", szDec);
//DEBUG_PRINT("udp client ip:%s ,port is :%d htons(UDP_LAN_PORT)=%d \n",inet_ntoa(from.sin_addr),from.sin_port, htons(UDP_LAN_PORT)); //DEBUG_PRINT("udp client ip:%s ,port is :%d htons(UDP_LAN_PORT)=%d \n",inet_ntoa(from.sin_addr),from.sin_port, htons(UDP_LAN_PORT));
//"search_kk_ccu|deviceCode=1122334455667788;protocol=tcp" //"search_kk_ccu|deviceCode=1122334455667788;protocol=tcp"
if(strstr(szDec, "search_kk_ccu|") != NULL){ if(strstr(szDec, "search_kk_ccu|") != NULL){
char* getConnet = szDec + strlen("search_kk_ccu|"); char* getConnet = szDec + strlen("search_kk_ccu|");
char* tmp = NULL; char* tmp = NULL;
char* endIdx = NULL; char* endIdx = NULL;
...@@ -870,7 +853,6 @@ void *udp_dispatch_yield(void *args){ ...@@ -870,7 +853,6 @@ void *udp_dispatch_yield(void *args){
char proto[10] = {0}; char proto[10] = {0};
char portStr[10] = {0}; char portStr[10] = {0};
tmp = strstr(getConnet, "deviceCode="); tmp = strstr(getConnet, "deviceCode=");
itemLen = strlen("deviceCode="); itemLen = strlen("deviceCode=");
if (tmp != NULL){ if (tmp != NULL){
...@@ -910,7 +892,6 @@ void *udp_dispatch_yield(void *args){ ...@@ -910,7 +892,6 @@ void *udp_dispatch_yield(void *args){
DEBUG_PRINT("gwDevCode =%s proto=%s portStr=%s \n",gwDevCode,proto,portStr); DEBUG_PRINT("gwDevCode =%s proto=%s portStr=%s \n",gwDevCode,proto,portStr);
if(strcmp(proto,"tcp") == 0){ if(strcmp(proto,"tcp") == 0){
// //
kk_set_tcp_channel(gwDevCode,inet_ntoa(from.sin_addr)); kk_set_tcp_channel(gwDevCode,inet_ntoa(from.sin_addr));
} }
...@@ -941,12 +922,10 @@ void *udp_dispatch_yield(void *args){ ...@@ -941,12 +922,10 @@ void *udp_dispatch_yield(void *args){
// DEBUG_PRINT("udp client is not local ip , refused send ack to it\n"); // DEBUG_PRINT("udp client is not local ip , refused send ack to it\n");
//} //}
} }
} }
usleep(100000); usleep(100000);
} }
close(sock); close(sock);
close(sock_host); close(sock_host);
} }
...@@ -1054,6 +1033,7 @@ int main(const int argc, const char **argv) ...@@ -1054,6 +1033,7 @@ int main(const int argc, const char **argv)
kk_history_db_init(); kk_history_db_init();
kk_scene_init(); kk_scene_init();
g_timezone = HAL_Get_TimeZone(); g_timezone = HAL_Get_TimeZone();
mid_ctx->g_mid_dispatch_thread_running = 1; mid_ctx->g_mid_dispatch_thread_running = 1;
res = pthread_create(&mid_ctx->g_mid_dispatch_thread, NULL, mid_dispatch_yield, NULL); res = pthread_create(&mid_ctx->g_mid_dispatch_thread, NULL, mid_dispatch_yield, NULL);
if (res < 0) { if (res < 0) {
...@@ -1088,48 +1068,6 @@ int main(const int argc, const char **argv) ...@@ -1088,48 +1068,6 @@ int main(const int argc, const char **argv)
for (;;) { for (;;) {
usleep(200000); usleep(200000);
kk_platMsg_dispatch(); kk_platMsg_dispatch();
/*
if (ct == 0){
ct =1;
void* buf = "{\
\"info\": {\
\"msgtype\": \"/thing/service/property/post\",\
\"productCode\": \"130\",\
\"deviceCode\": \"086BD7FFFE916442\"\
},\
\"payload\": {\
\"msgId\": \"1\",\
\"version\": \"1.0\",\
\"params\": {\
\"LockKeys\": [\
{\
\"KeyID\": \"1\",\
\"KeyType\": 0, \
\"KeyRole\": 0, \
\"IsValid\": 1, \
\"KeyName\": \"test1\", \
\"KeyEffectiveTime\": 0, \
\"KeyExpiryTime\": 1 \
},\
{\
\"KeyID\": \"2\",\
\"KeyType\": 1, \
\"KeyRole\": 1, \
\"IsValid\": 1, \
\"KeyName\": \"test2\", \
\"KeyEffectiveTime\": 3, \
\"KeyExpiryTime\": 4 \
} \
]\
}\
}\
}";
kk_platMsg_handle(buf, "086BD7FFFE916442");
//kk_set_tsl_by_productKey("a1OYuSallan","model.json");
//kk_mid_subdev_add("a1OYuSallan","allanWno8yDdsjCX15iq","","aabbccddeeff1122");
}*/
} }
} }
...@@ -231,7 +231,6 @@ int kk_scene_insert_scene_info(const char* name,int sceneType,int enable,const c ...@@ -231,7 +231,6 @@ int kk_scene_insert_scene_info(const char* name,int sceneType,int enable,const c
sqlite3_free(sqlCmd); sqlite3_free(sqlCmd);
_kk_scene_unlock(); _kk_scene_unlock();
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
/************************************************************ /************************************************************
*功能描述: 检查场景触发是否已经存在 *功能描述: 检查场景触发是否已经存在
...@@ -245,7 +244,6 @@ int kk_scene_insert_scene_info(const char* name,int sceneType,int enable,const c ...@@ -245,7 +244,6 @@ int kk_scene_insert_scene_info(const char* name,int sceneType,int enable,const c
*返 回 值: 0:成功;其他:失败 *返 回 值: 0:成功;其他:失败
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const char* propertyName, static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const char* propertyName,
const char* compareType,const char* compareValue,const char* sceneId) const char* compareType,const char* compareValue,const char* sceneId)
{ {
...@@ -281,7 +279,6 @@ static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const c ...@@ -281,7 +279,6 @@ static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const c
_kk_scene_unlock(); _kk_scene_unlock();
return res; return res;
} }
/************************************************************ /************************************************************
...@@ -297,7 +294,6 @@ static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const c ...@@ -297,7 +294,6 @@ static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const c
*返 回 值: 0:成功;其他:失败 *返 回 值: 0:成功;其他:失败
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
int kk_scene_insert_scene_trigger(const char* type,const char* deviceCode,int epNum,const char* propertyName, 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) const char* compareType,const char* compareValue,const char* sceneId,int isAnd)
{ {
...@@ -475,7 +471,6 @@ int kk_scene_insert_scene_invokeService(const char* type,const char* identifier, ...@@ -475,7 +471,6 @@ int kk_scene_insert_scene_invokeService(const char* type,const char* identifier,
_kk_scene_unlock(); _kk_scene_unlock();
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
/************************************************************ /************************************************************
*功能描述: 添加场景执行动作到数据库 *功能描述: 添加场景执行动作到数据库
...@@ -526,7 +521,6 @@ int kk_scene_insert_scene_action(const char* type,const char* deviceCode,int epN ...@@ -526,7 +521,6 @@ int kk_scene_insert_scene_action(const char* type,const char* deviceCode,int epN
*返 回 值: 0:成功;其他:失败 *返 回 值: 0:成功;其他:失败
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
int kk_scene_delete_scene_info(const char *sceneId) int kk_scene_delete_scene_info(const char *sceneId)
{ {
int res = 0; int res = 0;
...@@ -703,7 +697,6 @@ int kk_scene_delete_scene_invokeservice(const char *sceneId) ...@@ -703,7 +697,6 @@ int kk_scene_delete_scene_invokeservice(const char *sceneId)
*返 回 值: 0:成功;其他:失败 *返 回 值: 0:成功;其他:失败
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
int kk_scene_delete_scene_action(const char *sceneId,int isforword) int kk_scene_delete_scene_action(const char *sceneId,int isforword)
{ {
int res = 0; int res = 0;
......
...@@ -118,7 +118,6 @@ static int kk_scene_tsl_load(void) ...@@ -118,7 +118,6 @@ static int kk_scene_tsl_load(void)
} }
} }
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
/******************************************************************************/ /******************************************************************************/
/* 函 数 名: kk_scene_timer_check_able */ /* 函 数 名: kk_scene_timer_check_able */
...@@ -589,7 +588,9 @@ static int kk_scene_parse_trigger_detail(const char *type,const cJSON *item,cons ...@@ -589,7 +588,9 @@ static int kk_scene_parse_trigger_detail(const char *type,const cJSON *item,cons
deviceCode = cJSON_GetObjectItem(item,MSG_DEVICE_CODE_STR); deviceCode = cJSON_GetObjectItem(item,MSG_DEVICE_CODE_STR);
if(deviceCode == NULL) return FAIL_RETURN; if(deviceCode == NULL) return FAIL_RETURN;
epNum = cJSON_GetObjectItem(item,MSG_SCENE_EPNUM); epNum = cJSON_GetObjectItem(item,MSG_SCENE_EPNUM);
if(epNum == NULL) return FAIL_RETURN; if(epNum == NULL){
epNum = cJSON_CreateNumber(1);
}
propertyName = cJSON_GetObjectItem(item,MSG_SCENE_PROPERTYNAME); propertyName = cJSON_GetObjectItem(item,MSG_SCENE_PROPERTYNAME);
if(propertyName == NULL) return FAIL_RETURN; if(propertyName == NULL) return FAIL_RETURN;
compareType = cJSON_GetObjectItem(item,MSG_SCENE_COMPARETYPE); compareType = cJSON_GetObjectItem(item,MSG_SCENE_COMPARETYPE);
...@@ -633,14 +634,14 @@ int kk_scene_parse_scene_trigger(const cJSON* str,const char *sceneId) ...@@ -633,14 +634,14 @@ int kk_scene_parse_scene_trigger(const cJSON* str,const char *sceneId)
while(item != NULL){ while(item != NULL){
type = cJSON_GetObjectItem(item,MSG_SCENE_TYPE); type = cJSON_GetObjectItem(item,MSG_SCENE_TYPE);
if(type == NULL) return FAIL_RETURN; if(type == NULL) return FAIL_RETURN;
if(!strcmp("trigger/thing/property",type->valuestring)){ if(!strcmp("trigger/thing/property",type->valuestring)){
res = kk_scene_parse_trigger_detail(type->valuestring,item,sceneId,0); res = kk_scene_parse_trigger_detail(type->valuestring,item,sceneId,0);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
ERROR_PRINT("kk_scene_parse_scene_trigger fail!!!\n"); ERROR_PRINT("kk_scene_parse_scene_trigger fail!!!\n");
return res; return res;
} }
} }else if(!strcmp("trigger/timing",type->valuestring)){
else if(!strcmp("trigger/timing",type->valuestring)){
week = cJSON_GetObjectItem(item,MSG_SCENE_WEEK); week = cJSON_GetObjectItem(item,MSG_SCENE_WEEK);
if(week == NULL) return FAIL_RETURN; if(week == NULL) return FAIL_RETURN;
weekflag = kk_scene_parse_repeatday(week); weekflag = kk_scene_parse_repeatday(week);
...@@ -729,7 +730,6 @@ static int kk_scene_parse_repeatday(cJSON *repeatday) ...@@ -729,7 +730,6 @@ static int kk_scene_parse_repeatday(cJSON *repeatday)
*返 回 值: 无 *返 回 值: 无
*其他说明: *其他说明:
*************************************************************/ *************************************************************/
void kk_scene_remove_timer_info(char *sceneId,int lockflag) void kk_scene_remove_timer_info(char *sceneId,int lockflag)
{ {
kk_scene_timer_list_t *ptr = NULL,*ptemp = NULL; kk_scene_timer_list_t *ptr = NULL,*ptemp = NULL;
...@@ -891,6 +891,8 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat ...@@ -891,6 +891,8 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat
cJSON *epNum; cJSON *epNum;
int iepnum; int iepnum;
printf("----->kk_scene_parse_scene_action\r\n");
dm_mgr_dev_node_t *node = NULL; dm_mgr_dev_node_t *node = NULL;
if(str == NULL || sceneId == NULL){ if(str == NULL || sceneId == NULL){
ERROR_PRINT("kk_scene_parse_scene_action failed\n"); ERROR_PRINT("kk_scene_parse_scene_action failed\n");
...@@ -901,6 +903,7 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat ...@@ -901,6 +903,7 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat
if(action == NULL) return FAIL_RETURN; if(action == NULL) return FAIL_RETURN;
item = action->child; item = action->child;
while(item != NULL){ while(item != NULL){
printf("+++\r\n");
type = cJSON_GetObjectItem(item,MSG_SCENE_TYPE); type = cJSON_GetObjectItem(item,MSG_SCENE_TYPE);
if(type == NULL) return FAIL_RETURN; if(type == NULL) return FAIL_RETURN;
/*内嵌场景设置*/ /*内嵌场景设置*/
...@@ -944,23 +947,41 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat ...@@ -944,23 +947,41 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat
delay = cJSON_GetObjectItem(item,MSG_SCENE_DELAY); delay = cJSON_GetObjectItem(item,MSG_SCENE_DELAY);
if(delay == NULL) return FAIL_RETURN; if(delay == NULL) return FAIL_RETURN;
int idelay = delay->valueint; int idelay = delay->valueint;
res = dm_mgr_get_device_by_devicecode(deviceCode->valuestring,&node); res = dm_mgr_get_device_by_devicecode(deviceCode->valuestring,&node);
if (res != SUCCESS_RETURN) { if (res != SUCCESS_RETURN) {
item = item->next; item = item->next;
continue; continue;
} }
if(kk_subDev_check_scene_support(node->fatherDeviceCode) == 1){ if(kk_subDev_check_scene_support(node->fatherDeviceCode) == 1){
kk_scene_action_detail_t info = {0}; kk_scene_action_detail_t info = {0};
memcpy(info.deviceCode,node->deviceCode,strlen(node->deviceCode)); memcpy(info.deviceCode,node->deviceCode,strlen(node->deviceCode));
memcpy(info.propertyName,propertyName->valuestring,strlen(propertyName->valuestring)); memcpy(info.propertyName,propertyName->valuestring,strlen(propertyName->valuestring));
if(propertyValue->type==cJSON_Number){
char temp[64] = {0};
snprintf(temp,64,"%d",propertyValue->valueint);
memcpy(info.propertyValue,temp,strlen(temp));
}else{
memcpy(info.propertyValue,propertyValue->valuestring,strlen(propertyValue->valuestring)); memcpy(info.propertyValue,propertyValue->valuestring,strlen(propertyValue->valuestring));
}
info.epNum = iepnum; info.epNum = iepnum;
info.delay = idelay; info.delay = idelay;
kk_scene_action_add(node->fatherDeviceCode,sceneId,info); kk_scene_action_add(node->fatherDeviceCode,sceneId,info);
} }
res = kk_scene_insert_scene_action(type->valuestring,node->deviceCode,iepnum, res = kk_scene_insert_scene_action(type->valuestring,node->deviceCode,iepnum,
propertyName->valuestring,propertyValue->valuestring,idelay,sceneId,node->fatherDeviceCode); propertyName->valuestring,propertyValue->valuestring,idelay,sceneId,node->fatherDeviceCode);
if(res != SUCCESS_RETURN){ if(res != SUCCESS_RETURN){
INFO_PRINT("kk_scene_insert_scene_action fail!!!\n"); INFO_PRINT("kk_scene_insert_scene_action fail!!!\n");
return res; return res;
...@@ -1093,7 +1114,6 @@ int kk_scene_parse_addscene(const cJSON* args,char *sceneId,int isUpdate,const c ...@@ -1093,7 +1114,6 @@ int kk_scene_parse_addscene(const cJSON* args,char *sceneId,int isUpdate,const c
} }
} }
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
/************************************************************ /************************************************************
...@@ -1540,7 +1560,6 @@ static int kk_scene_check_value(const char * compareType,const char * compareVal ...@@ -1540,7 +1560,6 @@ static int kk_scene_check_value(const char * compareType,const char * compareVal
} }
return res; return res;
} }
/************************************************************ /************************************************************
*功能描述:发送action内容到网关,此函数只有不支持内场景的网关用到 *功能描述:发送action内容到网关,此函数只有不支持内场景的网关用到
...@@ -1678,8 +1697,6 @@ static int kk_scene_start_action(const char *deviceCode,const char *propertyName ...@@ -1678,8 +1697,6 @@ static int kk_scene_start_action(const char *deviceCode,const char *propertyName
kk_scene_push_action_list(actionInfo,delay); kk_scene_push_action_list(actionInfo,delay);
} }
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
/************************************************************ /************************************************************
*功能描述:触发完成并符合条件后调用此函数执行场景 *功能描述:触发完成并符合条件后调用此函数执行场景
...@@ -1697,7 +1714,8 @@ int kk_scene_execute_action(const char* sceneId,char *msgId) ...@@ -1697,7 +1714,8 @@ int kk_scene_execute_action(const char* sceneId,char *msgId)
char *gwdeviceCode = NULL; char *gwdeviceCode = NULL;
int delay = 0; int delay = 0;
char *sqlCmd = NULL; char *sqlCmd = NULL;
char gwdevice[][DEVICE_CODE_MAXLEN] = {0}; //
char gwdevice[5][DEVICE_CODE_MAXLEN] = {0};
int idx=0,num = 0; int idx=0,num = 0;
sqlite3_stmt *stmt; sqlite3_stmt *stmt;
kk_scene_ctx_t *ctx = _kk_scene_get_ctx(); kk_scene_ctx_t *ctx = _kk_scene_get_ctx();
...@@ -1779,7 +1797,6 @@ static int kk_scene_push_embed_list(int delay,const char* sceneId) ...@@ -1779,7 +1797,6 @@ static int kk_scene_push_embed_list(int delay,const char* sceneId)
} }
_kk_scene_unlock(); _kk_scene_unlock();
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
/************************************************************ /************************************************************
*功能描述:查找是否有场景嵌套 *功能描述:查找是否有场景嵌套
...@@ -1931,7 +1948,6 @@ int kk_scene_query_trigger_info(const char *deviceCode,cJSON *param) ...@@ -1931,7 +1948,6 @@ int kk_scene_query_trigger_info(const char *deviceCode,cJSON *param)
} }
} }
} }
} }
sqlite3_finalize(stmt); sqlite3_finalize(stmt);
sqlite3_free(sqlCmd); sqlite3_free(sqlCmd);
...@@ -2000,6 +2016,5 @@ void kk_scene_execute_event_post(const char* sceneId,const char *msgId) ...@@ -2000,6 +2016,5 @@ void kk_scene_execute_event_post(const char* sceneId,const char *msgId)
kk_tsl_set_value(kk_tsl_set_event_output_value,pSceneShadow,MSG_SCENE_EXECUTENOTIFICATION_SCENEID,NULL,sceneId); kk_tsl_set_value(kk_tsl_set_event_output_value,pSceneShadow,MSG_SCENE_EXECUTENOTIFICATION_SCENEID,NULL,sceneId);
dm_msg_scene_event_post(MSG_SCENE_EXECUTENOTIFICATION,pSceneShadow,msgIdbuf); dm_msg_scene_event_post(MSG_SCENE_EXECUTENOTIFICATION,pSceneShadow,msgIdbuf);
} }
} }
...@@ -55,7 +55,6 @@ static int _kk_msg_get_service_input_data(_IN_ kk_tsl_t *dev_shadow, _IN_ char * ...@@ -55,7 +55,6 @@ static int _kk_msg_get_service_input_data(_IN_ kk_tsl_t *dev_shadow, _IN_ char *
{ {
int res = 0; int res = 0;
if (key == NULL || key_len <= 0) { if (key == NULL || key_len <= 0) {
return INVALID_PARAMETER; return INVALID_PARAMETER;
} }
...@@ -1040,6 +1039,7 @@ int kk_tsl_get_value(kk_tsl_get_t method_get, kk_tsl_t * dev_shadow, const char ...@@ -1040,6 +1039,7 @@ int kk_tsl_get_value(kk_tsl_get_t method_get, kk_tsl_t * dev_shadow, const char
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
//kk_tsl_set_value(kk_tsl_set_event_output_value,pSceneShadow,MSG_SCENE_ADDNOTIFICATION_SCENEID,NULL,sceneId);
int kk_tsl_set_value(kk_tsl_set_t set, kk_tsl_t * dev_shadow, const char *identifier, int kk_tsl_set_value(kk_tsl_set_t set, kk_tsl_t * dev_shadow, const char *identifier,
const void *value, const void *value,
...@@ -1064,7 +1064,7 @@ int kk_tsl_set_value(kk_tsl_set_t set, kk_tsl_t * dev_shadow, const char *identi ...@@ -1064,7 +1064,7 @@ int kk_tsl_set_value(kk_tsl_set_t set, kk_tsl_t * dev_shadow, const char *identi
property = dev_shadow->events + index; property = dev_shadow->events + index;
if(strcmp(property->identifier,"property") == 0 || if(strcmp(property->identifier,"property") == 0 ||
strcmp(property->identifier,"post") == 0) strcmp(property->identifier,"post") == 0)
{ {
e_identifier = property->identifier; e_identifier = property->identifier;
break; break;
} }
...@@ -1288,7 +1288,7 @@ int kk_tsl_post_property_add(_IN_ void *handle, _IN_ char *identifier, _IN_ int ...@@ -1288,7 +1288,7 @@ int kk_tsl_post_property_add(_IN_ void *handle, _IN_ char *identifier, _IN_ int
event = dapi_property->shadow->events + index; event = dapi_property->shadow->events + index;
if(strcmp(event->identifier,"property") == 0 || if(strcmp(event->identifier,"property") == 0 ||
strcmp(event->identifier,"post") == 0) strcmp(event->identifier,"post") == 0)
{ {
pEventoutput = (kk_tsl_data_t *)(event->output_datas); pEventoutput = (kk_tsl_data_t *)(event->output_datas);
number = event->output_data_number; number = event->output_data_number;
break; break;
...@@ -1347,7 +1347,6 @@ char* kk_tsl_get_post_property_str(kk_tsl_t *dev_shadow, const char *propert ...@@ -1347,7 +1347,6 @@ char* kk_tsl_get_post_property_str(kk_tsl_t *dev_shadow, const char *propert
_kk_tsl_api_unlock(); _kk_tsl_api_unlock();
return kk_tsl_post_property_end(property_handle); return kk_tsl_post_property_end(property_handle);
} }
static int kk_tsl_event_output(_IN_ kk_tsl_t *dev_shadow, _IN_ char *identifier, _IN_ int identifier_len, static int kk_tsl_event_output(_IN_ kk_tsl_t *dev_shadow, _IN_ char *identifier, _IN_ int identifier_len,
_IN_ lite_cjson_item_t *lite) _IN_ lite_cjson_item_t *lite)
......
...@@ -85,7 +85,7 @@ ...@@ -85,7 +85,7 @@
#define KK_TSL_GATAWAY_SN_IDENTIFIER "SN" #define KK_TSL_GATAWAY_SN_IDENTIFIER "SN"
#define KK_TSL_GATAWAY_WHITELIST_IDENTIFIER "WhiteListState" #define KK_TSL_GATAWAY_WHITELIST_IDENTIFIER "WhiteListState"
#define DEFAULT_HEARTBEAT_TIMEOUT (60*10)// ten minutes #define DEFAULT_HEARTBEAT_TIMEOUT (60*1)// ten minutes
typedef enum { typedef enum {
KK_DEV_ONLINE = 0, KK_DEV_ONLINE = 0,
......
...@@ -50,7 +50,6 @@ char* kk_load_json(const char *productCode,int type) ...@@ -50,7 +50,6 @@ char* kk_load_json(const char *productCode,int type)
snprintf(tslPath,path_len,TSL_SCENE_PATH_FILE,productCode); snprintf(tslPath,path_len,TSL_SCENE_PATH_FILE,productCode);
} }
INFO_PRINT("\n[%s][%d]tslPath:%s!!!\n",__FUNCTION__,__LINE__,tslPath); INFO_PRINT("\n[%s][%d]tslPath:%s!!!\n",__FUNCTION__,__LINE__,tslPath);
if(!(fp = fopen(tslPath,"r"))) if(!(fp = fopen(tslPath,"r")))
{ {
......
...@@ -364,7 +364,6 @@ static int _kk_tsl_opt_parse(_IN_ kk_tsl_data_value_t *data_value, _IN_ lite_cjs ...@@ -364,7 +364,6 @@ static int _kk_tsl_opt_parse(_IN_ kk_tsl_data_value_t *data_value, _IN_ lite_cjs
else if(data_value->type == KK_TSL_DATA_TYPE_INT){ else if(data_value->type == KK_TSL_DATA_TYPE_INT){
res = lite_cjson_object_item(root, KK_TSL_KEY_MIN, strlen(KK_TSL_KEY_MIN), &lite_item); res = lite_cjson_object_item(root, KK_TSL_KEY_MIN, strlen(KK_TSL_KEY_MIN), &lite_item);
if(res == SUCCESS_RETURN){ if(res == SUCCESS_RETURN){
data_value->mix = atoi(lite_item.value); data_value->mix = atoi(lite_item.value);
//printf("------------>[%s][%d]data_value->mix:%d\n",__FUNCTION__,__LINE__,data_value->mix); //printf("------------>[%s][%d]data_value->mix:%d\n",__FUNCTION__,__LINE__,data_value->mix);
} }
...@@ -374,11 +373,19 @@ static int _kk_tsl_opt_parse(_IN_ kk_tsl_data_value_t *data_value, _IN_ lite_cjs ...@@ -374,11 +373,19 @@ static int _kk_tsl_opt_parse(_IN_ kk_tsl_data_value_t *data_value, _IN_ lite_cjs
//printf("------------>[%s][%d]data_value->max:%d\n",__FUNCTION__,__LINE__,data_value->max); //printf("------------>[%s][%d]data_value->max:%d\n",__FUNCTION__,__LINE__,data_value->max);
} }
}else if(data_value->type == KK_TSL_DATA_TYPE_FLOAT||
data_value->type == KK_TSL_DATA_TYPE_DOUBLE){
res = lite_cjson_object_item(root, KK_TSL_KEY_MIN, strlen(KK_TSL_KEY_MIN), &lite_item);
if(res == SUCCESS_RETURN){
data_value->mix = atof(lite_item.value);
//printf("------------>[%s][%d]data_value->mix:%d\n",__FUNCTION__,__LINE__,data_value->mix);
}
res = lite_cjson_object_item(root, KK_TSL_KEY_MAX, strlen(KK_TSL_KEY_MAX), &lite_item);
if(res == SUCCESS_RETURN){
data_value->max = atof(lite_item.value);
//printf("------------>[%s][%d]data_value->max:%d\n",__FUNCTION__,__LINE__,data_value->max);
}
} }
return SUCCESS_RETURN; return SUCCESS_RETURN;
...@@ -408,7 +415,6 @@ static int _kk_tsl_data_parse(_IN_ kk_tsl_data_value_t *data_value, _IN_ lite_cj ...@@ -408,7 +415,6 @@ static int _kk_tsl_data_parse(_IN_ kk_tsl_data_value_t *data_value, _IN_ lite_cj
res = lite_cjson_object_item(root, KK_TSL_KEY_SPECS, strlen(KK_TSL_KEY_SPECS), &lite_item); res = lite_cjson_object_item(root, KK_TSL_KEY_SPECS, strlen(KK_TSL_KEY_SPECS), &lite_item);
if (res == SUCCESS_RETURN) { if (res == SUCCESS_RETURN) {
_kk_tsl_opt_parse(data_value,&lite_item); _kk_tsl_opt_parse(data_value,&lite_item);
} }
//Parse Type And Value //Parse Type And Value
...@@ -862,7 +868,7 @@ static int _kk_tsl_service_parse(_IN_ kk_tsl_t *shadow, _IN_ kk_tsl_service_t *s ...@@ -862,7 +868,7 @@ static int _kk_tsl_service_parse(_IN_ kk_tsl_t *shadow, _IN_ kk_tsl_service_t *s
} }
//printf("Identifier: %s", service->identifier); //printf("Identifier: %s", service->identifier);
/* Check If Current Service Id Is Set Or Get */ /* Check If Current Service Id Is Set */
if ((strlen(service->identifier) == strlen(KK_TSL_SPECIAL_SERVICE_SET_IDENTIFIER)) && if ((strlen(service->identifier) == strlen(KK_TSL_SPECIAL_SERVICE_SET_IDENTIFIER)) &&
(memcmp(service->identifier, KK_TSL_SPECIAL_SERVICE_SET_IDENTIFIER, (memcmp(service->identifier, KK_TSL_SPECIAL_SERVICE_SET_IDENTIFIER,
strlen(KK_TSL_SPECIAL_SERVICE_SET_IDENTIFIER)) == 0)) { strlen(KK_TSL_SPECIAL_SERVICE_SET_IDENTIFIER)) == 0)) {
...@@ -1213,14 +1219,12 @@ static int _kk_tsl_float_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cj ...@@ -1213,14 +1219,12 @@ static int _kk_tsl_float_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cj
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
static int _kk_tsl_double_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjson_item_t *lite) static int _kk_tsl_double_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjson_item_t *lite)
{ {
lite_cjson_add_number_to_object(lite, data->identifier, data->data_value.value_double); lite_cjson_add_number_to_object(lite, data->identifier, data->data_value.value_double);
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
static int _kk_tsl_string_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjson_item_t *lite) static int _kk_tsl_string_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjson_item_t *lite)
{ {
char *value = (data->data_value.value == NULL) ? ("") : (data->data_value.value); char *value = (data->data_value.value == NULL) ? ("") : (data->data_value.value);
...@@ -1263,7 +1267,6 @@ static int _kk_check_data(_IN_ kk_tsl_data_t *data) ...@@ -1263,7 +1267,6 @@ static int _kk_check_data(_IN_ kk_tsl_data_t *data)
} }
static int _kk_tsl_array_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjson_item_t *lite) static int _kk_tsl_array_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjson_item_t *lite)
{ {
int res = SUCCESS_RETURN, index = 0; int res = SUCCESS_RETURN, index = 0;
lite_cjson_item_t *array = NULL, *array_item = NULL; lite_cjson_item_t *array = NULL, *array_item = NULL;
kk_tsl_data_value_complex_t *complex_array = NULL; kk_tsl_data_value_complex_t *complex_array = NULL;
...@@ -1454,7 +1457,6 @@ static int _kk_tsl_data_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjs ...@@ -1454,7 +1457,6 @@ static int _kk_tsl_data_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjs
case KK_TSL_DATA_TYPE_BOOL: case KK_TSL_DATA_TYPE_BOOL:
case KK_TSL_DATA_TYPE_ENUM: { case KK_TSL_DATA_TYPE_ENUM: {
if (lite->type == cJSON_Array) { if (lite->type == cJSON_Array) {
res = _kk_tsl_int_insert_json_item(data, data_object); res = _kk_tsl_int_insert_json_item(data, data_object);
if (res == SUCCESS_RETURN) { if (res == SUCCESS_RETURN) {
lite_cjson_add_item_to_array(lite, data_object); lite_cjson_add_item_to_array(lite, data_object);
...@@ -1523,7 +1525,6 @@ static int _kk_tsl_data_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjs ...@@ -1523,7 +1525,6 @@ static int _kk_tsl_data_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjs
lite_cjson_add_item_to_array(lite, data_object); lite_cjson_add_item_to_array(lite, data_object);
} }
} else { } else {
res = _kk_tsl_struct_insert_json_item(data, lite); res = _kk_tsl_struct_insert_json_item(data, lite);
lite_cjson_delete(data_object); lite_cjson_delete(data_object);
} }
...@@ -1553,7 +1554,7 @@ int kk_tsl_assemble_property(_IN_ kk_tsl_t *shadow, _IN_ char *identifier, _IN_ ...@@ -1553,7 +1554,7 @@ int kk_tsl_assemble_property(_IN_ kk_tsl_t *shadow, _IN_ char *identifier, _IN_
property = shadow->events + index; property = shadow->events + index;
if(strcmp(property->identifier,"property") == 0 || if(strcmp(property->identifier,"property") == 0 ||
strcmp(property->identifier,"post") == 0) strcmp(property->identifier,"post") == 0)
{ {
for(indexE = 0; indexE < property->output_data_number;indexE++){ for(indexE = 0; indexE < property->output_data_number;indexE++){
output_data = property->output_datas + indexE; output_data = property->output_datas + indexE;
if ((strlen(output_data->identifier) == identifier_len) && if ((strlen(output_data->identifier) == identifier_len) &&
...@@ -1566,7 +1567,6 @@ int kk_tsl_assemble_property(_IN_ kk_tsl_t *shadow, _IN_ char *identifier, _IN_ ...@@ -1566,7 +1567,6 @@ int kk_tsl_assemble_property(_IN_ kk_tsl_t *shadow, _IN_ char *identifier, _IN_
return FAIL_RETURN; return FAIL_RETURN;
} }
} }
} }
} }
......
...@@ -266,7 +266,7 @@ int kk_utils_ftoa_direct(_IN_ double input, _OU_ char **output) ...@@ -266,7 +266,7 @@ 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_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int type, _OU_ lite_cjson_t *lite)
{ {
int res = 0; int res = 0;
if (payload == NULL || payload_len <= 0 || type < 0 || lite == NULL) { if (payload == NULL || payload_len <= 0 || type < 0 || lite == NULL) {
...@@ -286,11 +286,11 @@ int kk_utils_json_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int ...@@ -286,11 +286,11 @@ int kk_utils_json_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int
} }
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
int kk_utils_json_object_item(_IN_ lite_cjson_t *lite, _IN_ const char *key, _IN_ int key_len, _IN_ int type, 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) _OU_ lite_cjson_t *lite_item)
{ {
int res = 0; int res = 0;
if (lite == NULL || lite->type != cJSON_Object || key == NULL || key_len <= 0 || type < 0 || lite_item == NULL) { if (lite == NULL || lite->type != cJSON_Object || key == NULL || key_len <= 0 || type < 0 || lite_item == NULL) {
...@@ -316,4 +316,4 @@ int kk_utils_json_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int ...@@ -316,4 +316,4 @@ int kk_utils_json_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int
} }
return SUCCESS_RETURN; return SUCCESS_RETURN;
} }
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