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

Merge branch 'cwc' into 'master'

【修改内容】1,调整a133数据库存放位置;2,增加取消报警声的功能

See merge request chenweican/k-sdk!171
parents b73ec4c5 91c19022
......@@ -258,14 +258,18 @@ again:
sleep(2);
goto again;
}
}else if(rc == -2){
}
#if 0
else if(rc == -2){
rc = mqtt_start_ex(1);
if(rc < 0){
kk_write_disconnect_flag();
sleep(2);
goto again;
}
}else{
}
#endif
else{
kk_write_disconnect_flag();
sleep(2);
goto again;
......
......@@ -108,17 +108,10 @@ int kk_dl_config(){
char sds[128] = {0};
static int s_count = 0;
KK_Get_ccuid(ccuid);
//ret = kk_check_config_file(KK_CONFIG_FILE_PATH,&configData);
//defaultCon:
//if(ret != 0){
//defaultFlag = 1;
ret = kk_check_config_file(KK_DEFAULT_CONFIG_FILE_PATH,&configData);
//}
ret = kk_check_config_file(KK_DEFAULT_CONFIG_FILE_PATH,&configData);
if(ret == 0){
ret = _kk_get_config_dl_host(configData,url);
//if(ret == -2 && defaultFlag == 0){
//goto defaultCon;
//}
if(ret == 0){
again:
s_count++;
......
......@@ -4,7 +4,7 @@
#include "sqlite3.h"
#ifdef CONFIG_A133_PLATFORM
#define KK_LAN_NODE_DB_FILE "/data/local/kk/kk_lan_node.db"
#define KK_LAN_NODE_DB_FILE "/data/local/kk/db/kk_lan_node.db"
#else
#define KK_LAN_NODE_DB_FILE "/data/kk/kk_lan_node.db"
#endif
......
......@@ -3,9 +3,9 @@
#include "com_api.h"
#include "kk_log.h"
#ifdef CONFIG_A133_PLATFORM
#define APP2MID "ipc:///data/local/kk/etc/app2mid.ipc"
#define APP2MID_PUBSUB "ipc:///data/local/kk/etc/app2mid_pubsub.ipc"
#define PLAT2MID "ipc:///data/local/kk/etc/plat2mid.ipc"
#define APP2MID "ipc:///data/local/kk/app2mid.ipc"
#define APP2MID_PUBSUB "ipc:///data/local/kk/app2mid_pubsub.ipc"
#define PLAT2MID "ipc:///data/local/kk/plat2mid.ipc"
#else
#define APP2MID "ipc:///tmp/app2mid.ipc"
#define APP2MID_PUBSUB "ipc:///tmp/app2mid_pubsub.ipc"
......
......@@ -41,7 +41,7 @@
#define GET_CCUID_CMD "getprop ro.ccuinfo"
#define GET_KEY_CMD "getprop ro.ccuinfo"
#define GET_PRODUCTID_CMD "getprop ro.product.ccu.pid"
#define KK_DB_FILE "/data/local/kk/etc/kk_database.db"
#define KK_DB_FILE "/data/local/kk/db/kk_database.db"
#define TSL_SUBDEVICE_PATH_FILE "/data/local/kk/tsl/product_%s.json"
#define TSL_GATEWAY_PATH_FILE "/data/local/kk/tsl/gateway_%s.json"
#define TSL_CCU_PATH_FILE "/data/local/kk/tsl/ccu_%s.json"
......
......@@ -1282,7 +1282,6 @@ static int kk_service_getScreenList_handle(cJSON *param,cJSON *msgId)
int res = 0;
int i = 0,num = 0;
ScreenDevInfo_t *pList = NULL;
printf("----------------------------------------DEBUG-------------------------[%s][%d]\n",__FUNCTION__,__LINE__);
if(param == NULL || msgId == NULL){
return INVALID_PARAMETER;
......@@ -1295,7 +1294,6 @@ static int kk_service_getScreenList_handle(cJSON *param,cJSON *msgId)
if(productCode == NULL){
return FAIL_RETURN;
}
printf("----------------------------------------DEBUG-------------------------[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON *info = cJSON_CreateObject();
cJSON_AddStringToObject(info, MSG_TYPE_STR, KK_THING_SERVICE_GETMOORELIST_REPLY);
......@@ -1358,7 +1356,6 @@ static int kk_service_getScreenInfo_handle(cJSON *inforoot,cJSON *param,cJSON *m
if(param == NULL || msgId == NULL){
return INVALID_PARAMETER;
}
printf("----------------------------------------DEBUG-------------------------[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON *serialid = cJSON_GetObjectItem(param,MSG_DEVICE_SERIALID);
if(serialid == NULL) return INVALID_PARAMETER;
......@@ -1371,7 +1368,6 @@ static int kk_service_getScreenInfo_handle(cJSON *inforoot,cJSON *param,cJSON *m
if(productCode == NULL){
return FAIL_RETURN;
}
printf("----------------------------------------DEBUG-------------------------[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON *info = cJSON_CreateObject();
cJSON_AddStringToObject(info, MSG_TYPE_STR, KK_THING_SERVICE_GETCLIENTINFO_REPLY);
......@@ -1384,7 +1380,6 @@ static int kk_service_getScreenInfo_handle(cJSON *inforoot,cJSON *param,cJSON *m
cJSON_AddStringToObject(payload, "version", "1.0");
cJSON_AddStringToObject(payload, "code", "0");
cJSON_AddStringToObject(payload, "msgId", msgId->valuestring);
printf("----------------------------------------DEBUG-------------------------[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON *paramInfo = cJSON_CreateObject();
kk_get_screenDev_info(&pInfo,serialid->valuestring);
......@@ -1401,7 +1396,6 @@ static int kk_service_getScreenInfo_handle(cJSON *inforoot,cJSON *param,cJSON *m
cJSON *expand = cJSON_CreateObject();
cJSON_AddItemToObject(paramInfo, "expand", expand);
}
printf("----------------------------------------DEBUG-------------------------[%s][%d]\n",__FUNCTION__,__LINE__);
cJSON_AddItemToObject(payload, "params", paramInfo);
char *payload11=cJSON_Print(payload);
......@@ -1889,6 +1883,18 @@ int kk_service_arming_set(char *state)
dm_msg_ccu_property_post(node);
return res;
}
static int _kk_cancel_warning_handle(char *deviceCode){
int res = 0;
dm_mgr_dev_node_t *node = NULL;
res = dm_mgr_get_device_by_devicecode(deviceCode,&node);
if (res != SUCCESS_RETURN) {
ERROR_PRINT("ERROR [%s][%d] res:%d\n",__FUNCTION__,__LINE__,res);
return FAIL_RETURN;
}
const char *param = "{\"AlarmState\":0,\"epNum\":\"1\"}";
kk_msg_execute_property_set(node->productCode,node->deviceCode,param,node->fatherDeviceCode);
return SUCCESS_RETURN;
}
/************************************************************
*功能描述:收到云端数据后的回调处理
*输入参数:type:数据类型
......@@ -1981,6 +1987,20 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
}
kk_service_arming_set(state->valuestring);
}
cJSON *cancelWarning = cJSON_GetObjectItem(paramStr, KK_TSL_CCU_CANCEL_WARNING);
if(cancelWarning != NULL && cancelWarning->valueint == 1){
int numberSiren = 0,kcount = 0;
DeviceCode_t * pList = (DeviceCode_t*)malloc(sizeof(DeviceCode_t)*24);
if(pList != NULL){
memset(pList,0x0, sizeof(DeviceCode_t)*24);
numberSiren = kk_subDev_getDeviceCodes_byProductType(pList,"siren");
for(kcount = 0; kcount < numberSiren; kcount++){
_kk_cancel_warning_handle(pList[kcount].deviceCode);
}
free(pList);
pList = NULL;
}
}
}
else if (strstr(typeJson->valuestring,KK_THING_CLOUDSTATE_MSG)){
INFO_PRINT("cloud state notify \n");
......@@ -2020,17 +2040,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
dm_mgr_resubscribe();
s_last_notify_time = HAL_Uptimes();
}
}else if (strcmp(typeJson->valuestring,"/upgrade") == 0){
INFO_PRINT("ota upgrade... \n");
char tmp[256] = {0};
snprintf(tmp, sizeof(tmp), "rm -rf %s", OTA_IMG_PATH);
system(tmp);
memset(tmp, 0x00, sizeof(tmp));
snprintf(tmp, sizeof(tmp), "mkdir -p %s", OTA_IMG_PATH);
system(tmp);
kk_dm_ota_send(data, strlen(data)+1);
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
kk_service_upgrade_reply(info_root,msgId);
}else if(strcmp(typeJson->valuestring,KK_THING_SERVICE_REBOOT) == 0){
INFO_PRINT(" reboot called!!!\n");
cJSON *msgId = cJSON_GetObjectItem(payload, MSG_COMMON_MSGID);
......
......@@ -822,7 +822,7 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *room
}
/************************************************************
*功能描述:更新设备注册标记
*功能描述:获取传感器类设备
*输入参数:deviceCode:设备deviceCode
isAuth:1,已注册;0,未注册
*输出参数:无
......@@ -867,7 +867,40 @@ int kk_subDev_getSensors_reply(SensorType_t*list)
return SUCCESS_RETURN;
}
/************************************************************
*功能描述:通过deviceType获取设备
*输入参数:deviceCode:设备deviceCode
*输出参数:无
*返 回 值:0:成功;其他:失败
*其他说明:
*************************************************************/
int kk_subDev_getDeviceCodes_byProductType(DeviceCode_t *list,char *type)
{
char *sqlCmd = NULL;
const char *searchCmd = "select * from SubDeviceInfo WHERE productType= '%s'";
char *zErrMsg = 0;
sqlite3_stmt *stmt;
kk_subDb_ctx_t *ctx = _kk_subDb_get_ctx();
char *pDeviceCode = NULL;
dm_mgr_dev_node_t *node = NULL;
int currentValue = 0;
int count = 0;
//printf("kk_subDev_getSensors_reply----------------------start\n");
_kk_subDb_lock();
sqlCmd = sqlite3_mprintf(searchCmd,type);
sqlite3_prepare_v2(ctx->pDb, sqlCmd, strlen(sqlCmd), &stmt, NULL);
while(sqlite3_step(stmt) == SQLITE_ROW){
//printf("kk_subDev_getSensors_reply----------------------num\n");
pDeviceCode = (char*)sqlite3_column_text(stmt, DB_SUB_DEVICECODE);
memcpy(list[count].deviceCode,pDeviceCode,strlen(pDeviceCode));
count++;
}
//printf("kk_subDev_getSensors_reply----------------------end\n");
sqlite3_finalize(stmt);
_kk_subDb_unlock();
sqlite3_free(sqlCmd);
return count;
}
/************************************************************
*功能描述:检查屏类设备是否有重复
......
......@@ -6,6 +6,9 @@ typedef struct {
char deviceCode[DEVICE_CODE_MAXLEN];
int SensorType;
} SensorType_t;
typedef struct {
char deviceCode[DEVICE_CODE_MAXLEN];
} DeviceCode_t;
typedef struct {
char ip[17];
char name[128];
......@@ -39,6 +42,7 @@ int kk_screenDev_update_room(char *serialId,char *roomid,char *roomname,char* na
int kk_screenDev_delete_by_serialId(char *serialId);
int kk_get_screenDev_list(ScreenDevInfo_t*list);
int kk_get_screenDev_info(ScreenDevInfo_t *devInfo,char*serialId);
int kk_subDev_getDeviceCodes_byProductType(DeviceCode_t *list,char *type);
enum{
DB_SUB_IDX = 0,
DB_SUB_ONLINE,
......
......@@ -78,6 +78,7 @@
#define KK_TSL_CCU_WANSTATE_IDENTIFIER "wanState"
#define KK_TSL_CCU_IOTCLOUD_IDENTIFIER "iotCloudState"
#define KK_TSL_CCU_ARMINGSTATE_IDENTIFIER "ArmingState"
#define KK_TSL_CCU_CANCEL_WARNING "CancelWarning"
#define KK_TSL_GATAWAY_VERSION_IDENTIFIER "Version"
#define KK_TSL_GATAWAY_IP_IDENTIFIER "IPAddress"
......
{
"version": "1.4",
"update": "2021-09-06",
"version": "1.5",
"update": "2022-01-10",
"devices": [
{
......@@ -270,10 +270,10 @@
]
},
{
"pid": "0402812C",
"name": "BJ SOS Button",
"type": "ZSED",
"ota": false,
"pid": "0402802C",
"name": "BJ SOS Panel",
"type": "ZR",
"ota": true,
"b_pid": 3015,
"productType": "IASsensor",
......@@ -284,17 +284,17 @@
"zone_type":"002C",
"cluster": {
"client": "0003",
"client": "0003:0019",
"server": "0000:0003:0500"
}
}
]
},
{
"pid": "0402802C",
"name": "BJ SOS Panel",
"type": "ZR",
"ota": true,
"pid": "0402812C",
"name": "BJ SOS Button",
"type": "ZSED",
"ota": false,
"b_pid": 3016,
"productType": "IASsensor",
......@@ -305,7 +305,7 @@
"zone_type":"002C",
"cluster": {
"client": "0003:0019",
"client": "0003",
"server": "0000:0003:0500"
}
}
......@@ -1156,6 +1156,20 @@
}
]
},
{
"pid": "000A0002",
"name": "YC Doorlock",
"type": "ZSED",
"ota": false,
"b_pid": 3066,
"productType": "Doorlock",
"eps": [
{
"zid": "000A"
}
]
},
{
"pid": "02020000",
"name": "DY Window Covering",
......@@ -2753,25 +2767,6 @@
}
}
]
},
{
"pid": "000A0002",
"name": "YC Doorlock",
"type": "ZSED",
"ota": false,
"b_pid": 4508,
"productType": "Doorlock",
"eps": [
{
"zid": "000A",
"cluster": {
"client": "0003:0019",
"server": "0000:0001:0003:0101:0B05"
}
}
]
}
]
}
\ No newline at end of file
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