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
a8d1c966
You need to sign in or sign up before continuing.
Commit
a8d1c966
authored
Aug 20, 2021
by
尹佳钦
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
8009语音面板控制设备支持:插座,灯控,窗帘
parent
750c1fa7
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
570 additions
and
160 deletions
+570
-160
application/klansdk/kk_data_handle.c
application/klansdk/kk_data_handle.c
+1
-1
application/klansdk/kk_lan_main.c
application/klansdk/kk_lan_main.c
+16
-16
application/klansdk/kk_lan_sync.c
application/klansdk/kk_lan_sync.c
+129
-57
application/klansdk/kk_lan_vp_ctrl.c
application/klansdk/kk_lan_vp_ctrl.c
+109
-7
application/klansdk/kk_voice_panel_cfg.c
application/klansdk/kk_voice_panel_cfg.c
+4
-9
common/hal/HAL_OS_linux.c
common/hal/HAL_OS_linux.c
+1
-1
midware/midware/dm/kk_sync_data.c
midware/midware/dm/kk_sync_data.c
+309
-65
midware/midware/midware.c
midware/midware/midware.c
+1
-4
No files found.
application/klansdk/kk_data_handle.c
View file @
a8d1c966
...
@@ -501,7 +501,7 @@ void KK_Data_FromMid(void* str,int len)
...
@@ -501,7 +501,7 @@ void KK_Data_FromMid(void* str,int len)
arming_status_notify
(
type
);
arming_status_notify
(
type
);
}
}
}
else
{
}
else
{
//
property_post_deal(deviceCode->valuestring,payload);
property_post_deal
(
deviceCode
->
valuestring
,
payload
);
}
}
}
else
if
(
strstr
(
msgtype
->
valuestring
,
"/thing/topo/delete"
)
!=
NULL
){
}
else
if
(
strstr
(
msgtype
->
valuestring
,
"/thing/topo/delete"
)
!=
NULL
){
device_delete_sync
(
payload
);
device_delete_sync
(
payload
);
...
...
application/klansdk/kk_lan_main.c
View file @
a8d1c966
...
@@ -36,30 +36,30 @@
...
@@ -36,30 +36,30 @@
static
char
s_ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
static
char
s_ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
int
kk_lan_get_ccuid
(
_OU_
char
*
device_code
)
int
kk_lan_get_ccuid
(
_OU_
char
*
device_code
)
{
{
strncpy
(
device_code
,
s_ccuid
,
strlen
(
s_ccuid
));
strncpy
(
device_code
,
s_ccuid
,
strlen
(
s_ccuid
));
printf
(
"kk_lan_get_ccuid:%s
\n
"
,
s_ccuid
);
printf
(
"kk_lan_get_ccuid:%s
\n
"
,
s_ccuid
);
return
strlen
(
s_ccuid
);
return
strlen
(
s_ccuid
);
}
}
static
int
_setDevice_Code
(
_IN_
char
*
device_code
,
int
len
)
static
int
_setDevice_Code
(
_IN_
char
*
device_code
,
int
len
)
{
{
memset
(
s_ccuid
,
0x0
,
DEVICE_CODE_LEN
);
memset
(
s_ccuid
,
0x0
,
DEVICE_CODE_LEN
);
printf
(
"_setDevice_Code:%s
\n
"
,
device_code
);
printf
(
"_setDevice_Code:%s
\n
"
,
device_code
);
strncpy
(
s_ccuid
,
device_code
,
len
);
strncpy
(
s_ccuid
,
device_code
,
len
);
return
len
;
return
len
;
}
}
extern
int
HAL_Execel_cmd
(
char
*
cmd
,
char
*
buf
,
int
buf_len
,
int
*
ret_len
);
extern
int
HAL_Execel_cmd
(
char
*
cmd
,
char
*
buf
,
int
buf_len
,
int
*
ret_len
);
static
void
kk_lan_ccuid_init
(
void
)
static
void
kk_lan_ccuid_init
(
void
)
{
{
uint8_t
ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
uint8_t
ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
int
ccuid_len
=
0
;
int
ccuid_len
=
0
;
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
ccuid
,
sizeof
(
ccuid
),
&
ccuid_len
);
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
ccuid
,
sizeof
(
ccuid
),
&
ccuid_len
);
printf
(
"GET_CCUID_CMD:%s
\n
"
,
ccuid
);
printf
(
"GET_CCUID_CMD:%s
\n
"
,
ccuid
);
if
(
ccuid_len
>
0
&&
ccuid_len
<=
DEVICE_CODE_LEN
){
if
(
ccuid_len
>
0
&&
ccuid_len
<=
DEVICE_CODE_LEN
){
_setDevice_Code
((
char
*
)
ccuid
,
ccuid_len
-
1
);
_setDevice_Code
((
char
*
)
ccuid
,
ccuid_len
-
1
);
}
else
{
}
else
{
_setDevice_Code
(
KK_CCU_ID
,
strlen
(
KK_CCU_ID
));
_setDevice_Code
(
KK_CCU_ID
,
strlen
(
KK_CCU_ID
));
}
}
}
}
...
...
application/klansdk/kk_lan_sync.c
View file @
a8d1c966
...
@@ -13,8 +13,7 @@
...
@@ -13,8 +13,7 @@
/*******获取同步数据json*******/
/*******获取同步数据json*******/
static
cJSON
*
kk_get_sync_data
(
cJSON
*
payload
)
static
cJSON
*
kk_get_sync_data
(
cJSON
*
payload
)
{
{
cJSON
*
data
=
cJSON_GetObjectItem
(
payload
,
DATA_STR
);
return
cJSON_GetObjectItem
(
payload
,
DATA_STR
);
return
cJSON_GetObjectItem
(
data
,
DATA_STR
);
}
}
...
@@ -66,6 +65,7 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
...
@@ -66,6 +65,7 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
for
(
i
=
0
;
i
<
num
;
i
++
,
item
++
){
for
(
i
=
0
;
i
<
num
;
i
++
,
item
++
){
room
=
cJSON_GetArrayItem
(
rooms
,
i
);
room
=
cJSON_GetArrayItem
(
rooms
,
i
);
roomId
=
cJSON_GetObjectItem
(
room
,
ROOMS_ID_STR
);
roomId
=
cJSON_GetObjectItem
(
room
,
ROOMS_ID_STR
);
name
=
cJSON_GetObjectItem
(
room
,
NAME_STR
);
name
=
cJSON_GetObjectItem
(
room
,
NAME_STR
);
devices
=
cJSON_GetObjectItem
(
room
,
DEVICES_STR
);
devices
=
cJSON_GetObjectItem
(
room
,
DEVICES_STR
);
...
@@ -79,6 +79,9 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
...
@@ -79,6 +79,9 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
item
->
room_status
=
NULL
;
item
->
room_status
=
NULL
;
}
}
roomsAry
=
_kk_syn_rooms_info
(
num
,
items
);
roomsAry
=
_kk_syn_rooms_info
(
num
,
items
);
cJSON_AddItemToObject
(
root
,
ROOMS_STR
,
roomsAry
);
cJSON_AddItemToObject
(
root
,
ROOMS_STR
,
roomsAry
);
return
root
;
return
root
;
...
@@ -172,6 +175,7 @@ int kk_sync_actions(cJSON *actions,SYN_SCENE_ACTION **act,char **room_id)
...
@@ -172,6 +175,7 @@ int kk_sync_actions(cJSON *actions,SYN_SCENE_ACTION **act,char **room_id)
for
(
i
=
0
;
i
<
num
;
i
++
,
ptr
++
){
for
(
i
=
0
;
i
<
num
;
i
++
,
ptr
++
){
cJSON
*
item
;
cJSON
*
item
;
item
=
cJSON_GetArrayItem
(
actions
,
i
);
item
=
cJSON_GetArrayItem
(
actions
,
i
);
...
@@ -206,13 +210,18 @@ int kk_sync_actions(cJSON *actions,SYN_SCENE_ACTION **act,char **room_id)
...
@@ -206,13 +210,18 @@ int kk_sync_actions(cJSON *actions,SYN_SCENE_ACTION **act,char **room_id)
static
int
kk_sync_scene_condition
(
cJSON
*
condition
,
SYN_SCENE_ITEM
**
build
)
static
int
kk_sync_scene_condition
(
cJSON
*
condition
,
SYN_SCENE_ITEM
**
build
)
{
{
cJSON
*
itemAry
=
NULL
;
cJSON
*
startTime
,
*
endTime
,
*
crossDay
,
*
repeat_days
;
cJSON
*
startTime
,
*
endTime
,
*
crossDay
,
*
repeat_days
;
if
(
condition
==
NULL
||
build
==
NULL
||*
build
==
NULL
){
if
(
condition
==
NULL
||
build
==
NULL
||*
build
==
NULL
){
return
-
1
;
return
-
1
;
}
}
if
((
itemAry
=
cJSON_GetObjectItem
(
condition
,
"items"
))
==
NULL
){
return
-
1
;
}
int
i
,
j
,
num
=
cJSON_GetArraySize
(
condition
);
int
i
,
j
,
num
=
cJSON_GetArraySize
(
itemAry
);
int
repeat
;
int
repeat
;
int
get_flag
=
0
;
int
get_flag
=
0
;
...
@@ -265,7 +274,10 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
...
@@ -265,7 +274,10 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
cJSON
*
scenesAry
=
cJSON_CreateArray
();
cJSON
*
scenesAry
=
cJSON_CreateArray
();
cJSON
*
sceneItem
;
cJSON
*
sceneItem
;
for
(
i
=
0
;
i
<
num
;
i
++
,
build
++
){
SYN_SCENE_ITEM
*
pScene
=
build
;
for
(
i
=
0
;
i
<
num
;
i
++
,
pScene
++
){
printf
(
"i=%d
\n
"
,
i
);
cJSON
*
item
=
cJSON_GetArrayItem
(
scenes
,
i
);
cJSON
*
item
=
cJSON_GetArrayItem
(
scenes
,
i
);
actions
=
cJSON_GetObjectItem
(
item
,
ACTIONS_STR
);
actions
=
cJSON_GetObjectItem
(
item
,
ACTIONS_STR
);
enable
=
cJSON_GetObjectItem
(
item
,
ENABLE_STR
);
enable
=
cJSON_GetObjectItem
(
item
,
ENABLE_STR
);
...
@@ -301,17 +313,20 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
...
@@ -301,17 +313,20 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
}
}
//同步设备
//同步设备
int
kk_sync_devices_to_sdk
(
cJSON
*
root
)
int
_kk_sync_device_item
(
cJSON
*
deviceCode
,
cJSON
*
epNum
,
cJSON
*
name
,
cJSON
*
roomId
,
cJSON
*
deviceAry
)
{
{
kk_map_dev_node_t
*
node
=
NULL
;
kk_map_dev_node_t
*
node
=
NULL
;
char
nodeid
[
32
]
=
{
0
};
char
nodeid
[
32
]
=
{
0
};
char
gwmac
[
32
]
=
{
0
};
char
gwmac
[
32
]
=
{
0
};
char
submac
[
32
]
=
{
0
};
char
submac
[
32
]
=
{
0
};
char
channel
[
4
]
=
{
0
};
int
idx
=
1
;
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
cJSON
*
devices
=
cJSON_CreateArray
();
if
(
deviceCode
==
NULL
||
deviceAry
==
NULL
){
return
-
1
;
}
list_for_each_entry
(
node
,
&
ctx
->
dev_list
,
linked_list
,
kk_map_dev_node_t
)
{
list_for_each_entry
(
node
,
&
ctx
->
dev_list
,
linked_list
,
kk_map_dev_node_t
)
{
if
(
node
!=
NULL
)
{
if
(
node
!=
NULL
)
{
if
(
strlen
(
node
->
deviceCode
)
==
strlen
(
deviceCode
->
valuestring
)
&&
if
(
strlen
(
node
->
deviceCode
)
==
strlen
(
deviceCode
->
valuestring
)
&&
...
@@ -320,10 +335,10 @@ int kk_sync_devices_to_sdk(cJSON *root)
...
@@ -320,10 +335,10 @@ int kk_sync_devices_to_sdk(cJSON *root)
if
(
epNum
==
NULL
||
epNum
->
type
!=
cJSON_String
){
if
(
epNum
==
NULL
||
epNum
->
type
!=
cJSON_String
){
cJSON_AddStringToObject
(
subdevicesItem
,
CHANNEL_STRING
,
"1"
);
cJSON_AddStringToObject
(
subdevicesItem
,
CHANNEL_STRING
,
"1"
);
kk_creater_nodeid
(
node
->
deviceCode
,
1
,
nodeid
,
atoi
(
node
->
opearteType
)
);
kk_creater_nodeid
(
node
->
deviceCode
,
1
,
nodeid
);
}
else
{
}
else
{
cJSON_AddStringToObject
(
subdevicesItem
,
CHANNEL_STRING
,
epNum
->
valuestring
);
cJSON_AddStringToObject
(
subdevicesItem
,
CHANNEL_STRING
,
epNum
->
valuestring
);
kk_creater_nodeid
(
node
->
deviceCode
,
atoi
(
epNum
->
valuestring
),
nodeid
,
atoi
(
node
->
opearteType
)
);
kk_creater_nodeid
(
node
->
deviceCode
,
atoi
(
epNum
->
valuestring
),
nodeid
);
}
}
cJSON_AddStringToObject
(
subdevicesItem
,
NODEID_STRING
,
nodeid
);
cJSON_AddStringToObject
(
subdevicesItem
,
NODEID_STRING
,
nodeid
);
...
@@ -350,7 +365,6 @@ int kk_sync_devices_to_sdk(cJSON *root)
...
@@ -350,7 +365,6 @@ int kk_sync_devices_to_sdk(cJSON *root)
cJSON_AddStringToObject
(
subdevicesItem
,
MAC_STRING
,
submac
);
cJSON_AddStringToObject
(
subdevicesItem
,
MAC_STRING
,
submac
);
cJSON_AddStringToObject
(
subdevicesItem
,
OPERATE_TYPE_STRING
,
node
->
opearteType
);
cJSON_AddStringToObject
(
subdevicesItem
,
OPERATE_TYPE_STRING
,
node
->
opearteType
);
cJSON_AddItemToArray
(
deviceAry
,
subdevicesItem
);
cJSON_AddItemToArray
(
deviceAry
,
subdevicesItem
);
}
}
}
}
...
@@ -374,6 +388,7 @@ int kk_sync_device(cJSON *roomId,cJSON *inDevAry,cJSON *outDevAry)
...
@@ -374,6 +388,7 @@ int kk_sync_device(cJSON *roomId,cJSON *inDevAry,cJSON *outDevAry)
num
=
cJSON_GetArraySize
(
inDevAry
);
num
=
cJSON_GetArraySize
(
inDevAry
);
for
(
i
=
0
;
i
<
num
;
i
++
){
for
(
i
=
0
;
i
<
num
;
i
++
){
printf
(
"...i=%d
\n
"
,
i
);
cJSON
*
item
=
cJSON_GetArrayItem
(
inDevAry
,
i
);
cJSON
*
item
=
cJSON_GetArrayItem
(
inDevAry
,
i
);
deviceCode
=
cJSON_GetObjectItem
(
item
,
"deviceCode"
);
deviceCode
=
cJSON_GetObjectItem
(
item
,
"deviceCode"
);
epNum
=
cJSON_GetObjectItem
(
item
,
"epNum"
);
epNum
=
cJSON_GetObjectItem
(
item
,
"epNum"
);
...
@@ -392,11 +407,16 @@ int kk_sync_devices_to_sdk(cJSON *root,cJSON *data)
...
@@ -392,11 +407,16 @@ int kk_sync_devices_to_sdk(cJSON *root,cJSON *data)
int
i
,
num
=
cJSON_GetArraySize
(
rooms
);
int
i
,
num
=
cJSON_GetArraySize
(
rooms
);
cJSON
*
roomId
,
*
devices
;
cJSON
*
roomId
,
*
devices
;
printf
(
"kk_sync_devices_to_sdk,num=%d
\n
"
,
num
);
for
(
i
=
0
;
i
<
num
;
i
++
){
for
(
i
=
0
;
i
<
num
;
i
++
){
printf
(
"i=%d
\n
"
,
i
);
cJSON
*
room
=
cJSON_GetArrayItem
(
rooms
,
i
);
cJSON
*
room
=
cJSON_GetArrayItem
(
rooms
,
i
);
roomId
=
cJSON_GetObjectItem
(
room
,
ROOMS_ID_STR
);
roomId
=
cJSON_GetObjectItem
(
room
,
ROOMS_ID_STR
);
devices
=
cJSON_GetObjectItem
(
room
,
DEVICES_STR
);
devices
=
cJSON_GetObjectItem
(
room
,
DEVICES_STR
);
printf
(
"devices...=%s
\n
"
,
cJSON_Print
(
devices
));
kk_sync_device
(
roomId
,
devices
,
deviceAry
);
kk_sync_device
(
roomId
,
devices
,
deviceAry
);
}
}
...
@@ -413,7 +433,6 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
...
@@ -413,7 +433,6 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
cJSON
*
newccu
,
*
oldccu
;
cJSON
*
newccu
,
*
oldccu
;
cJSON
*
arg
=
cJSON_CreateObject
();
cJSON
*
arg
=
cJSON_CreateObject
();
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
if
(
node
==
NULL
||
node
->
syn_type
!=
1
||
node
->
syn_opcode
==
NULL
){
if
(
node
==
NULL
||
node
->
syn_type
!=
1
||
node
->
syn_opcode
==
NULL
){
return
arg
;
return
arg
;
...
@@ -478,7 +497,6 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta
...
@@ -478,7 +497,6 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta
cJSON
*
newccu
=
NULL
,
*
oldccu
=
NULL
;
cJSON
*
newccu
=
NULL
,
*
oldccu
=
NULL
;
cJSON
*
dev_status
=
NULL
;
cJSON
*
dev_status
=
NULL
;
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
if
(
node
==
NULL
||
devStatusAry
==
NULL
||
index
==
NULL
){
if
(
node
==
NULL
||
devStatusAry
==
NULL
||
index
==
NULL
){
return
-
1
;
return
-
1
;
...
@@ -513,7 +531,7 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta
...
@@ -513,7 +531,7 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta
dev_status
=
cJSON_CreateObject
();
dev_status
=
cJSON_CreateObject
();
add_val_to_obj
(
dev_status
,
val
,
"arg"
);
add_val_to_obj
(
dev_status
,
val
,
"arg"
);
kk_creater_nodeid
(
node
->
deviceCode
,
atoi
(
epNum
->
valuestring
),
nodeid
,
atoi
(
node
->
opearteType
)
);
kk_creater_nodeid
(
node
->
deviceCode
,
atoi
(
epNum
->
valuestring
),
nodeid
);
cJSON_AddStringToObject
(
dev_status
,
OPCODE_STRING
,
opcode
->
valuestring
);
cJSON_AddStringToObject
(
dev_status
,
OPCODE_STRING
,
opcode
->
valuestring
);
cJSON_AddNumberToObject
(
dev_status
,
NODEID_STRING
,
atoi
(
nodeid
));
cJSON_AddNumberToObject
(
dev_status
,
NODEID_STRING
,
atoi
(
nodeid
));
...
@@ -551,7 +569,7 @@ static int _kk_sync_devices_status_arg_obj(kk_map_dev_node_t *node,cJSON *devSta
...
@@ -551,7 +569,7 @@ static int _kk_sync_devices_status_arg_obj(kk_map_dev_node_t *node,cJSON *devSta
cJSON_AddItemToObject
(
dev_status
,
ARG_STRING
,
arg
);
cJSON_AddItemToObject
(
dev_status
,
ARG_STRING
,
arg
);
cJSON_AddStringToObject
(
dev_status
,
OPCODE_STRING
,
node
->
syn_opcode
);
cJSON_AddStringToObject
(
dev_status
,
OPCODE_STRING
,
node
->
syn_opcode
);
kk_creater_nodeid
(
node
->
deviceCode
,
1
,
nodeid
,
atoi
(
node
->
opearteType
)
);
kk_creater_nodeid
(
node
->
deviceCode
,
1
,
nodeid
);
cJSON_AddNumberToObject
(
dev_status
,
NODEID_STRING
,
atoi
(
nodeid
));
cJSON_AddNumberToObject
(
dev_status
,
NODEID_STRING
,
atoi
(
nodeid
));
memset
(
indexId
,
0
,
sizeof
(
indexId
));
memset
(
indexId
,
0
,
sizeof
(
indexId
));
...
@@ -571,6 +589,7 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
...
@@ -571,6 +589,7 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
kk_map_dev_node_t
*
n
=
NULL
;
kk_map_dev_node_t
*
n
=
NULL
;
cJSON
*
devStatusAry
=
cJSON_CreateArray
();
cJSON
*
devStatusAry
=
cJSON_CreateArray
();
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
_kk_map_dev_mutex_lock
();
_kk_map_dev_mutex_lock
();
list_for_each_entry_safe
(
node
,
n
,
&
ctx
->
dev_list
,
linked_list
,
kk_map_dev_node_t
){
list_for_each_entry_safe
(
node
,
n
,
&
ctx
->
dev_list
,
linked_list
,
kk_map_dev_node_t
){
...
@@ -585,7 +604,7 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
...
@@ -585,7 +604,7 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
}
}
}
}
_kk_map_dev_mutex_unlock
();
cJSON_AddItemToObject
(
root
,
DEVICE_STATUS_STRING
,
devStatusAry
);
cJSON_AddItemToObject
(
root
,
DEVICE_STATUS_STRING
,
devStatusAry
);
...
@@ -657,65 +676,94 @@ typedef struct{
...
@@ -657,65 +676,94 @@ typedef struct{
char
*
nodeId
;
char
*
nodeId
;
char
*
sensor_type
;
char
*
sensor_type
;
}
SYN_GUARD_SENSORS
;
}
SYN_GUARD_SENSORS
;
static
cJSON
*
_kk_guard_sensors_build
(
int
num
,
SYN_GUARD_SENSORS
*
sensors
)
static
int
_kk_guard_sensors_build
(
cJSON
*
guard_sensors
,
int
num
,
SYN_GUARD_SENSORS
*
sensors
)
{
{
int
i
;
int
i
;
cJSON
*
item
;
SYN_GUARD_SENSORS
*
pSensor
;
cJSON
*
guard_sensors
=
cJSON_CreateArray
();
SYN_GUARD_SENSORS
*
pSensor
=
sensors
;
if
(
num
<=
0
||
sensors
==
NULL
){
return
-
1
;
}
pSensor
=
sensors
;
for
(
i
=
0
;
i
<
num
;
i
++
,
pSensor
++
){
for
(
i
=
0
;
i
<
num
;
i
++
,
pSensor
++
){
item
=
cJSON_CreateObject
();
cJSON
*
item
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
item
,
"nodeid"
,(
pSensor
->
nodeId
)
?
pSensor
->
nodeId
:
"-1"
);
cJSON_AddStringToObject
(
item
,
"nodeid"
,(
pSensor
->
nodeId
)
?
pSensor
->
nodeId
:
"-1"
);
cJSON_AddStringToObject
(
item
,
"sensor_type"
,(
pSensor
->
sensor_type
)
?
pSensor
->
sensor_type
:
"0"
);
cJSON_AddStringToObject
(
item
,
"sensor_type"
,(
pSensor
->
sensor_type
)
?
pSensor
->
sensor_type
:
"0"
);
cJSON_AddItemToArray
(
guard_sensors
,
item
);
cJSON_AddItemToArray
(
guard_sensors
,
item
);
}
}
return
guard_sensors
;
return
0
;
}
}
static
cJSON
*
_kk_guard_custom_zone_build
(
int
num
,
char
*
roomId
)
{
int
i
;
cJSON
*
custom_guard_zone
=
cJSON_CreateArray
();
char
*
pRoomId
=
roomId
;
for
(
i
=
0
;
i
<
num
;
i
++
,
pRoomId
++
){
cJSON_AddItemToArray
(
custom_guard_zone
,
cJSON_CreateString
(
pRoomId
));
}
return
custom_guard_zone
;
}
int
kk_sync_guard_to_sdk
(
cJSON
*
root
,
cJSON
*
data
)
cJSON
*
kk_sync_guard_to_sdk
(
cJSON
*
root
,
cJSON
*
data
)
{
{
char
modeStr
[
8
]
=
{
0
}
;
char
*
armingStr
=
NULL
;
cJSON
*
guard
=
cJSON_CreateObject
();
cJSON
*
guard
=
cJSON_CreateObject
();
cJSON
*
custom_guard_zone
;
cJSON
*
custom_guard_zone
=
cJSON_CreateArray
();
cJSON
*
guard_sensors
;
cJSON
*
guard_sensors
=
cJSON_CreateArray
();
//todo 撤防布防
int
guardMode
=
0
;
snprintf
(
modeStr
,
sizeof
(
modeStr
),
"%d"
,
guardMode
);
cJSON_AddStringToObject
(
guard
,
"arming_status"
,
modeStr
);
cJSON
*
properties
=
cJSON_GetObjectItem
(
data
,
"properties"
);
cJSON
*
ArmingState
=
NULL
,
*
RoomIdsAry
=
NULL
;
SYN_GUARD_SENSORS
sensors
;
sensors
.
nodeId
=
malloc
(
10
);
cJSON_AddStringToObject
(
guard
,
"arming_status"
,
"1"
);
memset
(
sensors
.
nodeId
,
0
,
10
);
cJSON_AddItemToObject
(
guard
,
"custom_guard_zone"
,
custom_guard_zone
);
memcpy
(
sensors
.
nodeId
,
"1234"
,
strlen
(
"1234"
));
cJSON_AddItemToObject
(
guard
,
"guard_sensors"
,
guard_sensors
);
sensors
.
sensor_type
=
malloc
(
10
);
memset
(
sensors
.
sensor_type
,
0
,
10
);
memcpy
(
sensors
.
sensor_type
,
"5678"
,
strlen
(
"5678"
));
guard_sensors
=
_kk_guard_sensors_build
(
1
,
&
sensors
);
char
roomId
[
12
]
=
"abcd"
;
custom_guard_zone
=
_kk_guard_custom_zone_build
(
1
,
roomId
);
cJSON_AddItemToObject
(
guard
,
"custom_guard_zone"
,
custom_guard_zone
);
cJSON_AddItemToObject
(
guard
,
"guard_sensors"
,
guard_sensors
);
cJSON_AddItemToObject
(
root
,
"guard"
,
guard
);
cJSON_AddItemToObject
(
root
,
"guard"
,
guard
);
if
(
properties
==
NULL
||
properties
->
type
!=
cJSON_Object
){
return
-
1
;
}
ArmingState
=
cJSON_GetObjectItem
(
properties
,
"ArmingState"
);
if
(
ArmingState
==
NULL
||
ArmingState
->
type
!=
cJSON_Number
){
return
-
1
;
}
/*
"0": "离家布防",
"1": "撤防",
"2": "在家布防",
"3": "区域布防"
*/
//1:离家布防,2:撤防,3:在家布防,4:自定义防区布防。
if
(
ArmingState
->
valueint
==
0
){
armingStr
=
"1"
;
}
else
if
(
ArmingState
->
valueint
==
2
){
armingStr
=
"3"
;
}
else
if
(
ArmingState
->
valueint
==
3
){
armingStr
=
"4"
;
}
else
{
armingStr
=
"2"
;
}
cJSON_ReplaceItemInObject
(
guard
,
"arming_status"
,
cJSON_CreateString
(
armingStr
));
if
(
ArmingState
->
valueint
==
3
){
int
i
,
num
;
cJSON
*
item
=
NULL
;
char
roomIdStr
[
16
]
=
{
0
};
RoomIdsAry
=
cJSON_GetObjectItem
(
properties
,
"RoomIds"
);
if
(
RoomIdsAry
==
NULL
||
RoomIdsAry
->
type
!=
cJSON_Array
){
return
-
1
;
}
num
=
cJSON_GetArraySize
(
RoomIdsAry
);
for
(
i
=
0
;
i
<
num
;
i
++
){
item
=
cJSON_GetArrayItem
(
RoomIdsAry
,
i
);
if
(
item
->
type
!=
cJSON_Number
){
continue
;
}
memset
(
roomIdStr
,
0
,
sizeof
(
roomIdStr
));
snprintf
(
roomIdStr
,
sizeof
(
roomIdStr
),
"%d"
,
item
->
valueint
);
cJSON_AddItemToArray
(
custom_guard_zone
,
cJSON_CreateString
(
roomIdStr
));
}
}
//新中控同步接口未有安防类传感器列表,故只保留实现接口,未具体实现转换
_kk_guard_sensors_build
(
guard_sensors
,
-
1
,
NULL
);
return
0
;
}
}
...
@@ -1014,6 +1062,7 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
...
@@ -1014,6 +1062,7 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
cJSON
*
code_lib_controllers
;
cJSON
*
code_lib_controllers
;
cJSON
*
controllers
;
cJSON
*
controllers
;
cJSON
*
expand_rules
;
cJSON
*
expand_rules
;
cJSON
*
data
=
kk_get_sync_data
(
payload
);
char
*
out
=
NULL
;
char
*
out
=
NULL
;
printf
(
"!!!!!!!!!!!!!!!!!!!!------>%x
\n
"
,
&
out
);
printf
(
"!!!!!!!!!!!!!!!!!!!!------>%x
\n
"
,
&
out
);
...
@@ -1031,48 +1080,71 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
...
@@ -1031,48 +1080,71 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
cJSON_AddItemToObject
(
root
,
"ccu_link_status"
,
ccu_link_status
);
cJSON_AddItemToObject
(
root
,
"ccu_link_status"
,
ccu_link_status
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cnwise_music_controllers
=
cJSON_CreateArray
();
cnwise_music_controllers
=
cJSON_CreateArray
();
cJSON_AddItemToObject
(
root
,
"cnwise_music_controllers"
,
cnwise_music_controllers
);
cJSON_AddItemToObject
(
root
,
"cnwise_music_controllers"
,
cnwise_music_controllers
);
code_lib_controllers
=
cJSON_CreateArray
();
code_lib_controllers
=
cJSON_CreateArray
();
cJSON_AddItemToObject
(
root
,
"code_lib_controllers"
,
code_lib_controllers
);
cJSON_AddItemToObject
(
root
,
"code_lib_controllers"
,
code_lib_controllers
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
controllers
=
cJSON_CreateArray
();
controllers
=
cJSON_CreateArray
();
cJSON_AddItemToObject
(
root
,
"controllers"
,
controllers
);
cJSON_AddItemToObject
(
root
,
"controllers"
,
controllers
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_sync_devices_status_to_sdk
(
root
);
kk_sync_devices_status_to_sdk
(
root
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_sync_devices_to_sdk
(
root
,
data
);
kk_sync_devices_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_rooms_to_sdk
(
root
,
data
);
kk_sync_rooms_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_scence_to_sdk
(
root
,
data
);
kk_sync_scence_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_gw_version_to_sdk
(
root
,
data
);
kk_sync_gw_version_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_ccu_version_to_sdk
(
root
,
data
);
kk_sync_ccu_version_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_guard_to_sdk
(
root
,
data
);
kk_sync_guard_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_sync_central_ac_to_sdk
(
root
,
data
);
kk_sync_central_ac_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_central_ac_indoorunits_to_sdk
(
root
,
data
);
kk_sync_central_ac_indoorunits_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_groups_to_sdk
(
root
,
data
);
kk_sync_groups_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_create_floors_to_sdk
(
root
,
data
);
kk_create_floors_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
#if 1
#if 1
...
...
application/klansdk/kk_lan_vp_ctrl.c
View file @
a8d1c966
...
@@ -2,12 +2,34 @@
...
@@ -2,12 +2,34 @@
#include "kk_lan_vp_ctrl.h"
#include "kk_lan_vp_ctrl.h"
#include "cJSON.h"
#include "cJSON.h"
cJSON
*
PowerSwitch_msg_build
(
int
ep
,
int
onoff
)
{
char
epNum
[
12
]
=
{
0
};
cJSON
*
params
=
cJSON_CreateObject
();
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
memset
(
epNum
,
0
,
sizeof
(
epNum
));
snprintf
(
epNum
,
sizeof
(
epNum
),
"%d"
,
ep
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
params
,
"epNum"
,
epNum
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddNumberToObject
(
params
,
"PowerSwitch"
,
onoff
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
return
params
;
}
static
int
is_light_dev
(
int
pid
);
static
int
is_light_dev
(
int
pid
);
static
cJSON
*
light_dev
(
int
ep
,
int
onoff
);
static
cJSON
*
light_dev
(
int
ep
,
int
onoff
);
static
cJSON
*
light_dev_handle
(
int
ep
,
uint8_t
*
arg
);
static
cJSON
*
light_dev_handle
(
int
ep
,
uint8_t
*
arg
);
static
int
is_curtain_dev
(
int
pid
);
static
cJSON
*
curtain_dev_msg_build
(
int
ep
,
int
OperationMode
);
static
cJSON
*
curtain_dev_handle
(
int
ep
,
uint8_t
*
arg
);
static
int
is_outlet_dev
(
int
pid
);
static
cJSON
*
outlet_msg_build
(
int
ep
,
int
onoff
);
static
cJSON
*
outlet_dev_handle
(
int
ep
,
uint8_t
*
arg
);
typedef
int
(
*
pid_mth_func
)(
int
pid
);
typedef
int
(
*
pid_mth_func
)(
int
pid
);
typedef
cJSON
*
(
*
dev_handle
)(
int
ep
,
uint8_t
*
arg
);
typedef
cJSON
*
(
*
dev_handle
)(
int
ep
,
uint8_t
*
arg
);
...
@@ -18,13 +40,24 @@ typedef struct{
...
@@ -18,13 +40,24 @@ typedef struct{
}
KK_VP_CTRL
;
}
KK_VP_CTRL
;
static
KK_VP_CTRL
vp_ctrl_table
[]
=
{
static
KK_VP_CTRL
vp_ctrl_table
[]
=
{
{
is_light_dev
,
light_dev_handle
}
{
is_light_dev
,
light_dev_handle
},
{
is_curtain_dev
,
curtain_dev_handle
},
{
is_outlet_dev
,
outlet_dev_handle
}
};
};
static
int
light_dev_pid
[]
=
{
static
int
light_dev_pid
[]
=
{
3023
,
3024
3023
,
3024
};
};
static
int
curtain_dev_pid
[]
=
{
3067
};
static
int
outlet_dev_pid
[]
=
{
3020
};
static
int
is_light_dev
(
int
pid
)
static
int
is_light_dev
(
int
pid
)
{
{
int
i
;
int
i
;
...
@@ -36,7 +69,53 @@ static int is_light_dev(int pid)
...
@@ -36,7 +69,53 @@ static int is_light_dev(int pid)
return
0
;
return
0
;
}
}
cJSON
*
light_dev_msg_build
(
int
ep
,
int
onoff
)
static
int
is_curtain_dev
(
int
pid
)
{
int
i
;
for
(
i
=
0
;
i
<
sizeof
(
curtain_dev_pid
)
/
sizeof
(
int
);
i
++
){
if
(
pid
==
curtain_dev_pid
[
i
]){
return
1
;
}
}
return
0
;
}
static
int
is_outlet_dev
(
int
pid
)
{
int
i
;
for
(
i
=
0
;
i
<
sizeof
(
outlet_dev_pid
)
/
sizeof
(
int
);
i
++
){
if
(
pid
==
outlet_dev_pid
[
i
]){
return
1
;
}
}
return
0
;
}
static
cJSON
*
light_msg_build
(
int
ep
,
int
onoff
)
{
return
PowerSwitch_msg_build
(
ep
,
onoff
);
}
static
cJSON
*
light_dev_handle
(
int
ep
,
uint8_t
*
arg
)
{
uint8_t
skill_type
=
arg
[
0
];
printf
(
"[%s][%d]skill_type=%d,ep=%d
\n
"
,
__FUNCTION__
,
__LINE__
,
skill_type
,
ep
);
switch
(
skill_type
){
case
VP_CTRL_OPEN
:
//
return
light_msg_build
(
ep
,
1
);
case
VP_CTRL_CLOSE
:
return
light_msg_build
(
ep
,
0
);
default:
break
;
}
return
NULL
;
}
static
cJSON
*
curtain_dev_msg_build
(
int
ep
,
int
OperationMode
)
{
{
char
epNum
[
12
]
=
{
0
};
char
epNum
[
12
]
=
{
0
};
cJSON
*
params
=
cJSON_CreateObject
();
cJSON
*
params
=
cJSON_CreateObject
();
...
@@ -47,20 +126,43 @@ cJSON *light_dev_msg_build(int ep,int onoff)
...
@@ -47,20 +126,43 @@ cJSON *light_dev_msg_build(int ep,int onoff)
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
params
,
"epNum"
,
epNum
);
cJSON_AddStringToObject
(
params
,
"epNum"
,
epNum
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddNumberToObject
(
params
,
"
PowerSwitch"
,
onoff
);
cJSON_AddNumberToObject
(
params
,
"
OperationMode"
,
OperationMode
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
return
params
;
return
params
;
}
}
static
cJSON
*
light_dev_handle
(
int
ep
,
uint8_t
*
arg
)
static
cJSON
*
curtain_dev_handle
(
int
ep
,
uint8_t
*
arg
)
{
uint8_t
skill_type
=
arg
[
0
];
printf
(
"[%s][%d]skill_type=%d,ep=%d
\n
"
,
__FUNCTION__
,
__LINE__
,
skill_type
,
ep
);
switch
(
skill_type
){
case
VP_CTRL_OPEN
:
//
return
curtain_dev_msg_build
(
ep
,
1
);
case
VP_CTRL_CLOSE
:
return
curtain_dev_msg_build
(
ep
,
0
);
case
VP_CTRL_STOP
:
return
curtain_dev_msg_build
(
ep
,
2
);
default:
break
;
}
return
NULL
;
}
static
cJSON
*
outlet_msg_build
(
int
ep
,
int
onoff
)
{
return
PowerSwitch_msg_build
(
ep
,
onoff
);
}
static
cJSON
*
outlet_dev_handle
(
int
ep
,
uint8_t
*
arg
)
{
{
uint8_t
skill_type
=
arg
[
0
];
uint8_t
skill_type
=
arg
[
0
];
printf
(
"[%s][%d]skill_type=%d,ep=%d
\n
"
,
__FUNCTION__
,
__LINE__
,
skill_type
,
ep
);
printf
(
"[%s][%d]skill_type=%d,ep=%d
\n
"
,
__FUNCTION__
,
__LINE__
,
skill_type
,
ep
);
switch
(
skill_type
){
switch
(
skill_type
){
case
VP_CTRL_OPEN
:
//
case
VP_CTRL_OPEN
:
//
return
light_dev
_msg_build
(
ep
,
1
);
return
outlet
_msg_build
(
ep
,
1
);
case
VP_CTRL_CLOSE
:
case
VP_CTRL_CLOSE
:
return
light_dev
_msg_build
(
ep
,
0
);
return
outlet
_msg_build
(
ep
,
0
);
default:
break
;
default:
break
;
}
}
return
NULL
;
return
NULL
;
...
...
application/klansdk/kk_voice_panel_cfg.c
View file @
a8d1c966
...
@@ -228,7 +228,7 @@ static int kk_vp_get_device_name(_IN cJSON *devices,_IN const char*epNum,_IN con
...
@@ -228,7 +228,7 @@ static int kk_vp_get_device_name(_IN cJSON *devices,_IN const char*epNum,_IN con
{
{
int
i
=
0
,
devNum
=
0
;
int
i
=
0
,
devNum
=
0
;
cJSON
*
name
=
NULL
;
cJSON
*
name
=
NULL
;
cJSON
*
deviceItem
=
NULL
,
*
devCodeObj
=
NULL
,
*
epNumObj
=
NULL
;
cJSON
*
deviceItem
=
NULL
,
*
devCodeObj
=
NULL
;
devNum
=
cJSON_GetArraySize
(
devices
);
devNum
=
cJSON_GetArraySize
(
devices
);
printf
(
"[%s][%d]devNum=%d
\n
"
,
__FUNCTION__
,
__LINE__
,
devNum
);
printf
(
"[%s][%d]devNum=%d
\n
"
,
__FUNCTION__
,
__LINE__
,
devNum
);
...
@@ -239,24 +239,19 @@ static int kk_vp_get_device_name(_IN cJSON *devices,_IN const char*epNum,_IN con
...
@@ -239,24 +239,19 @@ static int kk_vp_get_device_name(_IN cJSON *devices,_IN const char*epNum,_IN con
continue
;
continue
;
}
}
epNumObj
=
cJSON_GetObjectItem
(
deviceItem
,
"epNum"
);
devCodeObj
=
cJSON_GetObjectItem
(
deviceItem
,
"deviceCode"
);
devCodeObj
=
cJSON_GetObjectItem
(
deviceItem
,
"deviceCode"
);
if
(
epNumObj
==
NULL
||
epNumObj
->
type
!=
cJSON_String
||
if
(
devCodeObj
==
NULL
||
devCodeObj
->
type
!=
cJSON_String
){
devCodeObj
==
NULL
||
devCodeObj
->
type
!=
cJSON_String
){
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
continue
;
continue
;
}
}
printf
(
"[%s][%d]%d,%d,%s,%s
\n
"
,
__FUNCTION__
,
__LINE__
,
strlen
(
devCodeObj
->
valuestring
),
printf
(
"[%s][%d]%d,%d,%s,%s
\n
"
,
__FUNCTION__
,
__LINE__
,
strlen
(
devCodeObj
->
valuestring
),
strlen
(
deviceCode
),
devCodeObj
->
valuestring
,
deviceCode
);
strlen
(
deviceCode
),
devCodeObj
->
valuestring
,
deviceCode
);
printf
(
"[%s][%d]%d,%d,%s,%s
\n
"
,
__FUNCTION__
,
__LINE__
,
strlen
(
epNumObj
->
valuestring
),
strlen
(
epNum
),
epNumObj
->
valuestring
,
epNum
);
if
((
strlen
(
devCodeObj
->
valuestring
)
==
strlen
(
deviceCode
))
&&
if
((
strlen
(
devCodeObj
->
valuestring
)
==
strlen
(
deviceCode
))
&&
!
strcmp
(
devCodeObj
->
valuestring
,
deviceCode
)
&&
!
strcmp
(
devCodeObj
->
valuestring
,
deviceCode
)){
(
strlen
(
epNumObj
->
valuestring
)
==
strlen
(
epNum
))
&&
!
strcmp
(
epNumObj
->
valuestring
,
epNum
)){
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
if
((
name
=
cJSON_GetObjectItem
(
deviceItem
,
"name"
))
!=
NULL
&&
if
((
name
=
cJSON_GetObjectItem
(
deviceItem
,
"name"
))
!=
NULL
&&
...
...
common/hal/HAL_OS_linux.c
View file @
a8d1c966
...
@@ -60,7 +60,7 @@ int HAL_Execel_cmd(char * cmd,char * buf,int buf_len,int* ret_len)
...
@@ -60,7 +60,7 @@ int HAL_Execel_cmd(char * cmd,char * buf,int buf_len,int* ret_len)
}
}
void
*
HAL_Malloc
(
_IN_
uint32_t
size
)
void
*
HAL_Malloc
(
_IN_
uint32_t
size
)
{
{
return
malloc
(
size
);
return
malloc
(
size
);
}
}
void
*
HAL_Realloc
(
_IN_
void
*
ptr
,
_IN_
uint32_t
size
)
void
*
HAL_Realloc
(
_IN_
void
*
ptr
,
_IN_
uint32_t
size
)
...
...
midware/midware/dm/kk_sync_data.c
View file @
a8d1c966
...
@@ -25,9 +25,11 @@
...
@@ -25,9 +25,11 @@
#include "kk_hal.h"
#include "kk_hal.h"
extern
sqlite3
*
g_kk_pDb
;
extern
sqlite3
*
g_kk_pDb
;
static
int
kk_check_multi_ep_num
(
char
*
deviceCode
);
static
int
kk_get_scenes_actions_info
(
cJSON
*
actionArray
,
int
id
);
static
int
kk_get_scenes_actions_info
(
cJSON
*
actionArray
,
int
id
);
static
int
kk_get_panel_scenes_actions_info
(
cJSON
*
actionArray
,
int
id
);
static
int
kk_get_panel_scenes_actions_info
(
cJSON
*
actionArray
,
int
id
);
typedef
struct
{
typedef
struct
{
void
*
mutex
;
void
*
mutex
;
sqlite3
*
pDb
;
sqlite3
*
pDb
;
...
@@ -77,12 +79,12 @@ int kk_sync_init(void)
...
@@ -77,12 +79,12 @@ int kk_sync_init(void)
static
cJSON
*
kk_get_room_devices
(
const
char
*
roomId
)
static
cJSON
*
kk_get_room_devices
(
const
char
*
roomId
)
{
{
const
char
*
selectCmd
=
"select * from AreaDevInfo WHERE roomId = '%s'
and epNum = 1
;"
;
const
char
*
selectCmd
=
"select * from AreaDevInfo WHERE roomId = '%s';"
;
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
sqlite3_stmt
*
stmt
;
sqlite3_stmt
*
stmt
;
char
*
deviceCode
=
NULL
;
char
*
deviceCode
=
NULL
;
char
*
epNum
=
NULL
;
cJSON
*
devs
=
cJSON_CreateArray
();
cJSON
*
devs
=
cJSON_CreateArray
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
...
@@ -90,8 +92,21 @@ static cJSON * kk_get_room_devices(const char *roomId)
...
@@ -90,8 +92,21 @@ static cJSON * kk_get_room_devices(const char *roomId)
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
dev
=
cJSON_CreateObject
();
cJSON
*
dev
=
cJSON_CreateObject
();
char
devName
[
64
]
=
{
0
};
deviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
deviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
epNum
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_EPNUM
);
if
(
kk_check_multi_ep_num
(
deviceCode
)){
cJSON_AddStringToObject
(
dev
,
KK_SYNC_SCENE_EPNUM_STR
,
epNum
);
}
cJSON_AddStringToObject
(
dev
,
KK_SYNC_DEVICECODE_STR
,
deviceCode
);
cJSON_AddStringToObject
(
dev
,
KK_SYNC_DEVICECODE_STR
,
deviceCode
);
//cJSON_AddStringToObject(dev,KK_SYNC_SCENE_EPNUM_STR,epNum);
kk_get_device_name
(
deviceCode
,
epNum
,
devName
,
sizeof
(
devName
));
cJSON_AddStringToObject
(
dev
,
"name"
,
devName
);
cJSON_AddItemToArray
(
devs
,
dev
);
cJSON_AddItemToArray
(
devs
,
dev
);
}
}
sqlite3_free
(
sqlCmd
);
sqlite3_free
(
sqlCmd
);
...
@@ -100,6 +115,7 @@ static cJSON * kk_get_room_devices(const char *roomId)
...
@@ -100,6 +115,7 @@ static cJSON * kk_get_room_devices(const char *roomId)
return
devs
;
return
devs
;
}
}
static
cJSON
*
kk_get_room_sences
(
const
char
*
roomId
)
static
cJSON
*
kk_get_room_sences
(
const
char
*
roomId
)
{
{
const
char
*
selectCmd
=
"select * from SceneInfo where roomId = '%s';"
;
const
char
*
selectCmd
=
"select * from SceneInfo where roomId = '%s';"
;
...
@@ -107,7 +123,7 @@ static cJSON * kk_get_room_sences(const char *roomId)
...
@@ -107,7 +123,7 @@ static cJSON * kk_get_room_sences(const char *roomId)
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
sqlite3_stmt
*
stmt
;
sqlite3_stmt
*
stmt
;
char
*
sceneId
=
NULL
;
char
*
sceneId
=
NULL
;
char
*
sceneType
=
NULL
;
cJSON
*
scenes
=
cJSON_CreateArray
();
cJSON
*
scenes
=
cJSON_CreateArray
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
...
@@ -116,13 +132,14 @@ static cJSON * kk_get_room_sences(const char *roomId)
...
@@ -116,13 +132,14 @@ static cJSON * kk_get_room_sences(const char *roomId)
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
scene
=
cJSON_CreateObject
();
cJSON
*
scene
=
cJSON_CreateObject
();
sceneId
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENEINFO_SCENEID
);
sceneId
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENEINFO_SCENEID
);
sceneType
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENEINFO_SCENETYPE
);
cJSON_AddStringToObject
(
scene
,
KK_SYNC_SCENEID_STR
,
sceneId
);
cJSON_AddStringToObject
(
scene
,
KK_SYNC_SCENEID_STR
,
sceneId
);
cJSON_AddStringToObject
(
scene
,
KK_SYNC_SCENE_SCENETYPE_STR
,
sceneType
);
cJSON_AddItemToArray
(
scenes
,
scene
);
cJSON_AddItemToArray
(
scenes
,
scene
);
}
}
sqlite3_free
(
sqlCmd
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
sqlite3_finalize
(
stmt
);
return
scenes
;
return
scenes
;
}
}
...
@@ -145,7 +162,7 @@ static int kk_get_rooms_info(cJSON *data)
...
@@ -145,7 +162,7 @@ static int kk_get_rooms_info(cJSON *data)
cJSON
*
scenesArray
=
NULL
;
cJSON
*
scenesArray
=
NULL
;
_kk_sync_lock
();
_kk_sync_lock
();
sqlCmd
=
sqlite3_mprintf
(
"select * from AreaInfo"
);
sqlCmd
=
sqlite3_mprintf
(
"select * from AreaInfo"
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
roomItem
=
cJSON_CreateObject
();
roomItem
=
cJSON_CreateObject
();
...
@@ -170,7 +187,123 @@ static int kk_get_rooms_info(cJSON *data)
...
@@ -170,7 +187,123 @@ static int kk_get_rooms_info(cJSON *data)
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
static
int
kk_get_properties_info
(
char
*
deviceCode
,
cJSON
*
obj
)
static
int
kk_check_multi_ep_num
(
char
*
deviceCode
)
{
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
sqlite3_stmt
*
stmt
;
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
deviceCode
==
NULL
){
return
0
;
}
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE deviceCode = '%s' and devType=%d;"
,
deviceCode
,
KK_DM_DEVICE_SUBDEV
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
char
*
propertiesbuf
[
64
]
=
{
0
};
int
num
=
0
;
split
(
propertyStr
,
"_"
,
propertiesbuf
,
&
num
);
if
(
num
>=
2
){
return
1
;
}
}
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
0
;
}
static
cJSON
*
kk_get_gw_properties_info
(
cJSON
*
data
)
{
char
*
sqlCmd
=
NULL
;
sqlite3_stmt
*
stmt
;
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
cJSON
*
roomIdsAry
=
NULL
;
cJSON
*
property
=
cJSON_CreateObject
();
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE devType = '%d' "
,
KK_DM_DEVICE_GATEWAY
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
valueType
=
sqlite3_column_int
(
stmt
,
DB_VALUETYPE
);
valueStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_VALUE
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
cJSON_AddStringToObject
(
property
,
propertyStr
,
valueStr
);
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
cJSON_AddNumberToObject
(
property
,
propertyStr
,
atoi
(
valueStr
));
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
cJSON_AddNumberToObject
(
property
,
propertyStr
,
atof
(
valueStr
));
}
}
cJSON_AddItemToObject
(
data
,
KK_SYNC_PROPERTY_STR
,
property
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
property
;
}
static
cJSON
*
kk_get_ccu_properties_info
(
cJSON
*
data
)
{
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
sqlite3_stmt
*
stmt
;
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
cJSON
*
roomIdsAry
=
NULL
;
cJSON
*
property
=
cJSON_CreateObject
();
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE devType = '%d' "
,
KK_DM_DEVICE_CCU
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
valueType
=
sqlite3_column_int
(
stmt
,
DB_VALUETYPE
);
valueStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_VALUE
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
if
(
!
strcmp
(
propertyStr
,
"ArmingState"
)){
cJSON_AddNumberToObject
(
property
,
propertyStr
,
atoi
(
valueStr
));
}
else
{
cJSON_AddStringToObject
(
property
,
propertyStr
,
valueStr
);
}
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
cJSON_AddNumberToObject
(
property
,
propertyStr
,
atoi
(
valueStr
));
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
cJSON_AddNumberToObject
(
property
,
propertyStr
,
atof
(
valueStr
));
}
}
if
((
roomIdsAry
=
kk_get_roomIds_ary
())
!=
NULL
){
cJSON_AddItemToObject
(
property
,
"RoomIds"
,
roomIdsAry
);
}
cJSON_AddItemToObject
(
data
,
KK_SYNC_PROPERTY_STR
,
property
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
property
;
}
static
cJSON
*
kk_get_properties_info
(
char
*
deviceCode
,
int
devType
)
{
{
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
//char *zErrMsg = 0;
...
@@ -178,32 +311,98 @@ static int kk_get_properties_info(char *deviceCode,cJSON *obj)
...
@@ -178,32 +311,98 @@ static int kk_get_properties_info(char *deviceCode,cJSON *obj)
char
*
propertyStr
=
NULL
;
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
int
valueType
=
0
;
char
*
ptr
=
NULL
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
deviceCode
==
NULL
||
obj
==
NULL
){
if
(
deviceCode
==
NULL
){
return
FAIL_RETURN
;
return
NULL
;
}
cJSON
*
obj
=
cJSON_CreateObject
();
cJSON
*
eps
=
cJSON_CreateArray
();
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE deviceCode = '%s' and devType=%d;"
,
deviceCode
,
devType
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
propertyItem
=
cJSON_CreateObject
();
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
valueType
=
sqlite3_column_int
(
stmt
,
DB_VALUETYPE
);
valueStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_VALUE
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
char
*
propertiesbuf
[
64
]
=
{
0
};
int
num
=
0
;
split
(
propertyStr
,
"_"
,
propertiesbuf
,
&
num
);
if
(
num
==
2
){
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
propertyItem
,
"epNum"
,
propertiesbuf
[
1
]);
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
cJSON_AddStringToObject
(
propertyItem
,
propertiesbuf
[
0
],
valueStr
);
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
cJSON_AddNumberToObject
(
propertyItem
,
propertiesbuf
[
0
],
atoi
(
valueStr
));
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
cJSON_AddNumberToObject
(
propertyItem
,
propertiesbuf
[
0
],
atof
(
valueStr
));
}
}
else
{
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
propertyItem
,
"epNum"
,
"1"
);
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
cJSON_AddStringToObject
(
propertyItem
,
propertyStr
,
valueStr
);
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
cJSON_AddNumberToObject
(
propertyItem
,
propertyStr
,
atoi
(
valueStr
));
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
cJSON_AddNumberToObject
(
propertyItem
,
propertyStr
,
atof
(
valueStr
));
}
}
cJSON_AddItemToArray
(
eps
,
propertyItem
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
}
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddItemToObject
(
obj
,
"eps"
,
eps
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
obj
;
}
static
int
kk_get_properties_info_obj
(
char
*
deviceCode
)
{
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
sqlite3_stmt
*
stmt
;
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
cJSON
*
obj
=
cJSON_CreateObject
();
if
(
deviceCode
==
NULL
){
return
NULL
;
}
}
cJSON
*
propertyItem
=
cJSON_CreateObject
();
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE deviceCode = '%s'
"
,
deviceCode
);
sqlCmd
=
sqlite3_mprintf
(
"select * from PropertiesInfo WHERE deviceCode = '%s'
and devType=%d;"
,
deviceCode
,
KK_DM_DEVICE_SUBDEV
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
propertyStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
valueType
=
sqlite3_column_int
(
stmt
,
DB_VALUETYPE
);
valueType
=
sqlite3_column_int
(
stmt
,
DB_VALUETYPE
);
valueStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_VALUE
);
valueStr
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_VALUE
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
if
(
valueType
==
KK_TSL_DATA_TYPE_TEXT
){
cJSON_AddStringToObject
(
propertyItem
,
propertyStr
,
valueStr
);
cJSON_AddStringToObject
(
obj
,
propertyStr
,
valueStr
);
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_INT
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_ENUM
||
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
cJSON_AddNumberToObject
(
propertyItem
,
propertyStr
,
atoi
(
valueStr
));
cJSON_AddNumberToObject
(
obj
,
propertyStr
,
atoi
(
valueStr
));
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_DOUBLE
){
cJSON_AddNumberToObject
(
propertyItem
,
propertyStr
,
atof
(
valueStr
));
cJSON_AddNumberToObject
(
obj
,
propertyStr
,
atof
(
valueStr
));
}
}
}
}
cJSON_AddItemToObject
(
obj
,
KK_SYNC_PROPERTY_STR
,
propertyItem
);
sqlite3_free
(
sqlCmd
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
return
obj
;
}
}
...
@@ -279,11 +478,13 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
...
@@ -279,11 +478,13 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
}
}
cJSON
*
subDevices
=
cJSON_CreateArray
();
cJSON
*
subDevices
=
cJSON_CreateArray
();
#if 1
#if 1
sqlCmd
=
sqlite3_mprintf
(
"select * from SubDeviceInfo WHERE fatherDeviceCode = '%s' "
,
deviceCode
);
sqlCmd
=
sqlite3_mprintf
(
"select * from SubDeviceInfo WHERE fatherDeviceCode = '%s' "
,
deviceCode
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
subdevicesItem
=
cJSON_CreateObject
();
cJSON
*
subdevicesItem
=
cJSON_CreateObject
();
char
devName
[
64
]
=
{
0
};
cJSON
*
properties
=
NULL
;
subDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_DEVICECODE
);
subDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_DEVICECODE
);
subProductCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_PRODUCTCODE
);
subProductCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_PRODUCTCODE
);
subVersion
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_VERSION
);
subVersion
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_VERSION
);
...
@@ -291,22 +492,30 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
...
@@ -291,22 +492,30 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_DEVICECODE_STR
,
subDeviceCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_DEVICECODE_STR
,
subDeviceCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_VERSION_STR
,
subVersion
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_VERSION_STR
,
subVersion
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_MAC_STR
,
subDeviceCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_MAC_STR
,
subDeviceCode
);
kk_get_device_name
(
subDeviceCode
,
"1"
,
devName
,
sizeof
(
devName
));
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_NANE_STR
,
devName
);
cJSON_AddNumberToObject
(
subdevicesItem
,
KK_SYNC_ONLINE_STR
,
(
strcmp
(
subIsline
,
"0"
)
==
0
)
?
1
:
0
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_ONLINE_STR
,
subIsline
);
kk_get_panelConfig_info
(
subdevicesItem
,
subDeviceCode
);
kk_get_panelConfig_info
(
subdevicesItem
,
subDeviceCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_PRODUCTCODE_STR
,
subProductCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_PRODUCTCODE_STR
,
subProductCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_SN_STR
,
""
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_SN_STR
,
""
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_STATUS_STR
,
"启动"
);
cJSON_AddNumberToObject
(
subdevicesItem
,
KK_SYNC_STATUS_STR
,
1
);
kk_get_properties_info
(
subDeviceCode
,
subdevicesItem
);
if
(
kk_check_multi_ep_num
(
subDeviceCode
)){
properties
=
kk_get_properties_info
(
subDeviceCode
,
KK_DM_DEVICE_SUBDEV
);
}
else
{
properties
=
kk_get_properties_info_obj
(
subDeviceCode
);
}
cJSON_AddItemToObject
(
subdevicesItem
,
"properties"
,
properties
);
cJSON_AddItemToArray
(
subDevices
,
subdevicesItem
);
cJSON_AddItemToArray
(
subDevices
,
subdevicesItem
);
}
}
#endif
#endif
cJSON_AddItemToObject
(
gwdevicesItem
,
KK_SYNC_DEVICES_STR
,
subDevices
);
cJSON_AddItemToObject
(
gwdevicesItem
,
KK_SYNC_DEVICES_STR
,
subDevices
);
sqlite3_free
(
sqlCmd
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
static
int
kk_get_gw_devices_info
(
cJSON
*
gwdevices
)
static
int
kk_get_gw_devices_info
(
cJSON
*
gwdevices
)
...
@@ -341,12 +550,17 @@ static int kk_get_gw_devices_info(cJSON *gwdevices)
...
@@ -341,12 +550,17 @@ static int kk_get_gw_devices_info(cJSON *gwdevices)
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_VERSION_STR
,
gw_version
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_VERSION_STR
,
gw_version
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_MAC_STR
,
gw_deviceCode
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_MAC_STR
,
gw_deviceCode
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_NANE_STR
,
"GW"
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_NANE_STR
,
"GW"
);
cJSON_Add
StringToObject
(
gwdevicesItem
,
KK_SYNC_ONLINE_STR
,
gw_isline
);
cJSON_Add
NumberToObject
(
gwdevicesItem
,
KK_SYNC_ONLINE_STR
,
(
strcmp
(
gw_isline
,
"0"
)
==
0
)
?
1
:
0
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_PRODUCTCODE_STR
,
gw_productCode
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_PRODUCTCODE_STR
,
gw_productCode
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_SN_STR
,
""
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_SN_STR
,
""
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_STATUS_STR
,
"启动"
);
cJSON_AddNumberToObject
(
gwdevicesItem
,
KK_SYNC_STATUS_STR
,
1
);
kk_get_properties_info
(
gw_deviceCode
,
gwdevicesItem
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_gw_properties_info
(
gwdevicesItem
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_sub_devices_info
(
gwdevicesItem
,
gw_deviceCode
);
kk_get_sub_devices_info
(
gwdevicesItem
,
gw_deviceCode
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddItemToArray
(
gwdevices
,
gwdevicesItem
);
cJSON_AddItemToArray
(
gwdevices
,
gwdevicesItem
);
}
}
sqlite3_free
(
sqlCmd
);
sqlite3_free
(
sqlCmd
);
...
@@ -497,10 +711,19 @@ static int kk_get_scenes_actions_info(cJSON *actionArray,int id)
...
@@ -497,10 +711,19 @@ static int kk_get_scenes_actions_info(cJSON *actionArray,int id)
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_DEVICECODE_STR
,
deviceCode
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_DEVICECODE_STR
,
deviceCode
);
cJSON_AddNumberToObject
(
actionItem
,
KK_SYNC_SCENE_DELAY_STR
,
delay
);
cJSON_AddNumberToObject
(
actionItem
,
KK_SYNC_SCENE_DELAY_STR
,
delay
);
char
*
propertiesbuf
[
64
]
=
{
0
};
int
num
=
0
;
split
(
propertyName
,
"_"
,
propertiesbuf
,
&
num
);
if
(
num
==
2
){
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
propertiesbuf
[
0
]);
cJSON_AddNumberToObject
(
actionItem
,
KK_SYNC_SCENE_EPNUM_STR
,
atoi
(
propertiesbuf
[
1
]));
cJSON_AddNumberToObject
(
actionItem
,
KK_SYNC_SCENE_EPNUM_STR
,
atoi
(
propertiesbuf
[
1
]));
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
propertyName
);
}
else
{
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
propertyName
);
cJSON_AddNumberToObject
(
actionItem
,
KK_SYNC_SCENE_EPNUM_STR
,
epNum
);
cJSON_AddNumberToObject
(
actionItem
,
KK_SYNC_SCENE_EPNUM_STR
,
epNum
);
}
//cJSON_AddNumberToObject(actionItem, KK_SYNC_SCENE_EPNUM_STR, epNum);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_TYPE_STR
,
type
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_TYPE_STR
,
type
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_PROPERTYVALUE_STR
,
propertyValue
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_PROPERTYVALUE_STR
,
propertyValue
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_ROOMID_STR
,
room_name
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_ROOMID_STR
,
room_name
);
...
@@ -560,7 +783,7 @@ static int kk_creat_starttime_build(time_t current)
...
@@ -560,7 +783,7 @@ static int kk_creat_starttime_build(time_t current)
}
}
static
int
kk_get_scenes_trigger_info
(
cJSON
*
trigger
Array
,
char
*
sceneId
)
static
int
kk_get_scenes_trigger_info
(
cJSON
*
trigger
Obj
,
char
*
sceneId
)
{
{
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
//char *zErrMsg = 0;
...
@@ -569,6 +792,7 @@ static int kk_get_scenes_trigger_info(cJSON *triggerArray,char *sceneId)
...
@@ -569,6 +792,7 @@ static int kk_get_scenes_trigger_info(cJSON *triggerArray,char *sceneId)
char
*
propertyName
=
NULL
;
char
*
propertyName
=
NULL
;
char
*
compareType
=
NULL
;
char
*
compareType
=
NULL
;
char
*
compareValue
=
NULL
;
char
*
compareValue
=
NULL
;
cJSON
*
triggerAry
;
char
*
type
=
NULL
;
char
*
type
=
NULL
;
int
epNum
=
0
;
int
epNum
=
0
;
...
@@ -576,10 +800,11 @@ static int kk_get_scenes_trigger_info(cJSON *triggerArray,char *sceneId)
...
@@ -576,10 +800,11 @@ static int kk_get_scenes_trigger_info(cJSON *triggerArray,char *sceneId)
int
time
;
int
time
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
trigger
Array
==
NULL
||
sceneId
==
NULL
){
if
(
trigger
Obj
==
NULL
||
sceneId
==
NULL
){
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
triggerAry
=
cJSON_CreateArray
();
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneTimerInfo where sceneId = %s"
,
sceneId
);
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneTimerInfo where sceneId = %s"
,
sceneId
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
...
@@ -619,14 +844,17 @@ static int kk_get_scenes_trigger_info(cJSON *triggerArray,char *sceneId)
...
@@ -619,14 +844,17 @@ static int kk_get_scenes_trigger_info(cJSON *triggerArray,char *sceneId)
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
(
char
*
)
propertyName
);
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_COMPARETYPE_STR
,
(
char
*
)
compareType
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPAREValue_STR
,
(
char
*
)
compareValue
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPAREValue_STR
,
(
char
*
)
compareValue
);
cJSON_AddItemToArray
(
triggerAr
ra
y
,
triggerItem
);
cJSON_AddItemToArray
(
triggerAry
,
triggerItem
);
}
}
cJSON_AddItemToObject
(
triggerObj
,
"items"
,
triggerAry
);
sqlite3_free
(
sqlCmd
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
static
cJSON
*
kk_build_repeatday_array
(
int
repeatday
)
static
cJSON
*
kk_build_repeatday_array
(
int
repeatday
)
{
{
int
i
=
0
;
int
i
=
0
;
...
@@ -638,7 +866,8 @@ static cJSON *kk_build_repeatday_array(int repeatday)
...
@@ -638,7 +866,8 @@ static cJSON *kk_build_repeatday_array(int repeatday)
}
}
return
repeatAry
;
return
repeatAry
;
}
}
static
int
kk_get_scenes_condition_info
(
cJSON
*
conditionArray
,
char
*
sceneId
)
static
int
kk_get_scenes_condition_info
(
cJSON
*
conditionObj
,
char
*
sceneId
)
{
{
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
//char *zErrMsg = 0;
...
@@ -649,10 +878,15 @@ static int kk_get_scenes_condition_info(cJSON *conditionArray,char *sceneId)
...
@@ -649,10 +878,15 @@ static int kk_get_scenes_condition_info(cJSON *conditionArray,char *sceneId)
int
crossDay
=
0
;
int
crossDay
=
0
;
int
repeat
=
0
;
int
repeat
=
0
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
conditionArray
==
NULL
||
sceneId
==
NULL
){
cJSON
*
conditionAry
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
conditionObj
==
NULL
||
sceneId
==
NULL
){
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
conditionAry
=
cJSON_CreateArray
();
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneConditionInfo where sceneId = %s"
,
sceneId
);
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneConditionInfo where sceneId = %s"
,
sceneId
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
...
@@ -674,8 +908,9 @@ static int kk_get_scenes_condition_info(cJSON *conditionArray,char *sceneId)
...
@@ -674,8 +908,9 @@ static int kk_get_scenes_condition_info(cJSON *conditionArray,char *sceneId)
cJSON_AddItemToObject
(
conditionItem
,
KK_SYNC_SCENE_REPEATDAY_STR
,
repeatAry
);
cJSON_AddItemToObject
(
conditionItem
,
KK_SYNC_SCENE_REPEATDAY_STR
,
repeatAry
);
cJSON_AddItemToArray
(
conditionArray
,
conditionItem
);
cJSON_AddItemToArray
(
conditionAry
,
conditionItem
);
}
}
char
*
deviceCode
=
NULL
;
char
*
deviceCode
=
NULL
;
char
*
propertyName
=
NULL
;
char
*
propertyName
=
NULL
;
char
*
compareType
=
NULL
;
char
*
compareType
=
NULL
;
...
@@ -684,28 +919,34 @@ static int kk_get_scenes_condition_info(cJSON *conditionArray,char *sceneId)
...
@@ -684,28 +919,34 @@ static int kk_get_scenes_condition_info(cJSON *conditionArray,char *sceneId)
int
epNum
=
0
;
int
epNum
=
0
;
int
isAnd
;
int
isAnd
;
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneTimerInfo where sceneId = %s"
,
sceneId
);
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneTriggerInfo where sceneId = %s"
,
sceneId
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
isAnd
=
sqlite3_column_int
(
stmt
,
DB_SCENETRIGGER_ISAND
);
isAnd
=
sqlite3_column_int
(
stmt
,
DB_SCENETRIGGER_ISAND
);
if
(
isAnd
==
1
){
if
(
isAnd
==
1
){
cJSON
*
condition
Item
=
cJSON_CreateObject
();
cJSON
*
trigger
Item
=
cJSON_CreateObject
();
deviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_DEVICECODE
);
deviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_DEVICECODE
);
week
=
sqlite3_column_int
(
stmt
,
DB_SCENETIMER_WEEK
);
epNum
=
sqlite3_column_int
(
stmt
,
DB_SCENETRIGGER_EPNUM
);
propertyName
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_PROPERTYNAME
);
propertyName
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_PROPERTYNAME
);
compareType
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_COMPARETYPE
);
compareType
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_COMPARETYPE
);
compareValue
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_COMPAREVALUE
);
compareValue
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_COMPAREVALUE
);
time
=
sqlite3_column_int
(
stmt
,
DB_SCENETIMER_TIM
E
);
type
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_TYP
E
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_TYPE_STR
,
(
char
*
)
type
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_TYPE_STR
,
(
char
*
)
type
);
cJSON_AddNumberToObject
(
conditionItem
,
"week"
,
week
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_DEVICECODE_STR
,
(
char
*
)
deviceCode
);
cJSON_AddNumberToObject
(
triggerItem
,
KK_SYNC_SCENE_EPNUM_STR
,
epNum
);
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_PROPERTYNAME_STR
,
(
char
*
)
propertyName
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPARETYPE_STR
,
(
char
*
)
compareType
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPARETYPE_STR
,
(
char
*
)
compareType
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPAREValue_STR
,
(
char
*
)
compareValue
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPAREValue_STR
,
(
char
*
)
compareValue
);
cJSON_AddNumberToObject
(
conditionItem
,
"time"
,
time
);
cJSON_AddItemToArray
(
conditionAry
,
triggerItem
);
}
}
}
cJSON_AddItemToObject
(
conditionObj
,
"items"
,
conditionAry
);
sqlite3_free
(
sqlCmd
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
...
@@ -730,9 +971,9 @@ static int kk_get_scenes_info(cJSON *data)
...
@@ -730,9 +971,9 @@ static int kk_get_scenes_info(cJSON *data)
cJSON
*
sceneArrayItem
=
cJSON_CreateObject
();
cJSON
*
sceneArrayItem
=
cJSON_CreateObject
();
enable
=
sqlite3_column_int
(
stmt
,
DB_SCENEINFO_ENABLE
);
enable
=
sqlite3_column_int
(
stmt
,
DB_SCENEINFO_ENABLE
);
if
(
enable
==
1
){
if
(
enable
==
1
){
cJSON_Add
StringToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ENABLE_STR
,
"启动"
);
cJSON_Add
NumberToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ENABLE_STR
,
1
);
}
else
{
}
else
{
cJSON_Add
StringToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ENABLE_STR
,
"禁用"
);
cJSON_Add
NumberToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ENABLE_STR
,
0
);
}
}
type
=
sqlite3_column_int
(
stmt
,
DB_SCENEINFO_SCENETYPE
);
type
=
sqlite3_column_int
(
stmt
,
DB_SCENEINFO_SCENETYPE
);
...
@@ -744,13 +985,13 @@ static int kk_get_scenes_info(cJSON *data)
...
@@ -744,13 +985,13 @@ static int kk_get_scenes_info(cJSON *data)
cJSON
*
actionArray
=
cJSON_CreateArray
();
cJSON
*
actionArray
=
cJSON_CreateArray
();
kk_get_scenes_actions_info
(
actionArray
,
atoi
(
sceneId
));
kk_get_scenes_actions_info
(
actionArray
,
atoi
(
sceneId
));
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ACTIONS_STR
,
actionArray
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ACTIONS_STR
,
actionArray
);
cJSON
*
trigger
Array
=
cJSON_CreateArray
();
cJSON
*
trigger
Obj
=
cJSON_CreateObject
();
kk_get_scenes_trigger_info
(
trigger
Array
,
sceneId
);
kk_get_scenes_trigger_info
(
trigger
Obj
,
sceneId
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_TRIGGER_STR
,
trigger
Array
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_TRIGGER_STR
,
trigger
Obj
);
if
(
kk_is_trigger_timing
(
sceneId
)
!=
1
){
if
(
kk_is_trigger_timing
(
sceneId
)
!=
1
){
cJSON
*
conditionArray
=
cJSON_CreateArray
();
cJSON
*
conditionObj
=
cJSON_CreateObject
();
kk_get_scenes_condition_info
(
conditionArray
,
sceneId
);
kk_get_scenes_condition_info
(
conditionObj
,
sceneId
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_CONDITION_STR
,
conditionArray
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_CONDITION_STR
,
conditionObj
);
}
}
cJSON_AddItemToArray
(
sceneArray
,
sceneArrayItem
);
cJSON_AddItemToArray
(
sceneArray
,
sceneArrayItem
);
...
@@ -760,6 +1001,8 @@ static int kk_get_scenes_info(cJSON *data)
...
@@ -760,6 +1001,8 @@ static int kk_get_scenes_info(cJSON *data)
sqlite3_finalize
(
stmt
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
/*
static int kk_get_ccu_properties(cJSON *property)
static int kk_get_ccu_properties(cJSON *property)
{
{
char *sqlCmd = NULL;
char *sqlCmd = NULL;
...
@@ -793,6 +1036,7 @@ static int kk_get_ccu_properties(cJSON *property)
...
@@ -793,6 +1036,7 @@ static int kk_get_ccu_properties(cJSON *property)
_kk_sync_unlock();
_kk_sync_unlock();
return SUCCESS_RETURN;
return SUCCESS_RETURN;
}
}
*/
/************************************************************
/************************************************************
*功能描述:检查设备是否有重复
*功能描述:检查设备是否有重复
*输入参数:deviceCode:设备deviceCode
*输入参数:deviceCode:设备deviceCode
...
@@ -807,36 +1051,36 @@ char *kk_sync_get_info()
...
@@ -807,36 +1051,36 @@ char *kk_sync_get_info()
char
ccu_productCode
[
PRODUCT_CODE_MAXLEN
]
=
{
0
};
char
ccu_productCode
[
PRODUCT_CODE_MAXLEN
]
=
{
0
};
char
version
[
32
]
=
{
0
};
char
version
[
32
]
=
{
0
};
char
cloudstatus_str
[
16
]
=
{
0
};
char
cloudstatus_str
[
16
]
=
{
0
};
cJSON
*
root
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
root
,
KK_SYNC_CODE_STR
,
"0"
);
cJSON
*
data
=
cJSON_CreateObject
();
cJSON
*
data
=
cJSON_CreateObject
();
cJSON_AddItemToObject
(
root
,
KK_SYNC_DATA_STR
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_rooms_info
(
data
);
kk_get_rooms_info
(
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_devices_info
(
data
);
kk_get_devices_info
(
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_scenes_info
(
data
);
kk_get_scenes_info
(
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
HAL_GetDevice_Code
(
ccu_deviceCode
);
//
HAL_GetDevice_Code(ccu_deviceCode);
HAL_Get_ccuid
(
ccu_deviceCode
);
HAL_GetProduct_Code
(
ccu_productCode
);
HAL_GetProduct_Code
(
ccu_productCode
);
HAL_GetVersion
(
version
);
HAL_GetVersion
(
version
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_DEVICECODE_STR
,
ccu_deviceCode
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_DEVICECODE_STR
,
ccu_deviceCode
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_NANE_STR
,
"newccu"
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_NANE_STR
,
"newccu"
);
sprintf
(
cloudstatus_str
,
"%d"
,
kk_get_cloudstatus
());
sprintf
(
cloudstatus_str
,
"%d"
,
kk_get_cloudstatus
());
cJSON_AddStringToObject
(
data
,
KK_SYNC_ONLINE_STR
,
cloudstatus_str
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_ONLINE_STR
,
cloudstatus_str
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_PRODUCTCODE_STR
,
ccu_productCode
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_PRODUCTCODE_STR
,
ccu_productCode
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_VERSION_STR
,
version
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_VERSION_STR
,
version
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON
*
property
=
cJSON_CreateObject
();
kk_get_ccu_properties_info
(
data
);
kk_get_ccu_properties
(
property
);
cJSON_AddItemToObject
(
data
,
KK_SYNC_PROPERTY_STR
,
property
);
out
=
cJSON_Print
(
root
);
out
=
cJSON_Print
(
data
);
printf
(
"kk_sync_get_info:%s
\n
"
,
out
);
printf
(
"kk_sync_get_info:%s
\n
"
,
out
);
cJSON_Delete
(
root
);
cJSON_Delete
(
data
);
//free(out);
//free(out);
return
out
;
return
out
;
}
}
...
...
midware/midware/midware.c
View file @
a8d1c966
...
@@ -653,10 +653,7 @@ void kk_platMsg_handle(void* data, char* chalMark){
...
@@ -653,10 +653,7 @@ void kk_platMsg_handle(void* data, char* chalMark){
if
(
jsonPay
==
NULL
)
goto
error
;
if
(
jsonPay
==
NULL
)
goto
error
;
proCode
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_PRODUCT_CODE_STR
);
proCode
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_PRODUCT_CODE_STR
);
devCode
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_DEVICE_CODE_STR
);
devCode
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_DEVICE_CODE_STR
);
//mac = cJSON_GetObjectItem(jsonPay, "mac");
mac
=
cJSON_GetObjectItem
(
jsonPay
,
"mac"
);
mac
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_DEVICE_CODE_STR
);
if
(
proCode
==
NULL
||
devCode
==
NULL
||
mac
==
NULL
){
if
(
proCode
==
NULL
||
devCode
==
NULL
||
mac
==
NULL
){
ERROR_PRINT
(
"productCode, deviceCode mac params are error
\n
"
);
ERROR_PRINT
(
"productCode, deviceCode mac params are error
\n
"
);
goto
error
;
goto
error
;
...
...
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