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

Merge branch 'hzl' into 'master'

1.版本路径同一到kk_product.h

See merge request chenweican/k-sdk!200
parents 652f80d7 b3dfb054
......@@ -27,7 +27,7 @@
#include "com_api.h"
#include "kk_product.h"
#include "kk_hal.h"
#include "ccu_ver.h"
//#include "kcloud_log.h"
static char s_ccuid[DEVICE_CODE_LEN] = {0};
int KK_Get_ccuid(char *device_code)
......@@ -262,6 +262,7 @@ static int setStoragePath(char* path){
#ifdef CONFIG_A133_PLATFORM
sprintf(KK_DEFAULT_CONFIG_FILE_PATH, "%s/%s", path, KK_DEFAULT_CONFIG_FILE_PATH_SUB);
sprintf(KK_AUTH_CONFIG_FILE_PATH, "%s/%s", path, KK_AUTH_CONFIG_FILE_PATH_SUB);
sprintf(KK_VERSION_FILE_PATH, "%s/%s", path, KK_VERSION_FILE_PATH_SUB);
#endif
kk_set_storage_dir(path);
......@@ -316,7 +317,7 @@ int main(int argc, char* argv[])
#if CONFIG_NX5_PLATFORM
kk_cloud_ccuid_version();
kk_info_report_start();
#endif
#endif
kk_ipc_init(IPC_APP2MID,(ipc_cb*)KK_Data_FromDev,NULL,NULL);
#if 1
kk_dl_config();
......
......@@ -232,6 +232,7 @@ static int setStoragePath(char* path){
#ifdef CONFIG_A133_PLATFORM
sprintf(KK_DEFAULT_CONFIG_FILE_PATH, "%s/%s", path, KK_DEFAULT_CONFIG_FILE_PATH_SUB);
sprintf(KK_AUTH_CONFIG_FILE_PATH, "%s/%s", path, KK_AUTH_CONFIG_FILE_PATH_SUB);
sprintf(KK_VERSION_FILE_PATH, "%s/%s", path, KK_VERSION_FILE_PATH_SUB);
#endif
kk_set_storage_dir(path);
......
#ifndef _KK_CCU_VER_H_
#define _KK_CCU_VER_H_
#define KK_CCU_VERSION "1.3.0"
#ifdef CONFIG_A133_PLATFORM
#define KK_VERSION_FILE_PATH "/data/local/kk/etc/VERSION"
#else
#define KK_VERSION_FILE_PATH "/app/ccuApps/VERSION"
#endif
#endif
......@@ -28,7 +28,6 @@
#include <time.h>
#include <signal.h>
#include "kk_product.h"
#include "ccu_ver.h"
#include "com_api.h"
#include "kk_log.h"
......@@ -149,8 +148,8 @@ time_t HAL_Uptimes(void)
time_t HAL_GetTime(void)
{
time_t t;
t = time(NULL);
time_t t;
t = time(NULL);
return t;
}
......@@ -161,7 +160,7 @@ time_t HAL_GetTime_s(char *outStr)
t = time(NULL);
sprintf(outStr,"%ld",t);
return t;
}
......@@ -195,14 +194,14 @@ char *HAL_GetTimeStr(_IN_ char *buf, _IN_ int len)
}
int HAL_Get_TimeZone(void)
{
int timezone = 0;
time_t t1, t2 ;
struct tm *tm_local, *tm_utc;
time(&t1);
t2 = t1;
tm_local = localtime(&t1);
......@@ -211,10 +210,10 @@ int HAL_Get_TimeZone(void)
t2 = mktime(tm_utc);
timezone = (t1 - t2) / 3600;
printf("%d\n", timezone);
return timezone;
}
......@@ -513,8 +512,8 @@ static char *_get_default_routing_ifname(char *ifname, int ifname_size)
continue;
}
/*default route */
#ifndef CONFIG_A133_PLATFORM
if ((destination == 0) && (mask == 0))
#ifndef CONFIG_A133_PLATFORM
if ((destination == 0) && (mask == 0))
#endif
{
strncpy(ifname, iface, ifname_size - 1);
......@@ -676,8 +675,8 @@ int HAL_Get_mac(char* mac)
(unsigned char)ifr.ifr_hwaddr.sa_data[2],
(unsigned char)ifr.ifr_hwaddr.sa_data[3],
(unsigned char)ifr.ifr_hwaddr.sa_data[4],
(unsigned char)ifr.ifr_hwaddr.sa_data[5]
);
(unsigned char)ifr.ifr_hwaddr.sa_data[5]
);
}
else {
int ret_ = 0;
......@@ -686,7 +685,7 @@ int HAL_Get_mac(char* mac)
return ret_;
}
memcpy(mac,mac_addr,strlen(mac_addr));
return 0;
return 0;
}
......
......@@ -33,6 +33,8 @@
#define KK_GW_PRODUCTID "gateway_2"
#define KK_CCU_RANDOM "0000000000"
#define KK_CCU_NAME "NEW_CCU"
#define KK_CCU_VERSION "1.3.0"
/*
#ifdef CONFIG_A133_PLATFORM
#define KK_DEVICESECRET_PATH "/data/local/kk/kk_deviceSecret.txt"
......@@ -137,7 +139,7 @@
#define KK_DEFAULT_CONFIG_FILE_PATH_SUB "kk/etc/cloud_default_config.json"
#endif
#define KK_AUTH_CONFIG_FILE_PATH_SUB "kk/auth_conf.json"
#define KK_VERSION_FILE_PATH_SUB "kk/etc/VERSION"
__attribute__((weak)) char KK_DEVICESECRET_PATH[128] = STORSGE_DIR"/"KK_DEVICESECRET_PATH_SUB;
......@@ -156,9 +158,12 @@ __attribute__((weak)) char KK_CONFIG_FILE_PATH[128] = STORSGE_DIR"/"KK_CONFIG_FI
#ifdef CONFIG_A133_PLATFORM
__attribute__((weak)) char KK_DEFAULT_CONFIG_FILE_PATH[128] = STORSGE_DIR"/"KK_DEFAULT_CONFIG_FILE_PATH_SUB;
__attribute__((weak)) char KK_AUTH_CONFIG_FILE_PATH[128] = STORSGE_DIR"/"KK_AUTH_CONFIG_FILE_PATH_SUB;
__attribute__((weak)) char KK_VERSION_FILE_PATH[128] = STORSGE_DIR"/"KK_VERSION_FILE_PATH_SUB;
#else
__attribute__((weak)) char KK_DEFAULT_CONFIG_FILE_PATH[128] = "/app/ccuApps/config/cloud_default_config.json";
__attribute__((weak)) char KK_AUTH_CONFIG_FILE_PATH[128] = "/tmp/auth_conf.json";
__attribute__((weak)) char KK_VERSION_FILE_PATH[128] = "/app/ccuApps/VERSION"
#endif
enum {
......
......@@ -4,8 +4,8 @@
*
*文件名称: midware.c
*内容摘要: 数据中转中心,上对云端,下对网关,承上启下
*其他说明:
*当前版本:
*其他说明:
*当前版本:
*************************************************************/
......@@ -37,7 +37,7 @@
#include "kk_hal.h"
#include "kk_scene_handle.h"
#include "dm_ota.h"
#include "ccu_ver.h"
#include "kk_area_handle.h"
#include "kk_property_get_handle.h"
#include "kk_motor_bind_db.h"
......@@ -46,25 +46,25 @@
#include "kk_history_db.h"
int g_timezone = 8;
char * g_filerToPlatTable[] =
char * g_filerToPlatTable[] =
{
(char *){KK_REGISTER_TOPIC_REPLY},
(char *){KK_ADD_TOPIC_REPLY},
(char *){KK_LOGIN_TOPIC_REPLY},
(char *){KK_THING_SERVICE_PROPERTY_GET},
(char *){KK_THING_CLOUDSTATE_MSG},
(char *){KK_THING_CLOUDHB_MSG},
(char *){KK_LOGIN_TOPIC_REPLY},
(char *){KK_THING_SERVICE_PROPERTY_GET},
(char *){KK_THING_CLOUDSTATE_MSG},
(char *){KK_THING_CLOUDHB_MSG},
(char *){KK_THING_SERVICE_ADDSCENC},
(char *){KK_THING_SERVICE_UPDATESCENC},
(char *){KK_THING_SERVICE_DELETESCENC},
(char *){KK_THING_SERVICE_UPDATESCENC},
(char *){KK_THING_SERVICE_DELETESCENC},
(char *){KK_THING_SERVICE_NEGATIVE},
(char *){KK_THING_SERVICE_SYNCINFO},
(char *){KK_THING_SERVICE_BINDSCENE},
(char *){KK_THING_SERVICE_BINDSCENE},
(char *){KK_THING_SERVICE_UNBINDSBUTTTON},
(char *){KK_THING_SERVICE_ACTIVEBUTTON},
(char *){KK_THING_SERVICE_HISTORYALARM},
(char *){KK_THING_SERVICE_DEL_HISTORYALARM},
(char *){KK_THING_SERVICE_GETKEYLIST},
(char *){KK_THING_SERVICE_DEL_HISTORYALARM},
(char *){KK_THING_SERVICE_GETKEYLIST},
};
static char s_ccuid[DEVICE_CODE_LEN] = {0};
static char s_Version[VERSION_MAXLEN] = {0};
......@@ -114,7 +114,7 @@ int HAL_GetVersion(_OU_ char *version)
}
int HAL_Get_ccuid(_OU_ char *device_code)
{
{
strncpy(device_code, s_ccuid, strlen(s_ccuid));
printf("HAL_Get_ccuid:%s\n",s_ccuid);
return strlen(s_ccuid);
......@@ -211,7 +211,7 @@ void kk_print_long_data(char *data,int len)
pTmp = malloc(KK_PRINTF_PER_LEN+1);
if(pTmp == NULL){
return;
}
}
while(1)
{
memset(pTmp,0x0,KK_PRINTF_PER_LEN+1);
......@@ -264,15 +264,15 @@ void split(char *src,const char *separator,char **dest,int *num) {
if (src == NULL || strlen(src) == 0)
return;
if (separator == NULL || strlen(separator) == 0)
return;
return;
pNext = strtok(src,separator);
while(pNext != NULL) {
*dest++ = pNext;
++count;
pNext = strtok(NULL,separator);
}
pNext = strtok(NULL,separator);
}
*num = count;
}
}
/************************************************************
......@@ -285,9 +285,9 @@ void split(char *src,const char *separator,char **dest,int *num) {
*************************************************************/
static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
cJSON *params = NULL;
dm_mgr_dev_node_t *node = NULL;
kk_tsl_data_t *property = NULL;
cJSON *propertyItem = NULL;
dm_mgr_dev_node_t *node = NULL;
kk_tsl_data_t *property = NULL;
cJSON *propertyItem = NULL;
cJSON *epNum = NULL;
int epNumInt = 1;
int num = 0;
......@@ -313,7 +313,7 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
if(res != SUCCESS_RETURN)
{
ERROR_PRINT(" error res:%d\n",res);
}
}
char tmpValue[16] = {0};
sprintf(tmpValue,"%d",level);
kk_property_db_update_value(deviceCode,"SensorType",tmpValue);
......@@ -351,12 +351,12 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
complex_struct = property->data_value.value;
for (index = 0; index < complex_struct->size; index++) {
current_data = (kk_tsl_data_t *)complex_struct->value + index;
cJSON *propertyItem_1 = NULL;
cJSON *propertyItem_1 = NULL;
propertyItem_1 = cJSON_GetObjectItem(propertyItem, current_data->identifier);
if(propertyItem_1 == NULL){
continue;
}
if(current_data->data_value.type != KK_TSL_DATA_TYPE_STRUCT){
if(current_data->data_value.type == KK_TSL_DATA_TYPE_INT){
value = propertyItem_1->valueint;
......@@ -367,7 +367,7 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
}
else if(current_data->data_value.type == KK_TSL_DATA_TYPE_TEXT){
if(strlen(propertyItem_1->valuestring) > current_data->data_value.length ){
ERROR_PRINT("ERROR !!!strlen(propertyItem_1->valuestring):%d,current_data->data_value.length:%d\n",strlen(propertyItem_1->valuestring),current_data->data_value.length);
return INVALID_PARAMETER;
}
......@@ -380,7 +380,7 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
complex_struct_1 = current_data->data_value.value;
for(index_1 = 0; index_1 < complex_struct_1->size; index_1++){
current_data_1 = (kk_tsl_data_t *)complex_struct_1->value + index_1;
cJSON *propertyItem_2 = NULL;
cJSON *propertyItem_2 = NULL;
propertyItem_2 = cJSON_GetObjectItem(propertyItem_1, current_data_1->identifier);
if(propertyItem_2 == NULL){
continue;
......@@ -394,7 +394,7 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
}
else if(current_data_1->data_value.type == KK_TSL_DATA_TYPE_TEXT){
if(strlen(propertyItem_2->valuestring) > current_data_1->data_value.length ){
ERROR_PRINT("ERROR !!!strlen(propertyItem_2->valuestring):%d,propertyItem_2->data_value.length:%d\n",strlen(propertyItem_2->valuestring),current_data_1->data_value.length);
return INVALID_PARAMETER;
}
......@@ -434,12 +434,12 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
INFO_PRINT("-----------------KK_TSL_DATA_TYPE_TEXT-------------------\n");
cJSON_AddStringToObject(params,property->identifier,propertyItem->valuestring);
cJSON_DeleteItemFromObject(params, propertiesbuf[0]);
}
}
else if(property->data_value.type == KK_TSL_DATA_TYPE_ENUM || property->data_value.type == KK_TSL_DATA_TYPE_BOOL){
INFO_PRINT("-----------------KK_TSL_DATA_TYPE_ENUM-------------------\n");
cJSON_AddNumberToObject(params,property->identifier,propertyItem->valueint);
cJSON_DeleteItemFromObject(params, propertiesbuf[0]);
}
}
}
}
}
......@@ -449,7 +449,7 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
//ERROR_PRINT("ERROR !!!property->accessMode:%s\n",property->accessMode);
//return INVALID_PARAMETER;
//}
//}
}
......@@ -468,7 +468,7 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
static int kk_panel_bind_motor_delete(const char* deviceCode,int dummyId)
{
int res = 0;
dm_mgr_dev_node_t *node = NULL;
dm_mgr_dev_node_t *node = NULL;
dm_mgr_dev_node_t *gw_node = NULL;
char msgId[MSG_MAX_LEN] = {0};
char sceneId[33] = {0};
......@@ -517,7 +517,7 @@ static int kk_panel_bind_motor_delete(const char* deviceCode,int dummyId)
static int kk_panel_bind_motor_add_actions(const char* deviceCode,cJSON* actions,int dummyId)
{
int res = 0;
dm_mgr_dev_node_t *node = NULL;
dm_mgr_dev_node_t *node = NULL;
dm_mgr_dev_node_t *gw_node = NULL;
char msgId[MSG_MAX_LEN] = {0};
char sceneId[33] = {0};
......@@ -527,7 +527,7 @@ static int kk_panel_bind_motor_add_actions(const char* deviceCode,cJSON* actions
cJSON *info = cJSON_CreateObject();
cJSON *payload = cJSON_CreateObject();
cJSON *paras = cJSON_CreateObject();
if(SUCCESS_RETURN!=dm_mgr_get_device_by_devicecode((char*)deviceCode,&node)){
return -1;
}
......@@ -569,7 +569,7 @@ static int kk_panel_bind_motor_add(const char* deviceCode,int epNum,int dummyId)
struct kk_motor_bind_info *info = (struct kk_motor_bind_info *)malloc(sizeof(struct kk_motor_bind_info)*KK_MOTOR_BIND_INFO_MAX);
memset(info,0,sizeof(struct kk_motor_bind_info)*KK_MOTOR_BIND_INFO_MAX);
int info_size = kk_motor_bind_db_find_ex(dummyId,info,KK_MOTOR_BIND_INFO_MAX);
cJSON *actionsAry = cJSON_CreateArray();
item = cJSON_CreateObject();
cJSON_AddStringToObject(item,"deviceCode",deviceCode);
......@@ -644,7 +644,7 @@ int kk_service_panel_bind_motor_handle(cJSON *deviceCode,cJSON *param,cJSON * ms
}
if((actions = cJSON_GetObjectItem(param,"actions"))==NULL||
actions->type!=cJSON_Array){
actions->type!=cJSON_Array){
INFO_PRINT("[ERR] actions \n");
return -1;
}
......@@ -660,10 +660,10 @@ int kk_service_panel_bind_motor_handle(cJSON *deviceCode,cJSON *param,cJSON * ms
}
free(info);
kk_motor_bind_db_delete_ex(panel_dCode->valuestring);
}
actionCnt = cJSON_GetArraySize(actions);
for(i=0;i<actionCnt;i++){
actionItem = cJSON_GetArrayItem(actions,i);
......@@ -671,7 +671,7 @@ int kk_service_panel_bind_motor_handle(cJSON *deviceCode,cJSON *param,cJSON * ms
INFO_PRINT("[ERR] item \n");
continue;
}
motor_dCode = cJSON_GetObjectItem(actionItem,"deviceCode");
if(motor_dCode==NULL||motor_dCode->type!=cJSON_String){
INFO_PRINT("[ERR] motor_dCode \n");
......@@ -701,7 +701,7 @@ int kk_service_panel_bind_motor_handle(cJSON *deviceCode,cJSON *param,cJSON * ms
kk_panel_bind_motor_delete(panel_dCode->valuestring,dummyId);
kk_motor_bind_db_delete(panel_dCode->valuestring,panel_ep,motor_dCodeStr,motor_ep);
}
}
}
......@@ -723,9 +723,9 @@ int kk_service_query_bind_motor(cJSON *deviceCode,cJSON *param,struct kk_motor_b
if(deviceCode==NULL||deviceCode->type!=cJSON_String){
return -1;
}
panel_dCode = deviceCode;
if(param!=NULL){
if(param->type!=cJSON_Object){
return -1;
......@@ -741,7 +741,7 @@ int kk_service_query_bind_motor(cJSON *deviceCode,cJSON *param,struct kk_motor_b
}
info_size = kk_motor_bind_db_find(panel_dCode->valuestring,panel_ep,info,max);
return info_size;
}
......@@ -761,22 +761,22 @@ int kk_dm_device_subdev_filter(char *data)
WARNING_PRINT("Error before: [%s]\n","cJSON_Parse");
return -1;
}
if((info_root = cJSON_GetObjectItem(json, "info")) == NULL)
if((info_root = cJSON_GetObjectItem(json, "info")) == NULL)
return -1;
if((typeJson = cJSON_GetObjectItem(info_root, "msgtype"))== NULL)
return -1;
if((payload = cJSON_GetObjectItem(json, "payload")) == NULL)
if((payload = cJSON_GetObjectItem(json, "payload")) == NULL)
return -1;
payload_Str = cJSON_Print(payload);
if((deviceCode = cJSON_GetObjectItem(info_root, "deviceCode")) == NULL)
return -1;
if(strcmp(typeJson->valuestring,KK_THING_SERVICE_REBIND_MOTORS) == 0){
INFO_PRINT("REBIND_MOTORS \n");
cJSON *msgId = cJSON_GetObjectItem(payload, "msgId");
cJSON *msgId = cJSON_GetObjectItem(payload, "msgId");
cJSON *paramStr = cJSON_GetObjectItem(payload,"params");
kk_service_panel_bind_motor_handle(deviceCode,paramStr,msgId,KK_SERVICE_REBIND_MOTORS);
kk_service_common_reply(info_root,msgId,KK_THING_SERVICE_REBIND_MOTORS_REPLY);
}
......@@ -784,7 +784,7 @@ int kk_dm_device_subdev_filter(char *data)
INFO_PRINT("ADDBIND_MOTOR \n");
deviceCode = cJSON_GetObjectItem(info_root, MSG_DEVICE_CODE_STR);
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
cJSON *paramStr = cJSON_GetObjectItem(payload,MSG_PARAMS_STR);
kk_service_panel_bind_motor_handle(deviceCode,paramStr,msgId,KK_SERVICE_ADDBIND_MOTORS);
......@@ -793,14 +793,14 @@ int kk_dm_device_subdev_filter(char *data)
INFO_PRINT("UNBIND_MOTORS \n");
deviceCode = cJSON_GetObjectItem(info_root, MSG_DEVICE_CODE_STR);
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
cJSON *paramStr = cJSON_GetObjectItem(payload,MSG_PARAMS_STR);
kk_service_panel_bind_motor_handle(deviceCode,paramStr,msgId,KK_SERVICE_UNBIND_MOTORS);
kk_service_common_reply(info_root,msgId,KK_THING_SERVICE_UNBIND_MOTORS_REPLY);
}else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_QUERY_BIND_MOTORS) == 0){
INFO_PRINT("QUERY_BIND_MOTORS \n");
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
cJSON *paramStr = cJSON_GetObjectItem(payload,MSG_PARAMS_STR);
struct kk_motor_bind_info *info = (struct kk_motor_bind_info *)malloc(sizeof(struct kk_motor_bind_info)*KK_MOTOR_BIND_INFO_MAX);
......@@ -820,11 +820,11 @@ int kk_dm_device_subdev_filter(char *data)
kk_service_common_reply_ex(info_root,msgId,KK_THING_SERVICE_QUERY_BIND_MOTORS_REPLY,ary);
free(info);
}else{
return -1;
}
return 0;
}
......@@ -838,7 +838,7 @@ static int kk_get_ccu_info_reply(cJSON *param,char *msgType)
if(param == NULL){
return INVALID_PARAMETER;
}
cJSON *info = cJSON_CreateObject();
cJSON_AddStringToObject(info, MSG_TYPE_STR, msgType);
char *infff=cJSON_Print(info);
......@@ -891,7 +891,7 @@ static int _kk_handle_airswitch_property(char *fatherDeviceCode,cJSON *info_root
cJSON_Delete(rootData);
free(info_rootS);
free(payloadS);
free(pnewout);
free(pnewout);
}
return SUCCESS_RETURN;
}
......@@ -926,7 +926,7 @@ void mid_cb(void* data, int len){
}
deviceCode = cJSON_GetObjectItem(info_root, MSG_DEVICE_CODE_STR);
type = cJSON_GetObjectItem(info_root, MSG_TYPE_STR);
if (deviceCode == NULL || type == NULL){
ERROR_PRINT(" params [%s] or [%s] can't find \n",MSG_DEVICE_CODE_STR, MSG_TYPE_STR);
cJSON_Delete(json);
......@@ -938,7 +938,7 @@ void mid_cb(void* data, int len){
cJSON_Delete(json);
return;
}
if (strcmp(type->valuestring, KK_THING_SERVICE_GET_CCU_INFO)==0){
cJSON *param = dm_mgr_get_ccu_info();
kk_get_ccu_info_reply(param,KK_THING_SERVICE_GET_CCU_INFO_REPLY);
......@@ -946,7 +946,7 @@ void mid_cb(void* data, int len){
return;
}
/*****属性设置需要先检测设置参数是否超出物模型给定范围*******/
if (strcmp(type->valuestring, KK_THING_SERVICE_PROPERTY_SET)==0){
res = kk_property_set_data_check(payload,deviceCode->valuestring);
......@@ -1059,7 +1059,7 @@ void mid2p_cb(void* data, int len, char* chalMark){
ERROR_PRINT("mid2p_cb malloc buf failed ");
return;
}
memcpy(buf, data, len);
queue_msg->data = buf;
memset(queue_msg->chalMark, 0, sizeof(queue_msg->chalMark));
......@@ -1073,7 +1073,7 @@ void mid2p_cb(void* data, int len, char* chalMark){
buf = NULL;
return ;
}
//kk_ipc_send(IPC_MID2APP, data, len);
}
}
......@@ -1098,7 +1098,7 @@ static int kk_subDevice_property_save(cJSON *payload,char *deviceCode,int type)
{
dm_mgr_dev_node_t *node = NULL;
kk_tsl_data_t *property = NULL;
cJSON *propertyItem = NULL;
cJSON *propertyItem = NULL;
int res = 0;
int idx = 0;
int epNumInt = 0;
......@@ -1107,11 +1107,11 @@ static int kk_subDevice_property_save(cJSON *payload,char *deviceCode,int type)
cJSON *eps = cJSON_GetObjectItem(params, "eps");
if(eps == NULL || eps->type != cJSON_Array){
return FAIL_RETURN;
}
}
res = dm_mgr_get_device_by_devicecode(deviceCode,&node);
if (res < SUCCESS_RETURN) {
return FAIL_RETURN;
}
}
cJSON *client_list = eps->child;
while(client_list != NULL){
cJSON *epNum = cJSON_GetObjectItem(client_list, "epNum");
......@@ -1154,7 +1154,7 @@ static int kk_subDevice_property_save(cJSON *payload,char *deviceCode,int type)
kk_subAirSwitch_db_update_value(deviceCode,property->identifier,valBuf,epNumInt);
}else if(type == 2){
kk_subFreshAir_db_update_value(deviceCode,property->identifier,valBuf,epNumInt);
}
}
}else if(property->data_value.type == KK_TSL_DATA_TYPE_TEXT ){
if(type == 0){
kk_indoorAir_db_update_value(deviceCode,property->identifier,propertyItem->valuestring,epNumInt);
......@@ -1162,10 +1162,10 @@ static int kk_subDevice_property_save(cJSON *payload,char *deviceCode,int type)
kk_subAirSwitch_db_update_value(deviceCode,property->identifier,propertyItem->valuestring,epNumInt);
}else if(type == 2){
kk_subFreshAir_db_update_value(deviceCode,property->identifier,propertyItem->valuestring,epNumInt);
}
}
}
}
}
client_list = client_list->next;
}
......@@ -1216,7 +1216,7 @@ static int kk_indoorAir_online_handle(dm_mgr_dev_node_t *node ,char *deviceCode,
continue;
}
kk_indoorAir_db_insert(deviceCode,property->identifier,property->data_value.type,epNum);
}
}
//gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息
//if(gwExist){
//char name[128] = {0};
......@@ -1244,7 +1244,7 @@ static int kk_subAirSwitch_online_handle(dm_mgr_dev_node_t *node ,char *deviceCo
continue;
}
kk_subAirSwitch_db_insert(deviceCode,property->identifier,property->data_value.type,epNum);
}
}
//gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息
//if(gwExist){
//char name[128] = {0};
......@@ -1272,7 +1272,7 @@ static int kk_subFreshair_online_handle(dm_mgr_dev_node_t *node ,char *deviceCod
continue;
}
kk_subFreshAir_db_insert(deviceCode,property->identifier,property->data_value.type,epNum);
}
}
//gwExist = kk_get_device_roomInfo(deviceCode,1,roomName,roomId);//获取网关房间信息
//if(gwExist){
//char name[128] = {0};
......@@ -1313,18 +1313,18 @@ void kk_platMsg_handle(void* data, char* chalMark){
ERROR_PRINT("msgType info_dcode or jsonPay params are error\n");
goto error;
}
//if (chalMark != NULL){
//if(strcmp(msgType->valuestring,"/thing/service/property/set_reply") != 0){
//dm_mgr_update_timestamp_by_devicecode(chalMark,HAL_Uptimes());
//}
//}
//printf("msgType->valuestring:%s [%s][%d]\n",msgType->valuestring,__FUNCTION__,__LINE__);
if(strcmp(msgType->valuestring,"/thing/service/property/get_reply") != 0 &&
if(strcmp(msgType->valuestring,"/thing/service/property/get_reply") != 0 &&
strcmp(msgType->valuestring,"/thing/service/property/set_reply") != 0){
dm_mgr_update_timestamp_by_devicecode(info_dcode->valuestring,HAL_Uptimes());
}
if (strcmp(msgType->valuestring, KK_THING_TOPO_ADD_MSG)==0){
jsonPay = cJSON_GetObjectItem(payload, MSG_PARAMS_STR);
if(jsonPay == NULL) goto error;
......@@ -1365,7 +1365,7 @@ void kk_platMsg_handle(void* data, char* chalMark){
res = dm_mgr_get_device_by_devicecode(devCode->valuestring,&search_node);
if (res < SUCCESS_RETURN) {
goto error;
}
}
if(strcmp(search_node->productType,KK_DM_AIR_GATEWAY_TYPE) == 0){
cJSON *epNumJson = cJSON_GetObjectItem(jsonPay, "epNum");
if(epNumJson == NULL) goto error;
......@@ -1391,7 +1391,7 @@ void kk_platMsg_handle(void* data, char* chalMark){
res = dm_mgr_get_device_by_devicecode(devCode->valuestring,&search_node);
if (res < SUCCESS_RETURN) {
goto error;
}
}
if(strcmp(search_node->productType,KK_DM_AIR_GATEWAY_TYPE) == 0){
cJSON *epNumJson = cJSON_GetObjectItem(jsonPay, "epNum");
if(epNumJson == NULL) goto error;
......@@ -1408,7 +1408,7 @@ void kk_platMsg_handle(void* data, char* chalMark){
kk_subFreshAir_db_update_online((char*)search_node->deviceCode,0,epNumJson->valueint);
_kk_subDevice_online_to_app(info,payload);
}
}
}
else if (strstr(msgType->valuestring, KK_THING_TOPO_BATCH_ADD_MSG) != NULL){
kk_ipc_send(IPC_MID2APP,data,strlen(data));
jsonPay = cJSON_GetObjectItem(payload, MSG_PARAMS_STR);
......@@ -1419,14 +1419,14 @@ void kk_platMsg_handle(void* data, char* chalMark){
while(item != NULL){
char *deviceCode = cJSON_GetObjectItem(item,MSG_DEVICE_CODE_STR)->valuestring;
char *productCode = cJSON_GetObjectItem(item,MSG_PRODUCT_CODE_STR)->valuestring;
char *mac_s = cJSON_GetObjectItem(item,MSG_DEVICE_MAC)->valuestring;
char *fatherMac = cJSON_GetObjectItem(item,MSG_DEVICE_PARENTCODE)->valuestring;
char *mac_s = cJSON_GetObjectItem(item,MSG_DEVICE_MAC)->valuestring;
char *fatherMac = cJSON_GetObjectItem(item,MSG_DEVICE_PARENTCODE)->valuestring;
version = cJSON_GetObjectItem(item, "version");
if(version != NULL ){
memcpy(versionBuf,version->valuestring,strlen(version->valuestring));
}else{
memcpy(versionBuf,"1.1.0",strlen("1.1.0"));
}
}
kk_mid_subdev_batch_add(productCode,deviceCode,mac_s,fatherMac,versionBuf);
item = item->next;
}
......@@ -1464,7 +1464,7 @@ void kk_platMsg_handle(void* data, char* chalMark){
kk_tsl_property_set_by_shadow(search_node->dev_shadow, outstr, strlen(outstr)+1);
proCode = cJSON_GetObjectItem(info, MSG_PRODUCT_CODE_STR);
dm_msg_thing_property_post_by_identify(proCode->valuestring,info_dcode->valuestring,jsonPay);
//如果带version,代表的是快照信息,快照信息不需要触发iftt
//如果带version,代表的是快照信息,快照信息不需要触发iftt
cJSON *version = cJSON_GetObjectItem(jsonPay, "version");
if(version == NULL && is_BodySensor_dev(proCode->valuestring)==0){
kk_scene_iftt_check(info_dcode->valuestring,jsonPay);
......@@ -1480,13 +1480,13 @@ void kk_platMsg_handle(void* data, char* chalMark){
res = dm_mgr_get_device_by_devicecode(devCode->valuestring,&node);
if (res < SUCCESS_RETURN) {
goto error;
}
}
dm_mgr_update_timestamp_by_devicecode(node->deviceCode,0);
dm_mgr_set_dev_onoffline(node,1);
kk_delete_LockUser_info((const char*)node->deviceCode);
dm_mgr_set_dev_onoffline(node,1);
kk_delete_LockUser_info((const char*)node->deviceCode);
//kk_ipc_send(IPC_MID2APP,data,strlen(data)+1);
//dm_mgr_subdev_delete(devCode->valuestring);
}else if(strstr(msgType->valuestring, KK_THING_EVENT_MESSAGE) != NULL && \
strstr(msgType->valuestring, KK_THING_EVENT_POST) != NULL){
dm_mgr_dev_node_t *node = NULL;
......@@ -1516,9 +1516,9 @@ void kk_platMsg_handle(void* data, char* chalMark){
if(buttonId == NULL || buttonId->type != cJSON_Number){
ERROR_PRINT("DATA ERROR!!!\n");
goto error;
}
}
sprintf(btnId,"%d",buttonId->valueint);
kk_scene_execute_quickpanel(btnId,info_dcode->valuestring);
kk_scene_execute_quickpanel(btnId,info_dcode->valuestring);
}
INFO_PRINT("-------------------kk_platMsg_handle event post enters \n");
for(idx = 0; idx < node->dev_shadow->event_number; idx++){
......@@ -1528,7 +1528,7 @@ void kk_platMsg_handle(void* data, char* chalMark){
INFO_PRINT("eventItem->identifier = NULL\n");
continue ;
}
if(strcmp(eventItem->identifier,MSG_PROPERTY_STR) != 0 &&
eventItem->output_data_number > 0){
int index = 0;
......@@ -1545,7 +1545,7 @@ void kk_platMsg_handle(void* data, char* chalMark){
}
for(index = 0; index < eventItem->output_data_number;index++){
itemStr = cJSON_GetObjectItem(jsonPay, eventItem->identifier);
itemData = eventItem->output_datas + index;
itemData = eventItem->output_datas + index;
cJSON * itemDataIdentifier = cJSON_GetObjectItem(jsonPay, itemData->identifier);
if(itemDataIdentifier != NULL){
memset(tmpStr,0x0,sizeof(tmpStr));
......@@ -1554,7 +1554,7 @@ void kk_platMsg_handle(void* data, char* chalMark){
itemData->data_value.type == KK_TSL_DATA_TYPE_ENUM||
itemData->data_value.type == KK_TSL_DATA_TYPE_BOOL){
sprintf(valueBuf,"%d",itemDataIdentifier->valueint);
kk_tsl_set_value(kk_tsl_set_event_output_value,node->dev_shadow,tmpStr,&itemDataIdentifier->valueint,NULL);
kk_tsl_set_value(kk_tsl_set_event_output_value,node->dev_shadow,tmpStr,&itemDataIdentifier->valueint,NULL);
}
else if(itemData->data_value.type == KK_TSL_DATA_TYPE_FLOAT ||
itemData->data_value.type == KK_TSL_DATA_TYPE_DOUBLE){
......@@ -1566,10 +1566,10 @@ void kk_platMsg_handle(void* data, char* chalMark){
itemData->data_value.type == KK_TSL_DATA_TYPE_DATE){
sprintf(valueBuf,"%s",itemDataIdentifier->valuestring);
kk_tsl_set_value(kk_tsl_set_event_output_value,node->dev_shadow,tmpStr,NULL,itemDataIdentifier->valuestring);
}
}
if(sensorDev){
kk_alarm_notify_handle(node,itemData->identifier,valueBuf);//告警信息处理
}
}
if(pack==0){
INFO_PRINT("kk_platMsg_handle data: event post,eventItem->identifier:%s\n",eventItem->identifier);
if(strcmp(eventItem->identifier,"TamperAlarm") != 0){//TamperAlarm不需要上报,否则APP显示会有问题
......@@ -1609,8 +1609,8 @@ void kk_platMsg_handle(void* data, char* chalMark){
if(itemStr != NULL){
if(sensorDev){
//kk_history_insert_sensor_info(info_dcode->valuestring,eventItem->identifier,"",HAL_GetTime());
}
//kk_tsl_set_value(kk_tsl_set_event_output_value,dev_shadow,eventItem->identifier,&itemStr->valueint,NULL);
}
//kk_tsl_set_value(kk_tsl_set_event_output_value,dev_shadow,eventItem->identifier,&itemStr->valueint,NULL);
dm_msg_thing_event_post(info_dcode->valuestring,eventItem->identifier,NULL);
}
......@@ -1621,15 +1621,15 @@ void kk_platMsg_handle(void* data, char* chalMark){
else if(strstr(msgType->valuestring, KK_THING_TOPO_BATCH_DELETE_MSG) != NULL){
kk_ipc_send(IPC_MID2APP,data,strlen(data));
jsonPay = cJSON_GetObjectItem(payload, MSG_PARAMS_STR);
if(jsonPay == NULL) goto error;
if(jsonPay == NULL) goto error;
cJSON *devices = cJSON_GetObjectItem(jsonPay, MSG_TOPO_CHANGE_DEVICES_STR);
cJSON * item = devices->child;
while(item != NULL){
char *deviceCode = cJSON_GetObjectItem(item,MSG_DEVICE_CODE_STR)->valuestring;
dm_mgr_subdev_delete(deviceCode);
item = item->next;
}
}
}
else if(strstr(msgType->valuestring, KK_THING_SERVICE_PROPERTY_GET_REPLY) != NULL){
INFO_PRINT("kk_platMsg_handle data: KK_THING_SERVICE_PROPERTY_GET_REPLY\n");
......@@ -1695,11 +1695,11 @@ typedef struct {
int permit_join;
void *g_mid_dispatch_thread;
void *g_ota_dispatch_thread;
void *g_ccuProChg_dispatch_thread;
void *g_ccuProChg_dispatch_thread;
void *g_udp_dispatch_thread;
int g_mid_dispatch_thread_running;
int g_ota_dispatch_thread_running;
int g_ccuProChg_dispatch_thread_running;
int g_ccuProChg_dispatch_thread_running;
int g_udp_dispatch_thread_running;
} mid_ctx_t;
#define MID_YIELD_TIMEOUT_MS (200)
......@@ -1763,45 +1763,45 @@ void *ota_dispatch_yield(void *args)
void *udp_dispatch_yield(void *args){
INFO_PRINT("udp_dispatch_yield udp thread create\n");
// 绑定地址
struct sockaddr_in addrto;
bzero(&addrto, sizeof(struct sockaddr_in));
addrto.sin_family = AF_INET;
addrto.sin_addr.s_addr = htonl(INADDR_ANY);
addrto.sin_port = htons(UDP_LAN_PORT);
// 绑定地址
struct sockaddr_in addrto;
bzero(&addrto, sizeof(struct sockaddr_in));
addrto.sin_family = AF_INET;
addrto.sin_addr.s_addr = htonl(INADDR_ANY);
addrto.sin_port = htons(UDP_LAN_PORT);
// 发送地址
struct sockaddr_in addrto_host;
bzero(&addrto_host, sizeof(struct sockaddr_in));
addrto_host.sin_family = AF_INET;
addrto_host.sin_addr.s_addr = htonl(INADDR_ANY);
//addrto_host.sin_port = htons(UDP_LAN_PORT);
struct sockaddr_in addrto_host;
bzero(&addrto_host, sizeof(struct sockaddr_in));
addrto_host.sin_family = AF_INET;
addrto_host.sin_addr.s_addr = htonl(INADDR_ANY);
//addrto_host.sin_port = htons(UDP_LAN_PORT);
// 接收到的广播地址
struct sockaddr_in from;
bzero(&from, sizeof(struct sockaddr_in));
// 接收到的广播地址
struct sockaddr_in from;
bzero(&from, sizeof(struct sockaddr_in));
int sock = -1;
int sock_host = -1;
if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
int sock = -1;
int sock_host = -1;
if ((sock = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
{
ERROR_PRINT("socket error\n");
ERROR_PRINT("socket error\n");
}
if ((sock_host = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
if ((sock_host = socket(AF_INET, SOCK_DGRAM, 0)) == -1)
{
ERROR_PRINT("socket error\n");
ERROR_PRINT("socket error\n");
}
if(bind(sock,(struct sockaddr *)&(addrto), sizeof(struct sockaddr_in)) == -1)
if(bind(sock,(struct sockaddr *)&(addrto), sizeof(struct sockaddr_in)) == -1)
{
ERROR_PRINT("bind error...\n");
ERROR_PRINT("bind error...\n");
}
socklen_t len = sizeof(struct sockaddr_in);
socklen_t len = sizeof(struct sockaddr_in);
char szOut[128] = {0};
char szDec[1024] = {0};
char szDec[1024] = {0};
char host_ip[32] = {0};
char mac[32] = {0};
char device_code[DEVICE_CODE_LEN] = {0};
......@@ -1819,17 +1819,17 @@ void *udp_dispatch_yield(void *args){
while(1)
{
//从广播地址接受消息
//从广播地址接受消息
memset(szDec, 0 , sizeof(szDec));
int size=recvfrom(sock, szDec, sizeof(szDec), 0, (struct sockaddr*)&from,(socklen_t*)&len);
if(size<=0)
int size=recvfrom(sock, szDec, sizeof(szDec), 0, (struct sockaddr*)&from,(socklen_t*)&len);
if(size<=0)
{
WARNING_PRINT("read error....\n");
WARNING_PRINT("read error....\n");
}
else
{
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("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));
//"search_kk_ccu|deviceCode=1122334455667788;protocol=tcp"
if(strstr(szDec, "search_kk_ccu|") != NULL){
char* getConnet = szDec + strlen("search_kk_ccu|");
......@@ -1892,23 +1892,23 @@ void *udp_dispatch_yield(void *args){
// printf("[%s][%d]host_ip:%s\n",__FUNCTION__,__LINE__,host_ip);
// if(strcmp(inet_ntoa(from.sin_addr),host_ip) == 0){
sprintf(szOut,"search_kk_ccu_ack|deviceCode=%s;ip=%s;port=%d",device_code,host_ip,16565);
DEBUG_PRINT("szOut:%s\n",szOut);
DEBUG_PRINT("udp client ip:%s ,port is :%d \n",inet_ntoa(from.sin_addr),from.sin_port);
//sendto(sock, szOut, strlen(szOut), 0, (struct sockaddr*)&from,len);
DEBUG_PRINT("szOut:%s\n",szOut);
DEBUG_PRINT("udp client ip:%s ,port is :%d \n",inet_ntoa(from.sin_addr),from.sin_port);
//sendto(sock, szOut, strlen(szOut), 0, (struct sockaddr*)&from,len);
addrto_host.sin_addr.s_addr = inet_addr(inet_ntoa(from.sin_addr));
addrto_host.sin_addr.s_addr = inet_addr(inet_ntoa(from.sin_addr));
if(strlen(portStr) > 0){
addrto_host.sin_port = htons(atoi(portStr));
addrto_host.sin_port = htons(atoi(portStr));
}else{
addrto_host.sin_port = htons(UDP_LAN_PORT_HOST);
addrto_host.sin_port = htons(UDP_LAN_PORT_HOST);
}
//addrto_host.sin_port = from.sin_port;
//addrto_host.sin_port = from.sin_port;
//if(strcmp(host_ip,inet_ntoa(from.sin_addr)) == 0)
//{
sendto(sock_host, szOut, strlen(szOut), 0, (struct sockaddr*)&addrto_host,sizeof(addrto_host));
sendto(sock_host, szOut, strlen(szOut), 0, (struct sockaddr*)&addrto_host,sizeof(addrto_host));
//}
//else
//{
......@@ -1917,7 +1917,7 @@ void *udp_dispatch_yield(void *args){
// }
}
}
usleep(100000);
usleep(100000);
}
close(sock);
......@@ -2025,6 +2025,7 @@ static int setStoragePath(char* path){
#ifdef CONFIG_A133_PLATFORM
sprintf(KK_DEFAULT_CONFIG_FILE_PATH, "%s/%s", path, KK_DEFAULT_CONFIG_FILE_PATH_SUB);
sprintf(KK_AUTH_CONFIG_FILE_PATH, "%s/%s", path, KK_AUTH_CONFIG_FILE_PATH_SUB);
sprintf(KK_VERSION_FILE_PATH, "%s/%s", path, KK_VERSION_FILE_PATH_SUB);
#endif
kk_set_storage_dir(path);
......@@ -2086,7 +2087,7 @@ int main(const int argc, const char **argv)
//IOT_Linkkit_Close(mid_ctx->master_devid);
return -1;
}
mid_ctx->g_ota_dispatch_thread_running = 1;
res = pthread_create((pthread_t *)&mid_ctx->g_ota_dispatch_thread, NULL, ota_dispatch_yield, NULL);
if (res < 0) {
......@@ -2102,7 +2103,7 @@ int main(const int argc, const char **argv)
//IOT_Linkkit_Close(mid_ctx->master_devid);
return -1;
}
mid_ctx->g_ccuProChg_dispatch_thread_running = 1;
res = pthread_create((pthread_t *)&mid_ctx->g_ccuProChg_dispatch_thread, NULL, ccu_property_monitor, NULL);
if (res < 0) {
......@@ -2117,6 +2118,6 @@ int main(const int argc, const char **argv)
BodySensorTrigger_check();
}
}
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