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
a869b387
Commit
a869b387
authored
Aug 03, 2021
by
陈伟灿
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'cwc' into 'master'
【修改内容】增加布防撤防功能 See merge request chenweican/k-sdk!99
parents
042c495e
49d392c3
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
380 additions
and
101 deletions
+380
-101
midware/midware/area/kk_area_handle.c
midware/midware/area/kk_area_handle.c
+116
-35
midware/midware/area/kk_area_handle.h
midware/midware/area/kk_area_handle.h
+6
-1
midware/midware/dm/kk_dm_mng.c
midware/midware/dm/kk_dm_mng.c
+6
-11
midware/midware/dm/kk_dm_mng.h
midware/midware/dm/kk_dm_mng.h
+1
-1
midware/midware/dm/kk_dm_msg.h
midware/midware/dm/kk_dm_msg.h
+1
-0
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+80
-0
midware/midware/dm/kk_sub_db.c
midware/midware/dm/kk_sub_db.c
+45
-0
midware/midware/dm/kk_sub_db.h
midware/midware/dm/kk_sub_db.h
+5
-0
midware/midware/midware.c
midware/midware/midware.c
+99
-47
tools/build-rules/_rules-top.mk
tools/build-rules/_rules-top.mk
+1
-1
tools/build-rules/scripts/gen_one_makefile.sh
tools/build-rules/scripts/gen_one_makefile.sh
+4
-4
tools/default_settings.mk
tools/default_settings.mk
+1
-1
tsl/product_3049.json
tsl/product_3049.json
+15
-0
No files found.
midware/midware/area/kk_area_handle.c
View file @
a869b387
...
@@ -55,7 +55,8 @@ static int _kk_area_db_init(void)
...
@@ -55,7 +55,8 @@ static int _kk_area_db_init(void)
const
char
*
pAreaTable
=
"CREATE TABLE IF NOT EXISTS AreaInfo( \
const
char
*
pAreaTable
=
"CREATE TABLE IF NOT EXISTS AreaInfo( \
idx INTEGER PRIMARY KEY, \
idx INTEGER PRIMARY KEY, \
name varchar(256), \
name varchar(256), \
roomId varchar(256))"
;
roomId varchar(256), \
armingstate INTEGER)"
;
if
(
sqlite3_exec
(
ctx
->
pDb
,
pAreaTable
,
NULL
,
NULL
,
&
pcErr
)
!=
SQLITE_OK
)
if
(
sqlite3_exec
(
ctx
->
pDb
,
pAreaTable
,
NULL
,
NULL
,
&
pcErr
)
!=
SQLITE_OK
)
{
{
...
@@ -103,7 +104,6 @@ int kk_area_init(void)
...
@@ -103,7 +104,6 @@ int kk_area_init(void)
}
}
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
static
int
kk_check_room_exist
(
const
char
*
roomId
)
static
int
kk_check_room_exist
(
const
char
*
roomId
)
{
{
int
isExist
=
0
;
int
isExist
=
0
;
...
@@ -200,7 +200,6 @@ static int _kk_room_dev_update(const char *name,const char *roomId)
...
@@ -200,7 +200,6 @@ static int _kk_room_dev_update(const char *name,const char *roomId)
_kk_area_unlock
();
_kk_area_unlock
();
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
)
{
{
if
(
kk_check_room_exist
(
roomId
)){
if
(
kk_check_room_exist
(
roomId
)){
...
@@ -211,9 +210,28 @@ int kk_room_add(const char *name,const char *roomId)
...
@@ -211,9 +210,28 @@ int kk_room_add(const char *name,const char *roomId)
}
else
{
}
else
{
return
_kk_room_add
(
name
,
roomId
);
return
_kk_room_add
(
name
,
roomId
);
}
}
}
}
int
kk_room_update_armingstate
(
int
state
,
const
char
*
roomid
)
{
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
_kk_area_lock
();
sqlCmd
=
sqlite3_mprintf
(
"UPDATE AreaInfo SET armingstate=%d WHERE roomId= '%s'"
,
state
,
roomid
);
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 updata data successfully
\n
"
);
}
sqlite3_free
(
sqlCmd
);
_kk_area_unlock
();
return
SUCCESS_RETURN
;
}
int
kk_room_delete
(
const
char
*
roomId
)
int
kk_room_delete
(
const
char
*
roomId
)
{
{
int
res
=
0
;
int
res
=
0
;
...
@@ -240,37 +258,6 @@ int kk_room_delete(const char *roomId)
...
@@ -240,37 +258,6 @@ int kk_room_delete(const char *roomId)
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_get_device_name
(
const
char
*
deviceCode
,
const
char
*
epNum
,
char
*
devName
,
int
size
)
{
int
isGet
=
0
;
sqlite3_stmt
*
stmt
;
char
*
pDeviceCode
=
NULL
;
char
*
pEpNum
=
NULL
;
char
*
pDevName
=
NULL
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
const
char
*
searchCmd
=
"select * from AreaDevInfo;"
;
_kk_area_lock
();
sqlite3_prepare_v2
(
ctx
->
pDb
,
searchCmd
,
strlen
(
searchCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
pEpNum
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_EPNUM
);
if
(
!
strcmp
(
deviceCode
,
pDeviceCode
)
&&
!
strcmp
(
pEpNum
,
epNum
))
{
pDevName
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEV_NAME
);
memset
(
devName
,
0
,
size
);
snprintf
(
devName
,
size
,
"%s"
,
pDevName
);
isGet
=
1
;
}
}
//INFO_PRINT("\n");
sqlite3_finalize
(
stmt
);
_kk_area_unlock
();
return
isGet
;
}
static
int
_kk_check_dev_exist
(
const
char
*
deviceCode
,
const
char
*
epNum
)
static
int
_kk_check_dev_exist
(
const
char
*
deviceCode
,
const
char
*
epNum
)
{
{
int
isExist
=
0
;
int
isExist
=
0
;
...
@@ -328,7 +315,101 @@ int kk_room_dev_add(const char *roomId,const char *roomName,const char *deviceCo
...
@@ -328,7 +315,101 @@ int kk_room_dev_add(const char *roomId,const char *roomName,const char *deviceCo
_kk_area_unlock
();
_kk_area_unlock
();
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_room_reset_armingstate
(
void
)
{
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
_kk_area_lock
();
sqlCmd
=
sqlite3_mprintf
(
"UPDATE AreaInfo SET armingstate=%d "
,
0
);
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 updata data successfully
\n
"
);
}
sqlite3_free
(
sqlCmd
);
_kk_area_unlock
();
return
SUCCESS_RETURN
;
}
int
kk_get_room_armingstate
(
const
char
*
roomId
)
{
sqlite3_stmt
*
stmt
;
int
state
=
0
;
char
*
sqlCmd
=
NULL
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
const
char
*
searchCmd
=
"select * from AreaInfo where roomId = '%s';"
;
_kk_area_lock
();
sqlCmd
=
sqlite3_mprintf
(
searchCmd
,
roomId
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
state
=
sqlite3_column_int
(
stmt
,
DB_ROOM_ARMING
);
}
sqlite3_finalize
(
stmt
);
sqlite3_free
(
sqlCmd
);
_kk_area_unlock
();
return
state
;
}
int
kk_get_roomId_by_deviceCode
(
const
char
*
deviceCode
,
const
char
*
epNum
,
char
*
roomId
,
int
size
)
{
int
isGet
=
0
;
sqlite3_stmt
*
stmt
;
char
*
pDeviceCode
=
NULL
;
char
*
pEpNum
=
NULL
;
char
*
pRoomId
=
NULL
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
const
char
*
searchCmd
=
"select * from AreaDevInfo;"
;
_kk_area_lock
();
sqlite3_prepare_v2
(
ctx
->
pDb
,
searchCmd
,
strlen
(
searchCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
pEpNum
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_EPNUM
);
if
(
!
strcmp
(
deviceCode
,
pDeviceCode
)
&&
!
strcmp
(
pEpNum
,
epNum
))
{
pRoomId
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_ROOM_ID
);
memset
(
roomId
,
0
,
size
);
snprintf
(
roomId
,
size
,
"%s"
,
pRoomId
);
isGet
=
1
;
}
}
//INFO_PRINT("\n");
sqlite3_finalize
(
stmt
);
_kk_area_unlock
();
return
isGet
;
}
int
kk_get_device_name
(
const
char
*
deviceCode
,
const
char
*
epNum
,
char
*
devName
,
int
size
)
{
int
isGet
=
0
;
sqlite3_stmt
*
stmt
;
char
*
pDeviceCode
=
NULL
;
char
*
pEpNum
=
NULL
;
char
*
pDevName
=
NULL
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
const
char
*
searchCmd
=
"select * from AreaDevInfo;"
;
_kk_area_lock
();
sqlite3_prepare_v2
(
ctx
->
pDb
,
searchCmd
,
strlen
(
searchCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
pEpNum
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_EPNUM
);
if
(
!
strcmp
(
deviceCode
,
pDeviceCode
)
&&
!
strcmp
(
pEpNum
,
epNum
))
{
pDevName
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEV_NAME
);
memset
(
devName
,
0
,
size
);
snprintf
(
devName
,
size
,
"%s"
,
pDevName
);
isGet
=
1
;
}
}
//INFO_PRINT("\n");
sqlite3_finalize
(
stmt
);
_kk_area_unlock
();
return
isGet
;
}
int
kk_room_dev_remove
(
const
char
*
deviceCode
,
const
char
*
epNum
)
int
kk_room_dev_remove
(
const
char
*
deviceCode
,
const
char
*
epNum
)
{
{
int
res
=
0
;
int
res
=
0
;
...
...
midware/midware/area/kk_area_handle.h
View file @
a869b387
...
@@ -10,7 +10,8 @@ typedef struct kk_dev_list{
...
@@ -10,7 +10,8 @@ typedef struct kk_dev_list{
enum
{
enum
{
DB_ROOM_IDX
=
0
,
DB_ROOM_IDX
=
0
,
DB_ROOM_NAME
,
DB_ROOM_NAME
,
DB_ROOM_ID
,
DB_ROOM_ID
,
DB_ROOM_ARMING
,
};
};
enum
{
enum
{
...
@@ -30,6 +31,10 @@ int kk_room_device_list_add(const char *deviceCode);
...
@@ -30,6 +31,10 @@ 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
);
void
kk_free_room_dev_list
(
void
);
void
kk_free_room_dev_list
(
void
);
int
kk_get_device_name
(
const
char
*
deviceCode
,
const
char
*
epNum
,
char
*
devName
,
int
size
);
int
kk_get_device_name
(
const
char
*
deviceCode
,
const
char
*
epNum
,
char
*
devName
,
int
size
);
int
kk_room_update_armingstate
(
int
state
,
const
char
*
roomid
);
int
kk_get_room_armingstate
(
const
char
*
roomId
);
int
kk_get_roomId_by_deviceCode
(
const
char
*
deviceCode
,
const
char
*
epNum
,
char
*
roomId
,
int
size
);
#endif
#endif
midware/midware/dm/kk_dm_mng.c
View file @
a869b387
...
@@ -392,24 +392,19 @@ int dm_mgr_get_device_by_devicecode(_IN_ char deviceCode[DEVICE_CODE_MAXLEN], _O
...
@@ -392,24 +392,19 @@ int dm_mgr_get_device_by_devicecode(_IN_ char deviceCode[DEVICE_CODE_MAXLEN], _O
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
int
dm_mgr_get_device
_by_productType
(
_IN_
char
*
productType
,
_OU_
dm_mgr_dev_node_t
**
nod
e
)
int
dm_mgr_get_device
Num_by_productType
(
_IN_
char
*
productTyp
e
)
{
{
dm_mgr_ctx
*
ctx
=
_dm_mgr_get_ctx
();
dm_mgr_ctx
*
ctx
=
_dm_mgr_get_ctx
();
dm_mgr_dev_node_t
*
search_node
=
NULL
;
dm_mgr_dev_node_t
*
search_node
=
NULL
;
int
num
=
0
;
list_for_each_entry
(
search_node
,
&
ctx
->
dev_list
,
linked_list
,
dm_mgr_dev_node_t
)
{
list_for_each_entry
(
search_node
,
&
ctx
->
dev_list
,
linked_list
,
dm_mgr_dev_node_t
)
{
if
((
strlen
(
search_node
->
deviceCod
e
)
==
strlen
(
productType
))
&&
if
((
strlen
(
search_node
->
productTyp
e
)
==
strlen
(
productType
))
&&
(
memcmp
(
search_node
->
deviceCod
e
,
productType
,
strlen
(
productType
))
==
0
))
{
(
memcmp
(
search_node
->
productTyp
e
,
productType
,
strlen
(
productType
))
==
0
))
{
/* dm_log_debug("Device Found, Product Key: %s, Device Name: %s", product_key, device_name); */
/* dm_log_debug("Device Found, Product Key: %s, Device Name: %s", product_key, device_name); */
if
(
node
)
{
num
++
;
*
node
=
search_node
;
}
return
SUCCESS_RETURN
;
}
}
}
}
return
num
;
ERROR_PRINT
(
"Device Not Found, productType: %s
\n
"
,
productType
);
return
FAIL_RETURN
;
}
}
int
dm_mgr_update_timestamp_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
time_t
timestamp
)
int
dm_mgr_update_timestamp_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
time_t
timestamp
)
...
...
midware/midware/dm/kk_dm_mng.h
View file @
a869b387
...
@@ -88,7 +88,7 @@ int dm_mgr_search_device_by_pkdn( _IN_ char deviceCode[DEVICE_CODE_MAXLEN],_OU_
...
@@ -88,7 +88,7 @@ int dm_mgr_search_device_by_pkdn( _IN_ char deviceCode[DEVICE_CODE_MAXLEN],_OU_
int
dm_mgr_get_devicetype_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
_OU_
int
*
deviceType
);
int
dm_mgr_get_devicetype_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
_OU_
int
*
deviceType
);
int
dm_mgr_get_device_shadow_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
_OU_
kk_tsl_t
**
shadow
);
int
dm_mgr_get_device_shadow_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
_OU_
kk_tsl_t
**
shadow
);
int
dm_mgr_get_device_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
_OU_
dm_mgr_dev_node_t
**
node
);
int
dm_mgr_get_device_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
_OU_
dm_mgr_dev_node_t
**
node
);
int
dm_mgr_get_device
_by_productType
(
_IN_
char
*
productType
,
_OU_
dm_mgr_dev_node_t
**
nod
e
);
int
dm_mgr_get_device
Num_by_productType
(
_IN_
char
*
productTyp
e
);
int
dm_mgr_update_timestamp_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
time_t
timestamp
);
int
dm_mgr_update_timestamp_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
time_t
timestamp
);
int
dm_mgr_set_dev_onoffline
(
dm_mgr_dev_node_t
*
node
,
int
isOffline
);
int
dm_mgr_set_dev_onoffline
(
dm_mgr_dev_node_t
*
node
,
int
isOffline
);
int
dm_mgr_check_heartbeat_timeout
(
time_t
timestamp
);
int
dm_mgr_check_heartbeat_timeout
(
time_t
timestamp
);
...
...
midware/midware/dm/kk_dm_msg.h
View file @
a869b387
...
@@ -83,6 +83,7 @@ const char DM_MSG_INFO[] DM_READ_ONLY;
...
@@ -83,6 +83,7 @@ const char DM_MSG_INFO[] DM_READ_ONLY;
#define KK_THING_SERVICE_SYNCINFO "/thing/service/syncinfo"
#define KK_THING_SERVICE_SYNCINFO "/thing/service/syncinfo"
#define KK_THING_SERVICE_SYNCINFO_REPLY "/thing/service/syncinfo_reply"
#define KK_THING_SERVICE_SYNCINFO_REPLY "/thing/service/syncinfo_reply"
#define KK_THING_EVENT_MESSAGE "/thing/event/"
#define KK_THING_EVENT_MESSAGE "/thing/event/"
#define KK_THING_SERVICE_GETGUARDSENSORS "/thing/service/getGuardSensors"
#define KK_THING_EVENT_POST "/post"
#define KK_THING_EVENT_POST "/post"
void
kk_sendData2app
(
void
*
info
,
void
*
payload
,
int
isAsync
);
void
kk_sendData2app
(
void
*
info
,
void
*
payload
,
int
isAsync
);
...
...
midware/midware/dm/kk_linkkit.c
View file @
a869b387
...
@@ -861,6 +861,67 @@ static int kk_service_executeScene_handle(cJSON *param,cJSON *msgId)
...
@@ -861,6 +861,67 @@ static int kk_service_executeScene_handle(cJSON *param,cJSON *msgId)
return
res
;
return
res
;
}
}
/************************************************************
/************************************************************
*功能描述:获取主机下安防设备及对应等级
*输入参数:params:云端下发数据,包含场景Id等
msgId:消息Id
*输出参数:无
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
static
int
kk_service_getGuardSensors_handle
(
cJSON
*
param
,
cJSON
*
msgId
)
{
int
res
=
0
;
int
i
=
0
,
num
=
0
;
SensorType_t
*
pList
=
NULL
;
if
(
param
==
NULL
||
msgId
==
NULL
){
return
INVALID_PARAMETER
;
}
cJSON
*
deviceCode
=
cJSON_GetObjectItem
(
param
,
MSG_DEVICE_CODE_STR
);
if
(
deviceCode
==
NULL
){
return
FAIL_RETURN
;
}
cJSON
*
productCode
=
cJSON_GetObjectItem
(
param
,
MSG_PRODUCT_CODE_STR
);
if
(
productCode
==
NULL
){
return
FAIL_RETURN
;
}
cJSON
*
info
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
info
,
MSG_TYPE_STR
,
"/thing/service/getGuardSensors_reply"
);
cJSON_AddStringToObject
(
info
,
MSG_DEVICE_CODE_STR
,
deviceCode
->
valuestring
);
cJSON_AddStringToObject
(
info
,
MSG_PRODUCT_CODE_STR
,
productCode
->
valuestring
);
char
*
infff
=
cJSON_Print
(
info
);
cJSON
*
payload
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
payload
,
"desc"
,
"success"
);
cJSON_AddStringToObject
(
payload
,
"version"
,
"1.0"
);
cJSON_AddStringToObject
(
payload
,
"code"
,
"0"
);
cJSON_AddStringToObject
(
payload
,
"msgId"
,
msgId
->
valuestring
);
cJSON
*
paramArray
=
cJSON_CreateArray
();
num
=
dm_mgr_get_deviceNum_by_productType
(
"sensor"
);
pList
=
(
SensorType_t
*
)
malloc
(
sizeof
(
SensorType_t
)
*
num
);
if
(
pList
==
NULL
){
ERROR_PRINT
(
"MALLOC ERROR!!!"
);
return
-
1
;
}
memset
(
pList
,
0x0
,
sizeof
(
SensorType_t
)
*
num
);
kk_subDev_getSensors_reply
(
pList
);
for
(
i
=
0
;
i
<
num
;
i
++
){
cJSON
*
Item
=
cJSON_CreateObject
();
cJSON_AddNumberToObject
(
Item
,
"SensorType"
,
pList
[
i
].
SensorType
);
cJSON_AddStringToObject
(
Item
,
"DeviceCode"
,
pList
[
i
].
deviceCode
);
cJSON_AddItemToArray
(
paramArray
,
Item
);
}
char
*
paramArray22
=
cJSON_Print
(
paramArray
);
cJSON_AddItemToObject
(
payload
,
"params"
,
paramArray
);
char
*
payload11
=
cJSON_Print
(
payload
);
kk_sendData2app
(
infff
,
payload11
,
0
);
free
(
payload11
);
free
(
infff
);
free
(
pList
);
cJSON_Delete
(
payload
);
cJSON_Delete
(
info
);
return
res
;
}
/************************************************************
*功能描述:收到云端数据后的回调处理
*功能描述:收到云端数据后的回调处理
*输入参数:type:数据类型
*输入参数:type:数据类型
data:具体数据
data:具体数据
...
@@ -935,6 +996,20 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
...
@@ -935,6 +996,20 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
cJSON
*
state
=
cJSON_GetObjectItem
(
paramStr
,
KK_TSL_CCU_ARMINGSTATE_IDENTIFIER
);
cJSON
*
state
=
cJSON_GetObjectItem
(
paramStr
,
KK_TSL_CCU_ARMINGSTATE_IDENTIFIER
);
if
(
state
!=
NULL
){
if
(
state
!=
NULL
){
cJSON
*
RoomIds
=
cJSON_GetObjectItem
(
paramStr
,
"RoomIds"
);
if
(
RoomIds
!=
NULL
){
kk_room_reset_armingstate
();
int
array_size
=
cJSON_GetArraySize
(
RoomIds
);
for
(
int
iCnt
=
0
;
iCnt
<
array_size
;
iCnt
++
){
cJSON
*
pSub
=
cJSON_GetArrayItem
(
RoomIds
,
iCnt
);
if
(
NULL
==
pSub
){
continue
;
}
char
roomId
[
16
]
=
{
0
};
sprintf
(
roomId
,
"%d"
,
pSub
->
valueint
);
INFO_PRINT
(
"id [%d] : %s
\n
"
,
iCnt
,
roomId
);
kk_room_update_armingstate
(
1
,
roomId
);
}
}
dm_mgr_search_dev_by_devid
(
KK_DM_DEVICE_CCU_DEVICEID
,
&
node
);
dm_mgr_search_dev_by_devid
(
KK_DM_DEVICE_CCU_DEVICEID
,
&
node
);
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
node
->
dev_shadow
,
KK_TSL_CCU_ARMINGSTATE_IDENTIFIER
,
NULL
,
state
->
valuestring
);
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
node
->
dev_shadow
,
KK_TSL_CCU_ARMINGSTATE_IDENTIFIER
,
NULL
,
state
->
valuestring
);
if
(
res
!=
SUCCESS_RETURN
)
if
(
res
!=
SUCCESS_RETURN
)
...
@@ -1038,6 +1113,11 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
...
@@ -1038,6 +1113,11 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
cJSON
*
msgId
=
cJSON_GetObjectItem
(
payload
,
MSG_COMMON_MSGID
);
cJSON
*
msgId
=
cJSON_GetObjectItem
(
payload
,
MSG_COMMON_MSGID
);
kk_service_executeScene_handle
(
paramStr
,
msgId
);
kk_service_executeScene_handle
(
paramStr
,
msgId
);
}
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_GETGUARDSENSORS
)
==
0
){
INFO_PRINT
(
"get guardgensors
\n
"
);
cJSON
*
msgId
=
cJSON_GetObjectItem
(
payload
,
MSG_COMMON_MSGID
);
kk_service_getGuardSensors_handle
(
info_root
,
msgId
);
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_NEGATIVE
)
==
0
){
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_NEGATIVE
)
==
0
){
INFO_PRINT
(
"negative service
\n
"
);
INFO_PRINT
(
"negative service
\n
"
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
...
...
midware/midware/dm/kk_sub_db.c
View file @
a869b387
...
@@ -648,6 +648,51 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *scen
...
@@ -648,6 +648,51 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *scen
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
/************************************************************
*功能描述:更新设备注册标记
*输入参数:deviceCode:设备deviceCode
isAuth:1,已注册;0,未注册
*输出参数:无
*返 回 值:0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_subDev_getSensors_reply
(
SensorType_t
*
list
)
{
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
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
,
"sensor"
);
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
);
rc
=
dm_mgr_get_device_by_devicecode
(
pDeviceCode
,
&
node
);
if
(
rc
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"ERROR res:%d
\n
"
,
rc
);
continue
;
}
//printf("pDeviceCode:%s\n",pDeviceCode);
kk_property_db_get_value
(
pDeviceCode
,
"SensorType"
,
&
currentValue
);
//printf("currentValue:%d\n",currentValue);
memcpy
(
list
[
count
].
deviceCode
,
pDeviceCode
,
strlen
(
pDeviceCode
));
list
[
count
].
SensorType
=
currentValue
;
count
++
;
}
//printf("kk_subDev_getSensors_reply----------------------end\n");
sqlite3_finalize
(
stmt
);
_kk_subDb_unlock
();
sqlite3_free
(
sqlCmd
);
return
SUCCESS_RETURN
;
}
midware/midware/dm/kk_sub_db.h
View file @
a869b387
...
@@ -2,6 +2,10 @@
...
@@ -2,6 +2,10 @@
#define _KK_SUBDEV_DB_H_
#define _KK_SUBDEV_DB_H_
#include "kk_tsl_common.h"
#include "kk_tsl_common.h"
typedef
struct
{
char
deviceCode
[
DEVICE_CODE_MAXLEN
];
int
SensorType
;
}
SensorType_t
;
int
kk_subDb_init
(
void
);
int
kk_subDb_init
(
void
);
int
kk_subDev_insert_db
(
int
devType
,
char
productCode
[
PRODUCT_CODE_MAXLEN
],
\
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
);
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
char
fatherMac
[
DEVICE_MAC_MAXLEN
],
char
mac
[
DEVICE_MAC_MAXLEN
],
char
version
[
DEVICE_VERSION_MAXLEN
],
int
heartbeat
);
...
@@ -18,6 +22,7 @@ int kk_subDev_send_property_get(const char *fatherDeviceCode);
...
@@ -18,6 +22,7 @@ int kk_subDev_send_property_get(const char *fatherDeviceCode);
int
kk_subDev_check_scene_support
(
const
char
*
deviceCode
);
int
kk_subDev_check_scene_support
(
const
char
*
deviceCode
);
int
kk_subDev_set_action_by_productType
(
const
char
*
productType
,
const
char
*
sceneId
,
const
char
*
propertyName
,
const
char
*
propertyValue
,
const
char
*
type
);
int
kk_subDev_set_action_by_productType
(
const
char
*
productType
,
const
char
*
sceneId
,
const
char
*
propertyName
,
const
char
*
propertyValue
,
const
char
*
type
);
int
kk_subDev_update_offline
(
int
isOffline
,
const
char
*
deviceCode
);
int
kk_subDev_update_offline
(
int
isOffline
,
const
char
*
deviceCode
);
int
kk_subDev_getSensors_reply
(
SensorType_t
*
list
);
enum
{
enum
{
DB_SUB_IDX
=
0
,
DB_SUB_IDX
=
0
,
DB_SUB_ONLINE
,
DB_SUB_ONLINE
,
...
...
midware/midware/midware.c
View file @
a869b387
...
@@ -200,6 +200,7 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
...
@@ -200,6 +200,7 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
int
value
=
0
;
int
value
=
0
;
char
*
propertiesbuf
[
64
]
=
{
0
};
char
*
propertiesbuf
[
64
]
=
{
0
};
char
propertiesTmp
[
64
]
=
{
0
};
char
propertiesTmp
[
64
]
=
{
0
};
res
=
dm_mgr_get_device_by_devicecode
((
char
*
)
deviceCode
,
&
node
);
res
=
dm_mgr_get_device_by_devicecode
((
char
*
)
deviceCode
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"ERROR [%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
ERROR_PRINT
(
"ERROR [%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
...
@@ -207,6 +208,22 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
...
@@ -207,6 +208,22 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
}
}
params
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
params
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
if
(
params
!=
NULL
){
if
(
params
!=
NULL
){
//传感器安防等级设置
if
(
strcmp
(
node
->
productType
,
"sensor"
)
==
0
){
cJSON
*
sensorType
=
cJSON_GetObjectItem
(
params
,
"SensorType"
);
if
(
sensorType
!=
NULL
){
int
level
=
sensorType
->
valueint
;
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
node
->
dev_shadow
,
"SensorType"
,
&
level
,
NULL
);
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
);
return
SUCCESS_RETURN
;
}
}
epNum
=
cJSON_GetObjectItem
(
params
,
"epNum"
);
epNum
=
cJSON_GetObjectItem
(
params
,
"epNum"
);
if
(
epNum
!=
NULL
){
if
(
epNum
!=
NULL
){
epNumInt
=
atoi
(
epNum
->
valuestring
);
epNumInt
=
atoi
(
epNum
->
valuestring
);
...
@@ -497,6 +514,73 @@ void gw2mid_cb(void* data, int len, char* chalMark){
...
@@ -497,6 +514,73 @@ void gw2mid_cb(void* data, int len, char* chalMark){
*返 回 值: 无
*返 回 值: 无
*其他说明:
*其他说明:
*************************************************************/
*************************************************************/
static
int
kk_alarm_notify_handle
(
dm_mgr_dev_node_t
*
node
,
char
*
identifier
)
{
int
currentValue
=
0
;
char
armingstate
[
16
]
=
{
0
};
int
ret
=
0
;
if
(
node
==
NULL
||
identifier
==
NULL
){
return
-
1
;
}
kk_property_db_get_value
(
node
->
deviceCode
,
"SensorType"
,
&
currentValue
);
kk_property_db_get_value
(
s_ccuid
,
KK_TSL_CCU_ARMINGSTATE_IDENTIFIER
,
armingstate
);
cJSON
*
info
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
info
,
MSG_TYPE_STR
,
"/thing/event/alarmNotify"
);
cJSON_AddStringToObject
(
info
,
MSG_DEVICE_CODE_STR
,
node
->
deviceCode
);
cJSON_AddStringToObject
(
info
,
MSG_PRODUCT_CODE_STR
,
node
->
productCode
);
char
*
infff
=
cJSON_Print
(
info
);
cJSON
*
payload
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
payload
,
"method"
,
"thing.event.alarmNotify"
);
cJSON_AddStringToObject
(
payload
,
"version"
,
"1.0"
);
cJSON_AddStringToObject
(
payload
,
"identifier"
,
"alarmNotify"
);
cJSON_AddStringToObject
(
payload
,
"msgId"
,
"1"
);
//char timerStr[16] = {0};
//HAL_GetTime_s(timerStr);
cJSON_AddNumberToObject
(
payload
,
"time"
,
time
(
NULL
));
cJSON
*
param
=
cJSON_CreateObject
();
if
(
strcmp
(
identifier
,
"BatteryAlarm"
)
==
0
){
cJSON_AddStringToObject
(
param
,
"LowBatteryState"
,
"1"
);
}
else
{
cJSON_AddStringToObject
(
param
,
"CommonAlarmState"
,
"1"
);
}
cJSON_AddItemToObject
(
payload
,
"params"
,
param
);
char
*
payload11
=
cJSON_Print
(
payload
);
if
(
currentValue
==
2
)
//24小时警戒
{
kk_sendData2app
(
infff
,
payload11
,
0
);
}
else
if
(
currentValue
==
1
&&
atoi
(
armingstate
)
==
0
)
//离家布防
{
kk_sendData2app
(
infff
,
payload11
,
0
);
}
else
if
(
currentValue
==
0
&&
atoi
(
armingstate
)
==
2
)
//在家布防
{
kk_sendData2app
(
infff
,
payload11
,
0
);
}
else
if
(
atoi
(
armingstate
)
==
3
&&
currentValue
==
0
)
{
char
roomId
[
16
]
=
{
0
};
ret
=
kk_get_roomId_by_deviceCode
(
node
->
deviceCode
,
"1"
,
roomId
,
sizeof
(
roomId
));
INFO_PRINT
(
"roomId: [%s]
\n
"
,
roomId
);
if
(
ret
==
1
){
int
state
=
kk_get_room_armingstate
(
roomId
);
INFO_PRINT
(
"state: [%d]
\n
"
,
state
);
if
(
state
){
kk_sendData2app
(
infff
,
payload11
,
0
);
}
}
}
free
(
payload11
);
free
(
infff
);
cJSON_Delete
(
payload
);
cJSON_Delete
(
info
);
return
0
;
}
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
;
...
@@ -640,70 +724,38 @@ void kk_platMsg_handle(void* data, char* chalMark){
...
@@ -640,70 +724,38 @@ void kk_platMsg_handle(void* data, char* chalMark){
kk_tsl_data_t
*
itemData
=
NULL
;
kk_tsl_data_t
*
itemData
=
NULL
;
for
(
index
=
0
;
index
<
eventItem
->
output_data_number
;
index
++
){
for
(
index
=
0
;
index
<
eventItem
->
output_data_number
;
index
++
){
itemStr
=
cJSON_GetObjectItem
(
jsonPay
,
eventItem
->
identifier
);
itemStr
=
cJSON_GetObjectItem
(
jsonPay
,
eventItem
->
identifier
);
itemData
=
eventItem
->
output_datas
+
index
;
itemData
=
eventItem
->
output_datas
+
index
;
#if 0
cJSON
*
itemDataIdentifier
=
cJSON_GetObjectItem
(
jsonPay
,
itemData
->
identifier
);
if
(
itemDataIdentifier
!=
NULL
){
if(itemStr != NULL){
memset
(
tmpStr
,
0x0
,
sizeof
(
tmpStr
));
memset
(
tmpStr
,
0x0
,
sizeof
(
tmpStr
));
sprintf
(
tmpStr
,
"%s.%s"
,
eventItem
->
identifier
,
itemData
->
identifier
);
sprintf
(
tmpStr
,
"%s.%s"
,
eventItem
->
identifier
,
itemData
->
identifier
);
if
(
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_INT
||
if
(
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_INT
||
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_ENUM
||
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_ENUM
||
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_BOOL
){
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_BOOL
){
sprintf(valueBuf,"%d",item
St
r->valueint);
sprintf
(
valueBuf
,
"%d"
,
item
DataIdentifie
r
->
valueint
);
kk_tsl_set_value(kk_tsl_set_event_output_value,node->dev_shadow,tmpStr,&item
St
r->valueint,NULL);
kk_tsl_set_value
(
kk_tsl_set_event_output_value
,
node
->
dev_shadow
,
tmpStr
,
&
item
DataIdentifie
r
->
valueint
,
NULL
);
}
}
else
if
(
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_FLOAT
||
else
if
(
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_FLOAT
||
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_DOUBLE
){
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_DOUBLE
){
sprintf(valueBuf,"%f",item
St
r->valuedouble);
sprintf
(
valueBuf
,
"%f"
,
item
DataIdentifie
r
->
valuedouble
);
kk_tsl_set_value(kk_tsl_set_event_output_value,node->dev_shadow,tmpStr,&item
St
r->valuedouble,NULL);
kk_tsl_set_value
(
kk_tsl_set_event_output_value
,
node
->
dev_shadow
,
tmpStr
,
&
item
DataIdentifie
r
->
valuedouble
,
NULL
);
}
}
else
if
(
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_TEXT
||
else
if
(
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_TEXT
||
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_DATE
){
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_DATE
){
sprintf(valueBuf,"%s",itemStr->valuestring);
sprintf
(
valueBuf
,
"%s"
,
itemDataIdentifier
->
valuestring
);
kk_tsl_set_value(kk_tsl_set_event_output_value,node->dev_shadow,tmpStr,NULL,itemStr->valuestring);
kk_tsl_set_value
(
kk_tsl_set_event_output_value
,
node
->
dev_shadow
,
tmpStr
,
NULL
,
itemDataIdentifier
->
valuestring
);
}
}
INFO_PRINT("kk_platMsg_handle data: event post\n");
if
(
sensorDev
){
if
(
sensorDev
){
kk_history_insert_sensor_info
(
info_dcode
->
valuestring
,
eventItem
->
identifier
,
valueBuf
,
HAL_GetTime
());
kk_history_insert_sensor_info
(
info_dcode
->
valuestring
,
eventItem
->
identifier
,
valueBuf
,
HAL_GetTime
());
}
kk_alarm_notify_handle
(
node
,
eventItem
->
identifier
);
//告警信息处理
dm_msg_thing_event_post(info_dcode->valuestring,eventItem->identifier);
}
INFO_PRINT
(
"kk_platMsg_handle data: event post
\n
"
);
dm_msg_thing_event_post
(
info_dcode
->
valuestring
,
eventItem
->
identifier
,
NULL
);
kk_scene_iftt_check
(
info_dcode
->
valuestring
,
jsonPay
);
kk_scene_iftt_check
(
info_dcode
->
valuestring
,
jsonPay
);
}
else
#endif
cJSON
*
itemDataIdentifier
=
cJSON_GetObjectItem
(
jsonPay
,
itemData
->
identifier
);
if
(
itemDataIdentifier
!=
NULL
){
memset
(
tmpStr
,
0x0
,
sizeof
(
tmpStr
));
sprintf
(
tmpStr
,
"%s.%s"
,
eventItem
->
identifier
,
itemData
->
identifier
);
if
(
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_INT
||
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
);
}
else
if
(
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_FLOAT
||
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_DOUBLE
){
sprintf
(
valueBuf
,
"%f"
,
itemDataIdentifier
->
valuedouble
);
kk_tsl_set_value
(
kk_tsl_set_event_output_value
,
node
->
dev_shadow
,
tmpStr
,
&
itemDataIdentifier
->
valuedouble
,
NULL
);
}
else
if
(
itemData
->
data_value
.
type
==
KK_TSL_DATA_TYPE_TEXT
||
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_history_insert_sensor_info
(
info_dcode
->
valuestring
,
eventItem
->
identifier
,
valueBuf
,
HAL_GetTime
());
}
INFO_PRINT
(
"kk_platMsg_handle data: event post
\n
"
);
dm_msg_thing_event_post
(
info_dcode
->
valuestring
,
eventItem
->
identifier
,
NULL
);
kk_scene_iftt_check
(
info_dcode
->
valuestring
,
jsonPay
);
}
}
}
}
}
}
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
){
...
...
tools/build-rules/_rules-top.mk
View file @
a869b387
...
@@ -222,7 +222,7 @@ else
...
@@ -222,7 +222,7 @@ else
cp
-rf
$(TOP_DIR)/common/ev/libev.so
$(TOP_DIR)/$(releaseDir)/lib
cp
-rf
$(TOP_DIR)/common/ev/libev.so
$(TOP_DIR)/$(releaseDir)/lib
cp
-rf
$(TOP_DIR)/common/sqlite/libsqlite3.so
$(TOP_DIR)/$(releaseDir)/lib
cp
-rf
$(TOP_DIR)/common/sqlite/libsqlite3.so
$(TOP_DIR)/$(releaseDir)/lib
endif
endif
cp
-rf
$(TOP_DIR)/platform/zigbee/app/builder/Z3GatewayHost/build/exe/Z3GatewayHost
$(TOP_DIR)/$(releaseDir)/
#
cp -rf $(TOP_DIR)/platform/zigbee/app/builder/Z3GatewayHost/build/exe/Z3GatewayHost $(TOP_DIR)/$(releaseDir)/
fromdos
$(releaseDir)/*.sh
fromdos
$(releaseDir)/*.sh
echo
$(PWD)
echo
$(PWD)
...
...
tools/build-rules/scripts/gen_one_makefile.sh
View file @
a869b387
...
@@ -104,13 +104,13 @@ done
...
@@ -104,13 +104,13 @@ done
\$
(Q)mkdir -p
\$\$
(dirname
\$
@)
\$
(Q)mkdir -p
\$\$
(dirname
\$
@)
\$
(Q)S=
\$\$
(echo
\$
@|sed 's,
${
OUTPUT_DIR
}
,
${
TOP_DIR
}
,1');
\\
\$
(Q)S=
\$\$
(echo
\$
@|sed 's,
${
OUTPUT_DIR
}
,
${
TOP_DIR
}
,1');
\\
if echo
\$\$
{S//.o/.c} | grep -q 'mbedtls
\|
HAL_
\|
hal-impl'; then
\\
if echo
\$\$
{S//.o/.c} | grep -q 'mbedtls
\|
HAL_
\|
hal-impl'; then
\\
${
CC
}
-c -fPIC
\\
${
CC
}
-
std=c99 -
c -fPIC
\\
-o
\$
@
\\
-o
\$
@
\\
\$
(filter-out -ansi,
\$
(CFLAGS))
\\
\$
(filter-out -ansi,
\$
(CFLAGS))
\\
\$
(IFLAGS)
\\
\$
(IFLAGS)
\\
\$\$
{S//.o/.c};
\\
\$\$
{S//.o/.c};
\\
else
\\
else
\\
${
CC
}
-c -fPIC
\\
${
CC
}
-
std=c99 -
c -fPIC
\\
-o
\$
@
\\
-o
\$
@
\\
\$
(CFLAGS)
\\
\$
(CFLAGS)
\\
\$
(IFLAGS)
\\
\$
(IFLAGS)
\\
...
@@ -181,8 +181,8 @@ done)
...
@@ -181,8 +181,8 @@ done)
\$
(Q)mkdir -p
\$\$
(dirname
\$
@)
\$
(Q)mkdir -p
\$\$
(dirname
\$
@)
\$
(Q)
\$
(call Brief_Log,"SO",
\$\$
(basename
\$
@),"...")
\$
(Q)
\$
(call Brief_Log,"SO",
\$\$
(basename
\$
@),"...")
\$
(Q)
${
CC
}
-fPIC -shared
\$
^ -o
\$
@
\$
(Q)
${
CC
}
-
std=c99 -
fPIC -shared
\$
^ -o
\$
@
EOB
EOB
done
done
...
...
tools/default_settings.mk
View file @
a869b387
...
@@ -11,7 +11,7 @@ CONFIG_LIB_EXPORT ?= static
...
@@ -11,7 +11,7 @@ CONFIG_LIB_EXPORT ?= static
# Default CFLAGS setting
# Default CFLAGS setting
#
#
CFLAGS
+=
-ansi
CFLAGS
+=
-ansi
CFLAGS
+=
-W
declaration-after-statemen
t
CFLAGS
+=
-W
no-unused-resul
t
CFLAGS
+=
-DFORCE_SSL_VERIFY
CFLAGS
+=
-DFORCE_SSL_VERIFY
# Default INCLUDE list
# Default INCLUDE list
...
...
tsl/product_3049.json
View file @
a869b387
...
@@ -63,6 +63,21 @@
...
@@ -63,6 +63,21 @@
}
}
}
}
},
},
{
"identifier"
:
"SensorType"
,
"name"
:
"安防等级"
,
"accessMode"
:
"rw"
,
"required"
:
true
,
"dataType"
:
{
"type"
:
"enum"
,
"specs"
:
{
"0"
:
"在家安防"
,
"1"
:
"室外安防"
,
"2"
:
"24小时警戒"
,
"3"
:
"无警戒"
}
}
},
{
{
"identifier"
:
"Battery"
,
"identifier"
:
"Battery"
,
"name"
:
"电池电量"
,
"name"
:
"电池电量"
,
...
...
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