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
f03a7faf
Commit
f03a7faf
authored
Aug 06, 2021
by
陈伟灿
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'cwc' into 'master'
【修改内容】1,增加情景面板的支持 See merge request chenweican/k-sdk!100
parents
a869b387
f974fdf8
Changes
12
Hide whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
467 additions
and
39 deletions
+467
-39
common/hal/HAL_OS_linux.c
common/hal/HAL_OS_linux.c
+9
-0
common/hal/kk_hal.h
common/hal/kk_hal.h
+1
-0
midware/midware/dm/kk_dm_mng.c
midware/midware/dm/kk_dm_mng.c
+45
-18
midware/midware/dm/kk_dm_mng.h
midware/midware/dm/kk_dm_mng.h
+1
-1
midware/midware/dm/kk_dm_msg.c
midware/midware/dm/kk_dm_msg.c
+11
-6
midware/midware/dm/kk_dm_msg.h
midware/midware/dm/kk_dm_msg.h
+3
-0
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+131
-10
midware/midware/dm/kk_sync_data.c
midware/midware/dm/kk_sync_data.c
+1
-1
midware/midware/midware.c
midware/midware/midware.c
+13
-0
midware/midware/scene/kk_scene_db.c
midware/midware/scene/kk_scene_db.c
+159
-0
midware/midware/scene/kk_scene_db.h
midware/midware/scene/kk_scene_db.h
+13
-1
midware/midware/scene/kk_scene_handle.c
midware/midware/scene/kk_scene_handle.c
+80
-2
No files found.
common/hal/HAL_OS_linux.c
View file @
f03a7faf
...
@@ -163,6 +163,15 @@ time_t HAL_GetTime_s(char *outStr)
...
@@ -163,6 +163,15 @@ time_t HAL_GetTime_s(char *outStr)
return
t
;
return
t
;
}
}
long
long
HAL_GetTime_ms
(
char
*
outStr
)
{
struct
timeval
tv
;
gettimeofday
(
&
tv
,
NULL
);
sprintf
(
outStr
,
"%ld"
,
tv
.
tv_sec
*
1000
+
tv
.
tv_usec
/
1000
);
return
tv
.
tv_sec
*
1000
+
tv
.
tv_usec
/
1000
;
}
char
*
HAL_GetTimeStr
(
_IN_
char
*
buf
,
_IN_
int
len
)
char
*
HAL_GetTimeStr
(
_IN_
char
*
buf
,
_IN_
int
len
)
{
{
...
...
common/hal/kk_hal.h
View file @
f03a7faf
...
@@ -19,6 +19,7 @@ void HAL_SleepMs(_IN_ uint32_t ms);
...
@@ -19,6 +19,7 @@ void HAL_SleepMs(_IN_ uint32_t ms);
uint32_t
HAL_Get_IP
(
char
ip_str
[
NETWORK_ADDR_LEN
],
const
char
*
ifname
);
uint32_t
HAL_Get_IP
(
char
ip_str
[
NETWORK_ADDR_LEN
],
const
char
*
ifname
);
time_t
HAL_GetTime
(
void
);
time_t
HAL_GetTime
(
void
);
time_t
HAL_GetTime_s
(
char
*
outStr
);
time_t
HAL_GetTime_s
(
char
*
outStr
);
long
long
HAL_GetTime_ms
(
char
*
outStr
);
int
HAL_Snprintf
(
_IN_
char
*
str
,
const
int
len
,
const
char
*
fmt
,
...);
int
HAL_Snprintf
(
_IN_
char
*
str
,
const
int
len
,
const
char
*
fmt
,
...);
int
HAL_Vsnprintf
(
_IN_
char
*
str
,
_IN_
const
int
len
,
_IN_
const
char
*
format
,
va_list
ap
);
int
HAL_Vsnprintf
(
_IN_
char
*
str
,
_IN_
const
int
len
,
_IN_
const
char
*
format
,
va_list
ap
);
void
*
HAL_MutexCreate
(
void
);
void
*
HAL_MutexCreate
(
void
);
...
...
midware/midware/dm/kk_dm_mng.c
View file @
f03a7faf
...
@@ -670,9 +670,15 @@ static int _dm_mgr_upstream_service_assemble(_IN_ char* msgid, _IN_ int devid,
...
@@ -670,9 +670,15 @@ static int _dm_mgr_upstream_service_assemble(_IN_ char* msgid, _IN_ int devid,
static
unsigned
int
g_report_id
=
1
;
static
unsigned
int
g_report_id
=
1
;
int
iotx_report_id
(
voi
d
)
int
iotx_report_id
(
char
*
msgI
d
)
{
{
return
g_report_id
++
;
if
(
msgId
==
NULL
){
return
INVALID_PARAMETER
;
}
char
timerStr
[
16
]
=
{
0
};
HAL_GetTime_ms
(
timerStr
);
sprintf
(
msgId
,
"6c0645c4-f6d6-46b2-b11e-%s"
,
timerStr
);
return
SUCCESS_RETURN
;
}
}
int
dm_mgr_upstream_thing_property_post
(
_IN_
int
devid
,
_IN_
char
*
payload
,
_IN_
int
payload_len
,
_IN_
int
isAsync
)
int
dm_mgr_upstream_thing_property_post
(
_IN_
int
devid
,
_IN_
char
*
payload
,
_IN_
int
payload_len
,
_IN_
int
isAsync
)
...
@@ -686,7 +692,8 @@ int dm_mgr_upstream_thing_property_post(_IN_ int devid, _IN_ char *payload, _IN_
...
@@ -686,7 +692,8 @@ int dm_mgr_upstream_thing_property_post(_IN_ int devid, _IN_ char *payload, _IN_
}
}
memset
(
&
request
,
0
,
sizeof
(
dm_msg_request_t
));
memset
(
&
request
,
0
,
sizeof
(
dm_msg_request_t
));
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
res
=
_dm_mgr_upstream_request_assemble
(
msgId
,
devid
,
"property"
,
res
=
_dm_mgr_upstream_request_assemble
(
msgId
,
devid
,
"property"
,
payload
,
payload_len
,
(
char
*
)
DM_URI_THING_EVENT_PROPERTY_POST_METHOD
,
&
request
);
payload
,
payload_len
,
(
char
*
)
DM_URI_THING_EVENT_PROPERTY_POST_METHOD
,
&
request
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
...
@@ -715,7 +722,8 @@ int dm_mgr_upstream_thing_event_post(_IN_ int devid, _IN_ char *identifier, _IN_
...
@@ -715,7 +722,8 @@ int dm_mgr_upstream_thing_event_post(_IN_ int devid, _IN_ char *identifier, _IN_
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
}
}
memset
(
&
request
,
0
,
sizeof
(
dm_msg_request_t
));
memset
(
&
request
,
0
,
sizeof
(
dm_msg_request_t
));
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
res
=
_dm_mgr_upstream_request_assemble
(
msgId
,
devid
,
identifier
,
res
=
_dm_mgr_upstream_request_assemble
(
msgId
,
devid
,
identifier
,
payload
,
payload_len
,
method
,
&
request
);
payload
,
payload_len
,
method
,
&
request
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
...
@@ -773,7 +781,9 @@ int dm_mgr_upstream_thing_service_post(_IN_ int devid, _IN_ char *identifier, _I
...
@@ -773,7 +781,9 @@ int dm_mgr_upstream_thing_service_post(_IN_ int devid, _IN_ char *identifier, _I
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
}
}
memset
(
&
request
,
0
,
sizeof
(
dm_msg_request_t
));
memset
(
&
request
,
0
,
sizeof
(
dm_msg_request_t
));
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
res
=
_dm_mgr_upstream_service_assemble
(
msgId
,
devid
,
identifier
,
res
=
_dm_mgr_upstream_service_assemble
(
msgId
,
devid
,
identifier
,
payload
,
payload_len
,
method
,
&
request
);
payload
,
payload_len
,
method
,
&
request
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
...
@@ -901,7 +911,9 @@ int dm_mgr_upstream_thing_sub_register(_IN_ int devid)
...
@@ -901,7 +911,9 @@ int dm_mgr_upstream_thing_sub_register(_IN_ int devid)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
/* Get Dev ID */
/* Get Dev ID */
...
@@ -958,7 +970,9 @@ int dm_mgr_upstream_thing_sub_unregister(_IN_ int devid)
...
@@ -958,7 +970,9 @@ int dm_mgr_upstream_thing_sub_unregister(_IN_ int devid)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1016,7 +1030,9 @@ int dm_mgr_upstream_thing_topo_add(_IN_ int devid)
...
@@ -1016,7 +1030,9 @@ int dm_mgr_upstream_thing_topo_add(_IN_ int devid)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1073,7 +1089,9 @@ int dm_mgr_upstream_thing_topo_delete(_IN_ int devid)
...
@@ -1073,7 +1089,9 @@ int dm_mgr_upstream_thing_topo_delete(_IN_ int devid)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1117,7 +1135,9 @@ int dm_mgr_upstream_thing_topo_get(void)
...
@@ -1117,7 +1135,9 @@ int dm_mgr_upstream_thing_topo_get(void)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1171,7 +1191,8 @@ int dm_mgr_upstream_thing_list_found(_IN_ int devid)
...
@@ -1171,7 +1191,8 @@ int dm_mgr_upstream_thing_list_found(_IN_ int devid)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1221,7 +1242,8 @@ int dm_mgr_ccu_status_cloud(_IN_ int devid)
...
@@ -1221,7 +1242,8 @@ int dm_mgr_ccu_status_cloud(_IN_ int devid)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1285,7 +1307,8 @@ int dm_mgr_upstream_status_online(_IN_ int devid)
...
@@ -1285,7 +1307,8 @@ int dm_mgr_upstream_status_online(_IN_ int devid)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1345,7 +1368,8 @@ int dm_mgr_upstream_status_offline(_IN_ int devid)
...
@@ -1345,7 +1368,8 @@ int dm_mgr_upstream_status_offline(_IN_ int devid)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1400,7 +1424,8 @@ int dm_mgr_upstream_combine_login(_IN_ int devid)
...
@@ -1400,7 +1424,8 @@ int dm_mgr_upstream_combine_login(_IN_ int devid)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1454,7 +1479,8 @@ int dm_mgr_upstream_combine_logout(_IN_ int devid)
...
@@ -1454,7 +1479,8 @@ int dm_mgr_upstream_combine_logout(_IN_ int devid)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1507,7 +1533,8 @@ int dm_mgr_ota_report_version(_IN_ int devid, char *version)
...
@@ -1507,7 +1533,8 @@ int dm_mgr_ota_report_version(_IN_ int devid, char *version)
}
}
/* Get Msg ID */
/* Get Msg ID */
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
memcpy
(
request
.
msgid
,
msgId
,
strlen
(
msgId
));
...
@@ -1551,7 +1578,7 @@ int dm_mgr_subdev_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN])
...
@@ -1551,7 +1578,7 @@ int dm_mgr_subdev_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN])
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
INFO_PRINT
(
"dm_mgr_subdev_delete deviceCode:%s
\n
"
,
deviceCode
);
INFO_PRINT
(
"dm_mgr_subdev_delete deviceCode:%s
\n
"
,
deviceCode
);
kk_scene_deleteall_panel_scene_info
(
deviceCode
);
//如果是情景面板,删除对应信息
/*房间信息中删除对应的设备*/
/*房间信息中删除对应的设备*/
kk_room_dev_remove
(
deviceCode
,
NULL
);
kk_room_dev_remove
(
deviceCode
,
NULL
);
...
...
midware/midware/dm/kk_dm_mng.h
View file @
f03a7faf
...
@@ -95,7 +95,7 @@ int dm_mgr_check_heartbeat_timeout(time_t timestamp);
...
@@ -95,7 +95,7 @@ int dm_mgr_check_heartbeat_timeout(time_t timestamp);
int
dm_mgr_get_devId_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
_OU_
int
*
devid
);
int
dm_mgr_get_devId_by_devicecode
(
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
_OU_
int
*
devid
);
int
dm_mgr_init
(
void
);
int
dm_mgr_init
(
void
);
int
dm_mgr_deinit
(
void
);
int
dm_mgr_deinit
(
void
);
int
iotx_report_id
(
voi
d
);
int
iotx_report_id
(
char
*
msgI
d
);
int
dm_mgr_upstream_thing_property_post
(
_IN_
int
devid
,
_IN_
char
*
payload
,
_IN_
int
payload_len
,
_IN_
int
isAsync
);
int
dm_mgr_upstream_thing_property_post
(
_IN_
int
devid
,
_IN_
char
*
payload
,
_IN_
int
payload_len
,
_IN_
int
isAsync
);
int
dm_mgr_upstream_thing_event_post
(
_IN_
int
devid
,
_IN_
char
*
identifier
,
_IN_
int
identifier_len
,
_IN_
char
*
method
,
int
dm_mgr_upstream_thing_event_post
(
_IN_
int
devid
,
_IN_
char
*
identifier
,
_IN_
int
identifier_len
,
_IN_
char
*
method
,
_IN_
char
*
payload
,
_IN_
int
payload_len
);
_IN_
char
*
payload
,
_IN_
int
payload_len
);
...
...
midware/midware/dm/kk_dm_msg.c
View file @
f03a7faf
...
@@ -795,7 +795,6 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const
...
@@ -795,7 +795,6 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier,const
}
}
if
(
msgId
!=
NULL
){
if
(
msgId
!=
NULL
){
dm_mgr_upstream_thing_event_post_ex
(
node
->
devid
,
(
char
*
)
identifier
,
strlen
(
identifier
),
method
,
payload
,
strlen
(
payload
),
msgId
);
dm_mgr_upstream_thing_event_post_ex
(
node
->
devid
,
(
char
*
)
identifier
,
strlen
(
identifier
),
method
,
payload
,
strlen
(
payload
),
msgId
);
}
else
}
else
{
{
dm_mgr_upstream_thing_event_post
(
node
->
devid
,
identifier
,
strlen
(
identifier
),
method
,
payload
,
strlen
(
payload
));
dm_mgr_upstream_thing_event_post
(
node
->
devid
,
identifier
,
strlen
(
identifier
),
method
,
payload
,
strlen
(
payload
));
...
@@ -1167,7 +1166,8 @@ int kk_msg_execute_property_set(const char *productCode,const char *deviceCode,c
...
@@ -1167,7 +1166,8 @@ int kk_msg_execute_property_set(const char *productCode,const char *deviceCode,c
return
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
}
}
memset
(
payload
,
0
,
payload_len
);
memset
(
payload
,
0
,
payload_len
);
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
DM_MSG_VERSION
,
params
,
HAL_GetTime
(),
method
);
DM_MSG_VERSION
,
params
,
HAL_GetTime
(),
method
);
...
@@ -1239,7 +1239,8 @@ int kk_msg_execute_property_get(dm_mgr_dev_node_t *node)
...
@@ -1239,7 +1239,8 @@ int kk_msg_execute_property_get(dm_mgr_dev_node_t *node)
return
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
}
}
memset
(
payload
,
0
,
payload_len
);
memset
(
payload
,
0
,
payload_len
);
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
DM_MSG_VERSION
,
paramS
,
HAL_GetTime
(),
method
);
DM_MSG_VERSION
,
paramS
,
HAL_GetTime
(),
method
);
cJSON
*
root
=
cJSON_CreateObject
();
cJSON
*
root
=
cJSON_CreateObject
();
...
@@ -1319,7 +1320,8 @@ int kk_msg_execute_scene_set(const char* params,const char *fatherDeviceCode,int
...
@@ -1319,7 +1320,8 @@ int kk_msg_execute_scene_set(const char* params,const char *fatherDeviceCode,int
return
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
}
}
memset
(
payload
,
0
,
payload_len
);
memset
(
payload
,
0
,
payload_len
);
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
DM_MSG_VERSION
,
params
,
HAL_GetTime
(),
method
);
DM_MSG_VERSION
,
params
,
HAL_GetTime
(),
method
);
...
@@ -1369,7 +1371,8 @@ int kk_msg_execute_scene_action(const char* params,const char *fatherDeviceCode)
...
@@ -1369,7 +1371,8 @@ int kk_msg_execute_scene_action(const char* params,const char *fatherDeviceCode)
return
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
}
}
memset
(
payload
,
0
,
payload_len
);
memset
(
payload
,
0
,
payload_len
);
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
DM_MSG_VERSION
,
params
,
HAL_GetTime
(),
method
);
DM_MSG_VERSION
,
params
,
HAL_GetTime
(),
method
);
...
@@ -1418,7 +1421,9 @@ int kk_msg_execute_scene_delete(const char* params,const char *fatherDeviceCode)
...
@@ -1418,7 +1421,9 @@ int kk_msg_execute_scene_delete(const char* params,const char *fatherDeviceCode)
return
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
}
}
memset
(
payload
,
0
,
payload_len
);
memset
(
payload
,
0
,
payload_len
);
sprintf
(
msgId
,
"%d"
,
iotx_report_id
());
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
//sprintf(msgId,"%d",iotx_report_id());
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
DM_MSG_VERSION
,
params
,
HAL_GetTime
(),
method
);
DM_MSG_VERSION
,
params
,
HAL_GetTime
(),
method
);
...
...
midware/midware/dm/kk_dm_msg.h
View file @
f03a7faf
...
@@ -85,6 +85,9 @@ const char DM_MSG_INFO[] DM_READ_ONLY;
...
@@ -85,6 +85,9 @@ const char DM_MSG_INFO[] DM_READ_ONLY;
#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_SERVICE_GETGUARDSENSORS "/thing/service/getGuardSensors"
#define KK_THING_EVENT_POST "/post"
#define KK_THING_EVENT_POST "/post"
#define KK_THING_SERVICE_BINDSCENE "/thing/service/bindScene"
#define KK_THING_SERVICE_UNBINDSBUTTTON "/thing/service/unbindButton"
#define KK_THING_SERVICE_ACTIVEBUTTON "/thing/service/activeButton"
void
kk_sendData2app
(
void
*
info
,
void
*
payload
,
int
isAsync
);
void
kk_sendData2app
(
void
*
info
,
void
*
payload
,
int
isAsync
);
int
dm_msg_thing_sub_register
(
_IN_
char
productCode
[
DEVICE_CODE_MAXLEN
],
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
int
dm_msg_thing_sub_register
(
_IN_
char
productCode
[
DEVICE_CODE_MAXLEN
],
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
...
...
midware/midware/dm/kk_linkkit.c
View file @
f03a7faf
...
@@ -328,10 +328,12 @@ int kk_topo_delete_handle(cJSON *payload)
...
@@ -328,10 +328,12 @@ int kk_topo_delete_handle(cJSON *payload)
while
(
item
!=
NULL
){
while
(
item
!=
NULL
){
char
*
deviceCode
=
cJSON_GetObjectItem
(
item
,
MSG_DEVICE_CODE_STR
)
->
valuestring
;
char
*
deviceCode
=
cJSON_GetObjectItem
(
item
,
MSG_DEVICE_CODE_STR
)
->
valuestring
;
dm_mgr_subdev_delete
(
deviceCode
);
dm_mgr_subdev_delete
(
deviceCode
);
item
=
item
->
next
;
item
=
item
->
next
;
}
}
}
}
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
@@ -922,6 +924,99 @@ static int kk_service_getGuardSensors_handle(cJSON *param,cJSON *msgId)
...
@@ -922,6 +924,99 @@ static int kk_service_getGuardSensors_handle(cJSON *param,cJSON *msgId)
return
res
;
return
res
;
}
}
/************************************************************
/************************************************************
*功能描述:情景面板绑定处理
*输入参数:params:云端下发数据
msgId:消息Id
*输出参数:无
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
static
int
kk_service_bindScene_handle
(
cJSON
*
params
,
char
*
deviceCodeStr
)
{
int
res
=
0
;
int
i
=
0
,
num
=
0
;
char
sceneId
[
32
]
=
{
0
};
char
btnId
[
16
]
=
{
0
};
SensorType_t
*
pList
=
NULL
;
if
(
params
==
NULL
||
deviceCodeStr
==
NULL
){
return
INVALID_PARAMETER
;
}
cJSON
*
bindType
=
cJSON_GetObjectItem
(
params
,
"bindType"
);
if
(
bindType
==
NULL
||
bindType
->
type
!=
cJSON_Number
){
ERROR_PRINT
(
"DATA ERROR!!!"
);
return
FAIL_RETURN
;
}
cJSON
*
ButtonId
=
cJSON_GetObjectItem
(
params
,
"ButtonId"
);
if
(
ButtonId
==
NULL
||
ButtonId
->
type
!=
cJSON_Number
){
ERROR_PRINT
(
"DATA ERROR!!!"
);
return
FAIL_RETURN
;
}
sprintf
(
btnId
,
"%d"
,
ButtonId
->
valueint
);
kk_scene_delete_panel_scene_info
(
btnId
,
deviceCodeStr
);
//如果已经关联,先删除关联
if
(
bindType
->
valueint
==
2
||
bindType
->
valueint
==
3
){
HAL_GetTime_s
(
sceneId
);
//use time to create the sceneId
kk_scene_parse_scene_action
(
params
,
sceneId
,
0
);
kk_scene_insert_panel_scene_info
(
bindType
->
valueint
,
btnId
,
deviceCodeStr
,
sceneId
);
}
else
if
(
bindType
->
valueint
==
1
){
cJSON
*
action
=
cJSON_GetObjectItem
(
params
,
MSG_SCENE_ACTIONS
);
if
(
action
==
NULL
||
action
->
type
!=
cJSON_Array
){
ERROR_PRINT
(
"DATA ERROR!!!"
);
return
FAIL_RETURN
;
}
cJSON
*
client_list
=
action
->
child
;
while
(
client_list
!=
NULL
){
int
isceneId
=
cJSON_GetObjectItem
(
client_list
,
"sceneId"
)
->
valueint
;
sprintf
(
sceneId
,
"%d"
,
isceneId
);
kk_scene_insert_panel_scene_info
(
bindType
->
valueint
,
btnId
,
deviceCodeStr
,
sceneId
);
client_list
=
client_list
->
next
;
}
}
else
if
(
bindType
->
valueint
==
4
){
HAL_GetTime_s
(
sceneId
);
//use time to create the sceneId
cJSON
*
action
=
cJSON_GetObjectItem
(
params
,
MSG_SCENE_ACTIONS
);
if
(
action
==
NULL
||
action
->
type
!=
cJSON_Array
)
{
ERROR_PRINT
(
"DATA ERROR!!!"
);
return
FAIL_RETURN
;
}
cJSON
*
item
=
action
->
child
;
while
(
item
!=
NULL
){
cJSON
*
type
=
cJSON_GetObjectItem
(
item
,
MSG_SCENE_TYPE
);
if
(
type
==
NULL
)
return
FAIL_RETURN
;
cJSON
*
propertyName
=
cJSON_GetObjectItem
(
item
,
MSG_SCENE_PROPERTYNAME
);
if
(
propertyName
==
NULL
)
return
FAIL_RETURN
;
cJSON
*
propertyValue
=
cJSON_GetObjectItem
(
item
,
MSG_SCENE_PROPERTYVALUE
);
if
(
propertyValue
==
NULL
)
return
FAIL_RETURN
;
cJSON
*
deviceCode
=
cJSON_GetObjectItem
(
item
,
MSG_DEVICE_CODE_STR
);
if
(
deviceCode
==
NULL
)
return
FAIL_RETURN
;
res
=
kk_scene_insert_scene_action
(
type
->
valuestring
,
deviceCode
->
valuestring
,
1
,
propertyName
->
valuestring
,
propertyValue
->
valuestring
,
0
,
sceneId
,
deviceCode
->
valuestring
);
kk_scene_insert_panel_scene_info
(
bindType
->
valueint
,
btnId
,
deviceCodeStr
,
sceneId
);
item
=
item
->
next
;
}
}
return
res
;
}
int
kk_service_arming_set
(
char
*
state
)
{
int
res
=
0
;
dm_mgr_dev_node_t
*
node
=
NULL
;
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
);
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
}
//HAL_Get_ccuid(ccuid);
kk_property_db_update
(
node
->
deviceCode
);
//dm_msg_thing_property_set_reply(deviceCode->valuestring,payload_Str, strlen(payload_Str), NULL);
dm_msg_ccu_property_post
(
node
);
}
/************************************************************
*功能描述:收到云端数据后的回调处理
*功能描述:收到云端数据后的回调处理
*输入参数:type:数据类型
*输入参数:type:数据类型
data:具体数据
data:具体数据
...
@@ -1010,16 +1105,7 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
...
@@ -1010,16 +1105,7 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
}
}
}
}
dm_mgr_search_dev_by_devid
(
KK_DM_DEVICE_CCU_DEVICEID
,
&
node
);
kk_service_arming_set
(
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
)
{
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
}
HAL_Get_ccuid
(
ccuid
);
kk_property_db_update
(
ccuid
);
//dm_msg_thing_property_set_reply(deviceCode->valuestring,payload_Str, strlen(payload_Str), NULL);
dm_msg_ccu_property_post
(
node
);
}
}
}
else
if
(
strstr
(
typeJson
->
valuestring
,
KK_THING_CLOUDSTATE_MSG
)){
}
else
if
(
strstr
(
typeJson
->
valuestring
,
KK_THING_CLOUDSTATE_MSG
)){
INFO_PRINT
(
"cloud state notify
\n
"
);
INFO_PRINT
(
"cloud state notify
\n
"
);
...
@@ -1145,6 +1231,41 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
...
@@ -1145,6 +1231,41 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
INFO_PRINT
(
"SYNCINFO service
\n
"
);
INFO_PRINT
(
"SYNCINFO service
\n
"
);
dm_msg_thing_syncinfo_reply
();
dm_msg_thing_syncinfo_reply
();
}
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_BINDSCENE
)
==
0
){
INFO_PRINT
(
"bind scene
\n
"
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
if
(
paramStr
!=
NULL
){
kk_service_bindScene_handle
(
paramStr
,
deviceCode
->
valuestring
);
}
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_UNBINDSBUTTTON
)
==
0
){
INFO_PRINT
(
"unbind button
\n
"
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
if
(
paramStr
!=
NULL
){
char
btnId
[
16
]
=
{
0
};
cJSON
*
buttonId
=
cJSON_GetObjectItem
(
paramStr
,
"ButtonId"
);
if
(
buttonId
==
NULL
||
buttonId
->
type
!=
cJSON_Number
){
ERROR_PRINT
(
"DATA ERROR!!!
\n
"
);
goto
directReturn
;
}
sprintf
(
btnId
,
"%d"
,
buttonId
->
valueint
);
kk_scene_delete_panel_scene_info
(
btnId
,
deviceCode
->
valuestring
);
}
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_ACTIVEBUTTON
)
==
0
){
INFO_PRINT
(
"active button
\n
"
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
if
(
paramStr
!=
NULL
){
char
btnId
[
16
]
=
{
0
};
cJSON
*
buttonId
=
cJSON_GetObjectItem
(
paramStr
,
"ButtonId"
);
if
(
buttonId
==
NULL
||
buttonId
->
type
!=
cJSON_Number
){
ERROR_PRINT
(
"DATA ERROR!!!
\n
"
);
goto
directReturn
;
}
sprintf
(
btnId
,
"%d"
,
buttonId
->
valueint
);
kk_scene_execute_quickpanel
(
btnId
,
deviceCode
->
valuestring
);
}
}
else
{
else
{
INFO_PRINT
(
"Error msgtype!!!
\n
"
);
INFO_PRINT
(
"Error msgtype!!!
\n
"
);
}
}
...
...
midware/midware/dm/kk_sync_data.c
View file @
f03a7faf
...
@@ -548,7 +548,7 @@ char *kk_sync_get_info()
...
@@ -548,7 +548,7 @@ char *kk_sync_get_info()
kk_get_scenes_info
(
data
);
kk_get_scenes_info
(
data
);
HAL_Get
Device_Code
(
ccu_deviceCode
);
HAL_Get
_ccuid
(
ccu_deviceCode
);
HAL_GetProduct_Code
(
ccu_productCode
);
HAL_GetProduct_Code
(
ccu_productCode
);
...
...
midware/midware/midware.c
View file @
f03a7faf
...
@@ -60,6 +60,9 @@ char * g_filerToPlatTable[] =
...
@@ -60,6 +60,9 @@ char * g_filerToPlatTable[] =
(
char
*
){
KK_THING_SERVICE_DELETESCENC
},
(
char
*
){
KK_THING_SERVICE_DELETESCENC
},
(
char
*
){
KK_THING_SERVICE_NEGATIVE
},
(
char
*
){
KK_THING_SERVICE_NEGATIVE
},
(
char
*
){
KK_THING_SERVICE_SYNCINFO
},
(
char
*
){
KK_THING_SERVICE_SYNCINFO
},
(
char
*
){
KK_THING_SERVICE_BINDSCENE
},
(
char
*
){
KK_THING_SERVICE_UNBINDSBUTTTON
},
(
char
*
){
KK_THING_SERVICE_ACTIVEBUTTON
},
};
};
static
char
s_ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
static
char
s_ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
int
HAL_Get_ccuid
(
_OU_
char
*
device_code
)
int
HAL_Get_ccuid
(
_OU_
char
*
device_code
)
...
@@ -714,6 +717,16 @@ void kk_platMsg_handle(void* data, char* chalMark){
...
@@ -714,6 +717,16 @@ void kk_platMsg_handle(void* data, char* chalMark){
if
(
strcmp
(
node
->
productType
,
"sensor"
)
==
0
){
if
(
strcmp
(
node
->
productType
,
"sensor"
)
==
0
){
sensorDev
=
1
;
sensorDev
=
1
;
}
}
if
(
strcmp
(
msgType
->
valuestring
,
"/thing/event/SceneRecall/post"
)
==
0
){
char
btnId
[
16
]
=
{
0
};
cJSON
*
buttonId
=
cJSON_GetObjectItem
(
jsonPay
,
"SceneNum"
);
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
);
}
INFO_PRINT
(
"kk_platMsg_handle event post enters
\n
"
);
INFO_PRINT
(
"kk_platMsg_handle event post enters
\n
"
);
for
(
idx
=
0
;
idx
<
node
->
dev_shadow
->
event_number
;
idx
++
){
for
(
idx
=
0
;
idx
<
node
->
dev_shadow
->
event_number
;
idx
++
){
eventItem
=
node
->
dev_shadow
->
events
+
idx
;
eventItem
=
node
->
dev_shadow
->
events
+
idx
;
...
...
midware/midware/scene/kk_scene_db.c
View file @
f03a7faf
...
@@ -162,6 +162,21 @@ int kk_scene_db_init(void)
...
@@ -162,6 +162,21 @@ int kk_scene_db_init(void)
_kk_scene_unlock
();
_kk_scene_unlock
();
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
//情景面板场景关联
const
char
*
pPanelScene
=
"CREATE TABLE IF NOT EXISTS QuickPanelScene( \
buttonId varchar(255), \
bindType INTEGER, \
deviceCode varchar(255), \
sceneId varchar(255) UNIQUE)"
;
if
(
sqlite3_exec
(
ctx
->
pDb
,
pPanelScene
,
NULL
,
NULL
,
&
pcErr
)
!=
SQLITE_OK
)
{
ERROR_PRINT
(
"Error creating table (%s)
\n
"
,
pcErr
);
sqlite3_free
(
pcErr
);
//eUtils_LockUnlock(&sLock);
_kk_scene_unlock
();
return
FAIL_RETURN
;
}
_kk_scene_unlock
();
_kk_scene_unlock
();
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
...
@@ -234,6 +249,121 @@ int kk_scene_insert_scene_info(const char* roomId,const char* sceneName,int scen
...
@@ -234,6 +249,121 @@ int kk_scene_insert_scene_info(const char* roomId,const char* sceneName,int scen
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
/************************************************************
/************************************************************
*功能描述: 添加情景面板信息到数据库
*输入参数: name:场景名称
enable: 1,使能;0,不使能
sceneType:场景类型
sceneId:场景Id
*输出参数: 无
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_scene_insert_panel_scene_info
(
int
bindType
,
char
*
buttonId
,
char
*
deviceCode
,
const
char
*
sceneId
)
{
int
res
=
0
;
kk_scene_ctx_t
*
ctx
=
_kk_scene_get_ctx
();
char
*
sqlCmd
=
NULL
;
char
*
zErrMsg
=
0
;
const
char
*
insertCmd
=
"insert into QuickPanelScene (buttonId,bindType,deviceCode,sceneId) \
values ('%s','%d','%s','%s');"
;
_kk_scene_lock
();
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
buttonId
,
bindType
,
deviceCode
,
sceneId
);
res
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
res
!=
SQLITE_OK
){
ERROR_PRINT
(
"SQL error: %s
\n
"
,
zErrMsg
);
sqlite3_free
(
zErrMsg
);
sqlite3_free
(
sqlCmd
);
_kk_scene_unlock
();
return
FAIL_RETURN
;
}
sqlite3_free
(
sqlCmd
);
_kk_scene_unlock
();
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述: 取消关联
*输入参数: name:场景名称
enable: 1,使能;0,不使能
sceneType:场景类型
sceneId:场景Id
*输出参数: 无
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_scene_delete_panel_scene_info
(
char
*
buttonId
,
char
*
deviceCode
)
{
int
res
=
0
;
kk_scene_ctx_t
*
ctx
=
_kk_scene_get_ctx
();
char
*
sqlCmd
=
NULL
;
sqlite3_stmt
*
stmt
;
char
*
zErrMsg
=
0
;
char
*
pSceneId
=
NULL
;
int
bindType
=
0
;
const
char
*
selectCmd
=
"select * from QuickPanelScene WHERE deviceCode = '%s' and buttonId = '%s';"
;
sqlCmd
=
sqlite3_mprintf
(
selectCmd
,
deviceCode
,
buttonId
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pSceneId
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_QUICKPANEL_SCENEID
);
bindType
=
sqlite3_column_int
(
stmt
,
DB_QUICKPANEL_BINDTYPE
);
if
(
bindType
==
4
){
kk_scene_delete_scene_action
(
pSceneId
,
0
);
}
else
if
(
bindType
==
2
||
bindType
==
3
){
kk_scene_delete_scene_action
(
pSceneId
,
1
);
}
kk_scene_delete_quickpanel_info
(
buttonId
,
deviceCode
);
break
;
}
sqlite3_finalize
(
stmt
);
sqlite3_free
(
sqlCmd
);
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述: 取消所有关联
*输入参数: name:场景名称
enable: 1,使能;0,不使能
sceneType:场景类型
sceneId:场景Id
*输出参数: 无
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_scene_deleteall_panel_scene_info
(
char
*
deviceCode
)
{
int
res
=
0
;
kk_scene_ctx_t
*
ctx
=
_kk_scene_get_ctx
();
char
*
sqlCmd
=
NULL
;
sqlite3_stmt
*
stmt
;
char
*
zErrMsg
=
0
;
char
*
pSceneId
=
NULL
;
char
*
buttonId
=
NULL
;
int
bindType
=
0
;
const
char
*
selectCmd
=
"select * from QuickPanelScene WHERE deviceCode = '%s';"
;
sqlCmd
=
sqlite3_mprintf
(
selectCmd
,
deviceCode
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pSceneId
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_QUICKPANEL_SCENEID
);
bindType
=
sqlite3_column_int
(
stmt
,
DB_QUICKPANEL_BINDTYPE
);
buttonId
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_QUICKPANEL_BUTTONID
);
if
(
bindType
==
4
){
kk_scene_delete_scene_action
(
pSceneId
,
0
);
}
else
if
(
bindType
==
2
||
bindType
==
3
){
kk_scene_delete_scene_action
(
pSceneId
,
1
);
}
kk_scene_delete_quickpanel_info
(
buttonId
,
deviceCode
);
}
sqlite3_finalize
(
stmt
);
sqlite3_free
(
sqlCmd
);
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述: 检查场景触发是否已经存在
*功能描述: 检查场景触发是否已经存在
*输入参数: deviceCode:设备deviceCode
*输入参数: deviceCode:设备deviceCode
epNum: 设备路数
epNum: 设备路数
...
@@ -516,6 +646,35 @@ int kk_scene_insert_scene_action(const char* type,const char* deviceCode,int epN
...
@@ -516,6 +646,35 @@ int kk_scene_insert_scene_action(const char* type,const char* deviceCode,int epN
}
}
/************************************************************
/************************************************************
*功能描述: 从数据库删除情景面板的基本数据
*输入参数: sceneId:场景Id
*输出参数: 无
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_scene_delete_quickpanel_info
(
char
*
buttonId
,
char
*
deviceCode
)
{
int
res
=
0
;
kk_scene_ctx_t
*
ctx
=
_kk_scene_get_ctx
();
char
*
sqlCmd
=
NULL
;
char
*
zErrMsg
=
0
;
const
char
*
deleteCmd
=
"delete from QuickPanelScene where buttonId = '%s' and deviceCode = '%s';"
;
_kk_scene_lock
();
sqlCmd
=
sqlite3_mprintf
(
deleteCmd
,
buttonId
,
deviceCode
);
res
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
res
!=
SQLITE_OK
){
ERROR_PRINT
(
"SQL error: %s
\n
"
,
zErrMsg
);
sqlite3_free
(
zErrMsg
);
sqlite3_free
(
sqlCmd
);
_kk_scene_unlock
();
return
FAIL_RETURN
;
}
sqlite3_free
(
sqlCmd
);
_kk_scene_unlock
();
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述: 从数据库删除场景的基本数据
*功能描述: 从数据库删除场景的基本数据
*输入参数: sceneId:场景Id
*输入参数: sceneId:场景Id
*输出参数: 无
*输出参数: 无
...
...
midware/midware/scene/kk_scene_db.h
View file @
f03a7faf
...
@@ -68,6 +68,13 @@ enum{
...
@@ -68,6 +68,13 @@ enum{
DB_SCENEINVOKESERVICE_SCENEID
,
DB_SCENEINVOKESERVICE_SCENEID
,
DB_SCENEINVOKESERVICE_args
,
DB_SCENEINVOKESERVICE_args
,
};
};
enum
{
DB_QUICKPANEL_BUTTONID
=
0
,
DB_QUICKPANEL_BINDTYPE
,
DB_QUICKPANEL_DEVICECODE
,
DB_QUICKPANEL_SCENEID
,
};
int
kk_scene_delete_scene_timing
(
const
char
*
sceneId
);
int
kk_scene_delete_scene_timing
(
const
char
*
sceneId
);
int
kk_scene_delete_scene_condition
(
const
char
*
sceneId
);
int
kk_scene_delete_scene_condition
(
const
char
*
sceneId
);
int
kk_scene_delete_scene_trigger
(
const
char
*
sceneId
);
int
kk_scene_delete_scene_trigger
(
const
char
*
sceneId
);
...
@@ -86,5 +93,10 @@ int kk_scene_insert_scene_condition(const char* type,int startTime,int endTime,i
...
@@ -86,5 +93,10 @@ int kk_scene_insert_scene_condition(const char* type,int startTime,int endTime,i
const
char
*
compareType
,
const
char
*
compareValue
,
const
char
*
sceneId
,
int
isAnd
);
const
char
*
compareType
,
const
char
*
compareValue
,
const
char
*
sceneId
,
int
isAnd
);
int
kk_scene_insert_scene_info
(
const
char
*
roomName
,
const
char
*
name
,
int
sceneType
,
int
enable
,
const
char
*
sceneId
);
int
kk_scene_insert_scene_info
(
const
char
*
roomName
,
const
char
*
name
,
int
sceneType
,
int
enable
,
const
char
*
sceneId
);
int
kk_scene_update_scene_enable
(
int
enable
,
const
char
*
sceneId
);
int
kk_scene_update_scene_enable
(
int
enable
,
const
char
*
sceneId
);
int
kk_scene_db_init
(
void
);
int
kk_scene_db_init
(
void
);
int
kk_scene_insert_panel_scene_info
(
int
bindType
,
char
*
buttonId
,
char
*
deviceCode
,
const
char
*
sceneId
);
int
kk_scene_delete_quickpanel_info
(
char
*
buttonId
,
char
*
deviceCode
);
int
kk_scene_delete_panel_scene_info
(
char
*
buttonId
,
char
*
deviceCode
);
int
kk_scene_deleteall_panel_scene_info
(
char
*
deviceCode
);
#endif
#endif
midware/midware/scene/kk_scene_handle.c
View file @
f03a7faf
...
@@ -453,7 +453,7 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
...
@@ -453,7 +453,7 @@ int kk_scene_action_add(const char *gwdeviceCode,const char *sceneId,kk_scene_ac
*************************************************************/
*************************************************************/
int
kk_scene_delete_send_to_gw
(
const
char
*
sceneId
)
int
kk_scene_delete_send_to_gw
(
const
char
*
sceneId
)
{
{
char
gwdevice
[][
DEVICE_CODE_MAXLEN
]
=
{
0
};
char
gwdevice
[
5
][
DEVICE_CODE_MAXLEN
]
=
{
0
};
sqlite3_stmt
*
stmt
;
sqlite3_stmt
*
stmt
;
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
char
*
gwdeviceCode
=
NULL
;
char
*
gwdeviceCode
=
NULL
;
...
@@ -1197,6 +1197,34 @@ int kk_scene_get_scene_info(const char* sceneId,int *sceneType,int *enable)
...
@@ -1197,6 +1197,34 @@ int kk_scene_get_scene_info(const char* sceneId,int *sceneType,int *enable)
return
res
;
return
res
;
}
}
/************************************************************
/************************************************************
*功能描述:从数据库获取情景信息
*输入参数:sceneId:对应场景Id;
*输出参数:sceneType:场景类型
enable:场景是否使能
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_scene_get_quickpanel_info
(
const
char
*
buttonId
,
char
*
deviceCode
,
char
*
sceneId
,
int
*
bindType
)
{
kk_scene_ctx_t
*
ctx
=
_kk_scene_get_ctx
();
sqlite3_stmt
*
stmt
;
int
res
=
FAIL_RETURN
;
char
*
pSceneId
=
NULL
;
char
*
sqlCmd
=
NULL
;
sqlCmd
=
sqlite3_mprintf
(
"select * from QuickPanelScene where buttonId = '%s' and deviceCode = '%s'"
,
buttonId
,
deviceCode
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pSceneId
=
sqlite3_column_text
(
stmt
,
DB_QUICKPANEL_SCENEID
);
*
bindType
=
sqlite3_column_int
(
stmt
,
DB_QUICKPANEL_BINDTYPE
);
memcpy
(
sceneId
,
pSceneId
,
strlen
(
pSceneId
));
res
=
SUCCESS_RETURN
;
}
sqlite3_finalize
(
stmt
);
sqlite3_free
(
sqlCmd
);
return
res
;
}
/************************************************************
*功能描述:通过时间获取星期
*功能描述:通过时间获取星期
*输入参数:t:当前时间
*输入参数:t:当前时间
*输出参数:无
*输出参数:无
...
@@ -2022,7 +2050,9 @@ void kk_scene_execute_event_post(const char* sceneId,const char *msgId)
...
@@ -2022,7 +2050,9 @@ void kk_scene_execute_event_post(const char* sceneId,const char *msgId)
return
;
return
;
}
}
if
(
msgId
==
NULL
){
if
(
msgId
==
NULL
){
sprintf
(
msgIdbuf
,
"%d"
,
iotx_report_id
());
//sprintf(msgIdbuf,"%d",iotx_report_id());
iotx_report_id
(
msgIdbuf
);
//sprintf(msgId,"%d",iotx_report_id());
}
}
else
else
{
{
...
@@ -2035,3 +2065,51 @@ void kk_scene_execute_event_post(const char* sceneId,const char *msgId)
...
@@ -2035,3 +2065,51 @@ void kk_scene_execute_event_post(const char* sceneId,const char *msgId)
}
}
}
}
static
int
kk_quickpanel_pro_get
(
const
char
*
sceneId
,
char
*
propertyValue
)
{
int
res
=
FAIL_RETURN
;
char
*
sqlCmd
=
NULL
;
char
*
pPropertyValue
=
NULL
;
sqlite3_stmt
*
stmt
;
kk_scene_ctx_t
*
ctx
=
_kk_scene_get_ctx
();
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneActionInfo WHERE sceneId = '%s'"
,
sceneId
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pPropertyValue
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENEACTION_PROPERTYVALUE
);
memcpy
(
propertyValue
,
pPropertyValue
,
strlen
(
pPropertyValue
));
}
sqlite3_finalize
(
stmt
);
sqlite3_free
(
sqlCmd
);
return
res
;
}
/************************************************************
*功能描述:情景面板执行
*输入参数:buttonId:Id
*输出参数:无
*返 回 值:0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_scene_execute_quickpanel
(
const
char
*
buttonId
,
char
*
deviceCode
)
{
int
res
=
0
;
int
bindType
=
0
;
char
sceneId
[
32
]
=
{
0
};
if
(
buttonId
==
NULL
||
deviceCode
==
NULL
){
return
INVALID_PARAMETER
;
}
res
=
kk_scene_get_quickpanel_info
(
buttonId
,
deviceCode
,
sceneId
,
&
bindType
);
if
(
res
==
SUCCESS_RETURN
){
if
(
bindType
==
4
){
char
provalue
[
4
]
=
{
0
};
kk_quickpanel_pro_get
(
sceneId
,
provalue
);
kk_service_arming_set
(
provalue
);
}
else
{
kk_scene_execute_action
(
sceneId
,
NULL
);
}
}
INFO_PRINT
(
"[%d]kk_scene_execute_quickpanel called!!!
\n
"
,
__LINE__
);
return
res
;
}
\ No newline at end of file
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