Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
K
k-sdk
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
陈伟灿
k-sdk
Commits
48b5d7ed
Commit
48b5d7ed
authored
Feb 25, 2022
by
chen.weican
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【修改内容】增加门锁的场景设置和同步
【提交人】陈伟灿
parent
7fc8146e
Changes
14
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
14 changed files
with
608 additions
and
79 deletions
+608
-79
common/api/com_api.h
common/api/com_api.h
+1
-0
midware/midware/area/kk_area_handle.c
midware/midware/area/kk_area_handle.c
+3
-3
midware/midware/dm/kk_dm_mng.c
midware/midware/dm/kk_dm_mng.c
+2
-1
midware/midware/dm/kk_dm_msg.h
midware/midware/dm/kk_dm_msg.h
+2
-2
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+127
-35
midware/midware/dm/kk_sub_db.c
midware/midware/dm/kk_sub_db.c
+147
-1
midware/midware/dm/kk_sub_db.h
midware/midware/dm/kk_sub_db.h
+18
-1
midware/midware/dm/kk_sync_data.c
midware/midware/dm/kk_sync_data.c
+13
-5
midware/midware/midware.c
midware/midware/midware.c
+22
-2
midware/midware/scene/kk_scene_db.c
midware/midware/scene/kk_scene_db.c
+10
-3
midware/midware/scene/kk_scene_db.h
midware/midware/scene/kk_scene_db.h
+1
-0
midware/midware/scene/kk_scene_handle.c
midware/midware/scene/kk_scene_handle.c
+164
-22
tsl/product_3094.json
tsl/product_3094.json
+47
-0
tsl/product_3137.json
tsl/product_3137.json
+51
-4
No files found.
common/api/com_api.h
View file @
48b5d7ed
...
...
@@ -152,6 +152,7 @@ typedef enum {
#define MAX_LISTEN_NUM 10
#define MAX_IP_LEN 16
#define KK_DEVICE_SCREEN_MAX_SUPPORT 8
#define KK_DEVICE_LOCKUSR_MAX_SUPPORT 64
//#ifndef DEVICE_CODE_LEN
//#define DEVICE_CODE_LEN 33
//#endif
...
...
midware/midware/area/kk_area_handle.c
View file @
48b5d7ed
...
...
@@ -521,7 +521,7 @@ int kk_check_dev_exist_roomId(const char* deviceCode,const char *epNum,char *roo
}
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
=
SUCCESS_RETURN
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
char
*
sqlCmd
=
NULL
;
char
*
zErrMsg
=
0
;
...
...
@@ -547,7 +547,7 @@ int kk_room_dev_add(const char *roomId,const char *roomName,const char *deviceCo
}
sqlite3_free
(
sqlCmd
);
_kk_area_unlock
();
return
SUCCESS_RETURN
;
return
res
;
}
int
kk_room_reset_armingstate
(
void
)
{
...
...
@@ -721,7 +721,7 @@ int kk_room_dev_remove(const char *deviceCode,const char *epNum)
}
sqlite3_free
(
sqlCmd
);
_kk_area_unlock
();
return
SUCCESS_RETURN
;
return
res
;
}
int
kk_room_device_list_add
(
const
char
*
deviceCode
)
...
...
midware/midware/dm/kk_dm_mng.c
View file @
48b5d7ed
...
...
@@ -613,7 +613,7 @@ int dm_mgr_get_gw_deviceCode(_OU_ dm_mgr_dev_node_t **node)
dm_mgr_dev_node_t
*
search_node
=
NULL
;
list_for_each_entry
(
search_node
,
&
ctx
->
dev_list
,
linked_list
,
dm_mgr_dev_node_t
)
{
if
(
memcmp
(
search_node
->
productCode
,
"gateway_2"
,
strlen
(
"gateway_2"
))
==
0
)
{
if
(
memcmp
(
search_node
->
productCode
,
KK_GW_PRODUCTID
,
strlen
(
KK_GW_PRODUCTID
))
==
0
)
{
/* dm_log_debug("Device Found, Product Key: %s, Device Name: %s", product_key, device_name); */
if
(
node
)
{
*
node
=
search_node
;
...
...
@@ -1756,6 +1756,7 @@ int dm_mgr_subdev_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN])
return
FAIL_RETURN
;
}
INFO_PRINT
(
"dm_mgr_subdev_delete deviceCode:%s
\n
"
,
deviceCode
);
kk_delete_LockUser_info
((
const
char
*
)
deviceCode
);
kk_scene_deleteall_panel_scene_info
(
deviceCode
);
//如果是情景面板,删除对应信息
/*房间信息中删除对应的设备*/
kk_room_dev_remove
(
deviceCode
,
NULL
);
...
...
midware/midware/dm/kk_dm_msg.h
View file @
48b5d7ed
...
...
@@ -78,7 +78,6 @@ typedef struct {
#define KK_THING_SERVICE_GETLOCALTIMER "/thing/service/getLocalTimer"
#define KK_THING_SERVICE_SETCOUNTDOWN "/thing/service/setCountDown"
#define KK_THING_SERVICE_GETCOUNTDOWN "/thing/service/getCountDown"
#define KK_THING_SERVICE_GETKEYLIST "/thing/service/GetKeyList"
#define KK_THING_SERVICE_ADDKEY "/thing/service/AddKey"
#define KK_THING_SERVICE_DELETEKEY "/thing/service/DeleteKey"
#define KK_THING_SERVICE_MODIFYKEY "/thing/service/ModifyKey"
...
...
@@ -161,7 +160,8 @@ typedef struct {
#define KK_THING_SERVICE_QUERYGROUP_REPLY "/thing/service/queryGroup_reply"
#define KK_THING_SERVICE_EXCUTEGROUP "/thing/service/excuteGroup"
#define KK_THING_SERVICE_EXCUTEGROUP_REPLY "/thing/service/excuteGroup_reply"
#define KK_THING_SERVICE_GETKEYLIST "/thing/service/getKeyList"
#define KK_THING_SERVICE_GETKEYLIST_REPLY "/thing/service/getKeyList_reply"
void
kk_sendData2app
(
void
*
info
,
void
*
payload
,
int
isAsync
);
...
...
midware/midware/dm/kk_linkkit.c
View file @
48b5d7ed
This diff is collapsed.
Click to expand it.
midware/midware/dm/kk_sub_db.c
View file @
48b5d7ed
...
...
@@ -114,6 +114,22 @@ static int kk_subDev_db_Init(void)
sqlite3_free
(
pcErr
);
return
FAIL_RETURN
;
}
const
char
*
pUserInfoTable
=
"CREATE TABLE IF NOT EXISTS LockUserInfo( \
idx INTEGER PRIMARY KEY , \
keyId varchar(32), \
keyType varchar(32), \
keyRole varchar(32), \
keyName varchar(255), \
deviceCode varchar(33), \
reverse varchar(128))"
;
if
(
sqlite3_exec
(
ctx
->
pDb
,
pUserInfoTable
,
NULL
,
NULL
,
&
pcErr
)
!=
SQLITE_OK
)
{
ERROR_PRINT
(
"Error creating table (%s)
\n
"
,
pcErr
);
sqlite3_free
(
pcErr
);
return
FAIL_RETURN
;
}
//eUtils_LockUnlock(&sLock);
_kk_subDb_unlock
();
return
SUCCESS_RETURN
;
...
...
@@ -224,7 +240,7 @@ static int _kk_check_subDev_exist(const char* deviceCode)
pmac
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_DEVICECODE
);
if
(
!
strcmp
(
deviceCode
,
pmac
))
{
{
isExist
=
1
;
break
;
}
...
...
@@ -235,7 +251,137 @@ static int _kk_check_subDev_exist(const char* deviceCode)
return
isExist
;
}
/************************************************************
*功能描述:保存设备信息到数据库
*输入参数:devType:设备类型
productCode:产品Id
deviceCode:设备deviceCode
fatherDeviceCode:上一级网关的deviceCode
mac: mac地址
version:版本号
heartbeat:心跳时间
*输出参数:无
*返 回 值:0:成功;其他:失败
*其他说明:
*************************************************************/
static
int
_kk_check_LockUser_exist
(
const
char
*
keyId
,
const
char
*
deviceCode
)
{
int
isExist
=
0
;
sqlite3_stmt
*
stmt
;
char
*
sqlCmd
=
NULL
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
const
char
*
searchCmd
=
"select * from LockUserInfo where keyId = %s and deviceCode = %s;"
;
sqlCmd
=
sqlite3_mprintf
(
searchCmd
,
keyId
,
deviceCode
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
isExist
=
1
;
break
;
}
INFO_PRINT
(
"
\n
"
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
isExist
;
}
int
kk_LockUser_insert_db
(
char
*
keyId
,
char
*
keyType
,
char
*
keyRole
,
char
*
keyName
,
char
*
deviceCode
)
{
const
char
*
insertCmd
=
"insert into LockUserInfo (keyId,keyType,keyRole,keyName,deviceCode,reverse) \
values ('%s','%s','%s','%s','%s','%s');"
;
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
if
(
_kk_check_LockUser_exist
((
const
char
*
)
keyId
,(
const
char
*
)
deviceCode
)
==
1
){
WARNING_PRINT
(
"[%s][%d] DATA ALREADY EXIST!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
return
SUCCESS_RETURN
;
}
_kk_subDb_lock
();
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
keyId
,
keyType
,
keyRole
,
keyName
,
deviceCode
,
""
);
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
rc
!=
SQLITE_OK
){
ERROR_PRINT
(
"SQL error: %s
\n
"
,
zErrMsg
);
sqlite3_free
(
zErrMsg
);
}
else
{
//INFO_PRINT("sub device insert data successfully\n");
}
sqlite3_free
(
sqlCmd
);
_kk_subDb_unlock
();
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述:获取屏类列表
*输入参数:deviceCode:设备deviceCode
isAuth:1,已注册;0,未注册
*输出参数:无
*返 回 值:0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_get_LockUser_list
(
LockKeyInfo_t
*
list
,
const
char
*
deviceCode
)
{
const
char
*
searchCmd
=
"select * from LockUserInfo where deviceCode = '%s'"
;
char
*
zErrMsg
=
0
;
sqlite3_stmt
*
stmt
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
char
*
pkeyId
=
NULL
;
char
*
pkeyType
=
NULL
;
char
*
pkeyRole
=
NULL
;
char
*
pkeyName
=
NULL
;
int
count
=
0
;
char
*
sqlCmd
=
NULL
;
sqlCmd
=
sqlite3_mprintf
(
searchCmd
,
deviceCode
);
_kk_subDb_lock
();
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pkeyId
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_LOCKUSR_KEYID
);
pkeyType
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_LOCKUSR_KEYTYPE
);
pkeyRole
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_LOCKUSR_KEYROLE
);
pkeyName
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_LOCKUSR_KEYNAME
);
//printf("currentValue:%d\n",currentValue);
memcpy
(
list
[
count
].
keyId
,
pkeyId
,
strlen
(
pkeyId
));
memcpy
(
list
[
count
].
keyType
,
pkeyType
,
strlen
(
pkeyType
));
memcpy
(
list
[
count
].
keyRole
,
pkeyRole
,
strlen
(
pkeyRole
));
memcpy
(
list
[
count
].
keyName
,
pkeyName
,
strlen
(
pkeyName
));
count
++
;
}
sqlite3_finalize
(
stmt
);
sqlite3_free
(
sqlCmd
);
_kk_subDb_unlock
();
return
count
;
}
/************************************************************
*功能描述:获取屏类列表
*输入参数:deviceCode:设备deviceCode
isAuth:1,已注册;0,未注册
*输出参数:无
*返 回 值:0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_delete_LockUser_info
(
const
char
*
deviceCode
)
{
const
char
*
deleteCmd
=
"delete from LockUserInfo where deviceCode = '%s';"
;
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
_kk_subDb_lock
();
sqlCmd
=
sqlite3_mprintf
(
deleteCmd
,
deviceCode
);
INFO_PRINT
(
"Table delete data sqlCmd:%s
\n
"
,
sqlCmd
);
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
rc
!=
SQLITE_OK
){
ERROR_PRINT
(
"SQL error: %s
\n
"
,
zErrMsg
);
sqlite3_free
(
zErrMsg
);
}
else
{
//INFO_PRINT("Table delete data successfully\n");
}
sqlite3_free
(
sqlCmd
);
_kk_subDb_unlock
();
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述:保存设备信息到数据库
*输入参数:devType:设备类型
...
...
midware/midware/dm/kk_sub_db.h
View file @
48b5d7ed
...
...
@@ -18,6 +18,12 @@ typedef struct {
char
mac
[
32
];
int
type
;
}
ScreenDevInfo_t
;
typedef
struct
{
char
keyId
[
17
];
char
keyType
[
8
];
char
keyRole
[
8
];
char
keyName
[
32
];
}
LockKeyInfo_t
;
int
kk_subDb_init
(
void
);
int
kk_subDev_insert_db
(
int
devType
,
char
productCode
[
PRODUCT_CODE_MAXLEN
],
\
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
char
fatherMac
[
DEVICE_MAC_MAXLEN
],
char
mac
[
DEVICE_MAC_MAXLEN
],
char
version
[
DEVICE_VERSION_MAXLEN
],
int
heartbeat
);
...
...
@@ -46,7 +52,9 @@ int kk_subDev_getDeviceCodes_byProductType(DeviceCode_t *list,char *type);
int
kk_indoor_air_action_add
(
char
*
propertyValue
,
char
*
deviceCode
,
int
delay
,
char
*
gwDeviceCode
,
char
*
sceneId
,
char
*
type
,
int
epnum
);
int
kk_subDev_update_fatherDeviceCode
(
char
*
fatherDeviceCode
,
const
char
*
deviceCode
);
int
kk_subDev_find_fatherDeviceCode
(
const
char
*
deviceCode
,
char
*
fatherDeviceCode
);
int
kk_LockUser_insert_db
(
char
*
keyId
,
char
*
keyType
,
char
*
keyRole
,
char
*
keyName
,
char
*
deviceCode
);
int
kk_get_LockUser_list
(
LockKeyInfo_t
*
list
,
const
char
*
deviceCode
);
int
kk_delete_LockUser_info
(
const
char
*
deviceCode
);
enum
{
DB_SUB_IDX
=
0
,
DB_SUB_ONLINE
,
...
...
@@ -74,4 +82,13 @@ enum{
DB_SCREEN_ROOMNAME
,
DB_SCREEN_EXPAND
,
};
enum
{
DB_LOCKUSR_IDX
=
0
,
DB_LOCKUSR_KEYID
,
DB_LOCKUSR_KEYTYPE
,
DB_LOCKUSR_KEYROLE
,
DB_LOCKUSR_KEYNAME
,
DB_LOCKUSR_DEVICECODE
,
DB_LOCKUSR_REVERSE
,
};
#endif
midware/midware/dm/kk_sync_data.c
View file @
48b5d7ed
...
...
@@ -1247,18 +1247,26 @@ static int kk_get_scenes_trigger_info(cJSON *triggerObj,char *sceneId)
isAnd
=
sqlite3_column_int
(
stmt
,
DB_SCENETRIGGER_ISAND
);
if
(
isAnd
==
0
){
cJSON
*
triggerItem
=
cJSON_CreateObject
();
type
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_TYPE
);
deviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_DEVICECODE
);
epNum
=
sqlite3_column_int
(
stmt
,
DB_SCENETRIGGER_EPNUM
);
propertyName
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_PROPERTYNAME
);
compareType
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_COMPARETYPE
);
compareValue
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_COMPAREVALUE
);
type
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_TYPE
);
cJSON_AddStringToObject
(
triggerItem
,
"type"
,
type
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_DEVICECODE_STR
,
(
char
*
)
deviceCode
);
cJSON_AddNumberToObject
(
triggerItem
,
KK_SYNC_SCENE_EPNUM_STR
,
epNum
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
(
char
*
)
propertyName
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPARETYPE_STR
,
(
char
*
)
compareType
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPAREValue_STR
,
(
char
*
)
compareValue
);
cJSON_AddNumberToObject
(
triggerItem
,
KK_SYNC_SCENE_EPNUM_STR
,
epNum
);
if
(
strcmp
(
type
,
"trigger/thing/event"
)
==
0
){
//门锁场景同步
cJSON_AddStringToObject
(
triggerItem
,
"identifier"
,
(
char
*
)
propertyName
);
cJSON
*
comparesJson
=
cJSON_Parse
(
compareValue
);
if
(
comparesJson
!=
NULL
){
cJSON_AddItemToObject
(
triggerItem
,
"compares"
,
comparesJson
);
}
}
else
{
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
(
char
*
)
propertyName
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPARETYPE_STR
,
(
char
*
)
compareType
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPAREValue_STR
,
(
char
*
)
compareValue
);
}
cJSON_AddItemToArray
(
triggerAry
,
triggerItem
);
}
}
...
...
midware/midware/midware.c
View file @
48b5d7ed
...
...
@@ -63,6 +63,7 @@ char * g_filerToPlatTable[] =
(
char
*
){
KK_THING_SERVICE_ACTIVEBUTTON
},
(
char
*
){
KK_THING_SERVICE_HISTORYALARM
},
(
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
};
...
...
@@ -1533,7 +1534,8 @@ void kk_platMsg_handle(void* data, char* chalMark){
goto
error
;
}
dm_mgr_update_timestamp_by_devicecode
(
node
->
deviceCode
,
0
);
dm_mgr_set_dev_onoffline
(
node
,
1
);
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);
...
...
@@ -1630,7 +1632,25 @@ void kk_platMsg_handle(void* data, char* chalMark){
if
(
pack
==
1
){
INFO_PRINT
(
"kk_platMsg_handle data: event pack post
\n
"
);
dm_msg_thing_event_post
(
info_dcode
->
valuestring
,
eventItem
->
identifier
,
NULL
);
kk_scene_iftt_check
(
info_dcode
->
valuestring
,
jsonPay
);
if
(
strcmp
(
eventItem
->
identifier
,
"KeyAddNotification"
)
==
0
){
char
KeyTypeBuf
[
8
]
=
{
0
};
char
KeyRoleBuf
[
8
]
=
{
0
};
cJSON
*
keyId
=
cJSON_GetObjectItem
(
jsonPay
,
"KeyID"
);
cJSON
*
KeyRole
=
cJSON_GetObjectItem
(
jsonPay
,
"KeyRole"
);
cJSON
*
KeyType
=
cJSON_GetObjectItem
(
jsonPay
,
"KeyType"
);
if
(
keyId
!=
NULL
&&
KeyRole
!=
NULL
&&
KeyType
!=
NULL
){
if
(
KeyType
->
type
==
cJSON_Number
){
sprintf
(
KeyTypeBuf
,
"%d"
,
KeyType
->
valueint
);
}
if
(
KeyRole
->
type
==
cJSON_Number
){
sprintf
(
KeyRoleBuf
,
"%d"
,
KeyRole
->
valueint
);
}
kk_LockUser_insert_db
(
keyId
->
valuestring
,
KeyTypeBuf
,
KeyRoleBuf
,
""
,
info_dcode
->
valuestring
);
}
}
if
(
strcmp
(
eventItem
->
identifier
,
"LockOpenNotification"
)
==
0
){
kk_scene_iftt_check
(
info_dcode
->
valuestring
,
jsonPay
);
}
}
}
else
if
(
strcmp
(
eventItem
->
identifier
,
MSG_PROPERTY_STR
)
!=
0
&&
...
...
midware/midware/scene/kk_scene_db.c
View file @
48b5d7ed
...
...
@@ -776,7 +776,11 @@ int kk_scene_update_device_active(char *deviceCode,int epNum,int value)
kk_scene_ctx_t
*
ctx
=
_kk_scene_get_ctx
();
_kk_scene_lock
();
sqlCmd
=
sqlite3_mprintf
(
"UPDATE SceneActionInfo SET active='%d' WHERE deviceCode = '%s' and epNum= '%d'"
,
value
,
deviceCode
,
epNum
);
if
(
epNum
==
-
1
){
sqlCmd
=
sqlite3_mprintf
(
"UPDATE SceneActionInfo SET active='%d' WHERE deviceCode = '%s'"
,
value
,
deviceCode
);
}
else
{
sqlCmd
=
sqlite3_mprintf
(
"UPDATE SceneActionInfo SET active='%d' WHERE deviceCode = '%s' and epNum= '%d'"
,
value
,
deviceCode
,
epNum
);
}
INFO_PRINT
(
"kk_scene_update_device_active sqlCmd:%s
\n
"
,
sqlCmd
);
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
rc
!=
SQLITE_OK
){
...
...
@@ -784,8 +788,11 @@ int kk_scene_update_device_active(char *deviceCode,int epNum,int value)
sqlite3_free
(
zErrMsg
);
}
sqlite3_free
(
sqlCmd
);
sqlCmd
=
sqlite3_mprintf
(
"UPDATE SceneTriggerInfo SET active='%d' WHERE deviceCode = '%s' and epNum= '%d'"
,
value
,
deviceCode
,
epNum
);
if
(
epNum
==
-
1
){
sqlCmd
=
sqlite3_mprintf
(
"UPDATE SceneTriggerInfo SET active='%d' WHERE deviceCode = '%s'"
,
value
,
deviceCode
);
}
else
{
sqlCmd
=
sqlite3_mprintf
(
"UPDATE SceneTriggerInfo SET active='%d' WHERE deviceCode = '%s' and epNum= '%d'"
,
value
,
deviceCode
,
epNum
);
}
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
rc
!=
SQLITE_OK
){
ERROR_PRINT
(
"SQL error: %s
\n
"
,
zErrMsg
);
...
...
midware/midware/scene/kk_scene_db.h
View file @
48b5d7ed
...
...
@@ -49,6 +49,7 @@ enum{
DB_SCENEACTION_DELAY
,
DB_SCENEACTION_SCENEID
,
DB_SCENEACTION_GWDEVICECODE
,
DB_SCENEACTION_ACTIVE
,
};
enum
{
...
...
midware/midware/scene/kk_scene_handle.c
View file @
48b5d7ed
This diff is collapsed.
Click to expand it.
tsl/product_3094.json
View file @
48b5d7ed
...
...
@@ -51,6 +51,17 @@
},
"name"
:
"色温"
},
{
"identifier"
:
"ColorTempSwitch"
,
"dataType"
:
{
"specs"
:
{
"0"
:
"关闭"
,
"1"
:
"打开"
},
"type"
:
"bool"
},
"name"
:
"色温开关使能"
},
{
"identifier"
:
"FadeTime"
,
"dataType"
:
{
...
...
@@ -141,6 +152,17 @@
},
"name"
:
"色温"
},
{
"identifier"
:
"ColorTempSwitch"
,
"dataType"
:
{
"specs"
:
{
"0"
:
"关闭"
,
"1"
:
"打开"
},
"type"
:
"bool"
},
"name"
:
"色温开关使能"
},
{
"identifier"
:
"FadeTime"
,
"dataType"
:
{
...
...
@@ -189,6 +211,7 @@
"PowerSwitch"
,
"Brightness"
,
"ColorTemperature"
,
"ColorTempSwitch"
,
"FadeTime"
,
"LowBrightness"
,
"HighBrightness"
...
...
@@ -260,6 +283,19 @@
},
"name"
:
"色温"
},
{
"identifier"
:
"ColorTempSwitch"
,
"accessMode"
:
"rw"
,
"required"
:
true
,
"dataType"
:
{
"specs"
:
{
"0"
:
"关闭"
,
"1"
:
"打开"
},
"type"
:
"bool"
},
"name"
:
"色温开关使能"
},
{
"identifier"
:
"FadeTime"
,
"accessMode"
:
"rw"
,
...
...
@@ -352,6 +388,17 @@
},
"name"
:
"色温"
},
{
"identifier"
:
"ColorTempSwitch"
,
"dataType"
:
{
"specs"
:
{
"0"
:
"关闭"
,
"1"
:
"打开"
},
"type"
:
"bool"
},
"name"
:
"色温开关使能"
},
{
"identifier"
:
"FadeTime"
,
"dataType"
:
{
...
...
tsl/product_3137.json
View file @
48b5d7ed
...
...
@@ -44,13 +44,24 @@
"specs"
:
{
"min"
:
"0"
,
"max"
:
"100"
,
"unit"
:
"
K
"
,
"unit"
:
"
%
"
,
"unitName"
:
"百分比"
,
"step"
:
"1"
}
},
"name"
:
"色温"
},
{
"identifier"
:
"ColorTempSwitch"
,
"dataType"
:
{
"specs"
:
{
"0"
:
"关闭"
,
"1"
:
"打开"
},
"type"
:
"bool"
},
"name"
:
"色温开关使能"
},
{
"identifier"
:
"FadeTime"
,
"dataType"
:
{
...
...
@@ -134,13 +145,24 @@
"specs"
:
{
"min"
:
"0"
,
"max"
:
"100"
,
"unit"
:
"
K
"
,
"unit"
:
"
%
"
,
"unitName"
:
"百分比"
,
"step"
:
"1"
}
},
"name"
:
"色温"
},
{
"identifier"
:
"ColorTempSwitch"
,
"dataType"
:
{
"specs"
:
{
"0"
:
"关闭"
,
"1"
:
"打开"
},
"type"
:
"bool"
},
"name"
:
"色温开关使能"
},
{
"identifier"
:
"FadeTime"
,
"dataType"
:
{
...
...
@@ -189,6 +211,7 @@
"PowerSwitch"
,
"Brightness"
,
"ColorTemperature"
,
"ColorTempSwitch"
,
"FadeTime"
,
"LowBrightness"
,
"HighBrightness"
...
...
@@ -253,13 +276,26 @@
"specs"
:
{
"min"
:
"0"
,
"max"
:
"100"
,
"unit"
:
"
K
"
,
"unit"
:
"
%
"
,
"unitName"
:
"百分比"
,
"step"
:
"1"
}
},
"name"
:
"色温"
},
{
"identifier"
:
"ColorTempSwitch"
,
"accessMode"
:
"rw"
,
"required"
:
true
,
"dataType"
:
{
"specs"
:
{
"0"
:
"关闭"
,
"1"
:
"打开"
},
"type"
:
"bool"
},
"name"
:
"色温开关使能"
},
{
"identifier"
:
"FadeTime"
,
"accessMode"
:
"rw"
,
...
...
@@ -345,13 +381,24 @@
"specs"
:
{
"min"
:
"0"
,
"max"
:
"100"
,
"unit"
:
"
K
"
,
"unit"
:
"
%
"
,
"unitName"
:
"百分比"
,
"step"
:
"1"
}
},
"name"
:
"色温"
},
{
"identifier"
:
"ColorTempSwitch"
,
"dataType"
:
{
"specs"
:
{
"0"
:
"关闭"
,
"1"
:
"打开"
},
"type"
:
"bool"
},
"name"
:
"色温开关使能"
},
{
"identifier"
:
"FadeTime"
,
"dataType"
:
{
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment