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
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)
arming_status_notify
(
type
);
}
}
else
{
//
property_post_deal(deviceCode->valuestring,payload);
property_post_deal
(
deviceCode
->
valuestring
,
payload
);
}
}
else
if
(
strstr
(
msgtype
->
valuestring
,
"/thing/topo/delete"
)
!=
NULL
){
device_delete_sync
(
payload
);
...
...
application/klansdk/kk_lan_main.c
View file @
a8d1c966
...
...
@@ -36,30 +36,30 @@
static
char
s_ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
int
kk_lan_get_ccuid
(
_OU_
char
*
device_code
)
{
strncpy
(
device_code
,
s_ccuid
,
strlen
(
s_ccuid
));
printf
(
"kk_lan_get_ccuid:%s
\n
"
,
s_ccuid
);
return
strlen
(
s_ccuid
);
{
strncpy
(
device_code
,
s_ccuid
,
strlen
(
s_ccuid
));
printf
(
"kk_lan_get_ccuid:%s
\n
"
,
s_ccuid
);
return
strlen
(
s_ccuid
);
}
static
int
_setDevice_Code
(
_IN_
char
*
device_code
,
int
len
)
{
memset
(
s_ccuid
,
0x0
,
DEVICE_CODE_LEN
);
printf
(
"_setDevice_Code:%s
\n
"
,
device_code
);
strncpy
(
s_ccuid
,
device_code
,
len
);
return
len
;
memset
(
s_ccuid
,
0x0
,
DEVICE_CODE_LEN
);
printf
(
"_setDevice_Code:%s
\n
"
,
device_code
);
strncpy
(
s_ccuid
,
device_code
,
len
);
return
len
;
}
extern
int
HAL_Execel_cmd
(
char
*
cmd
,
char
*
buf
,
int
buf_len
,
int
*
ret_len
);
static
void
kk_lan_ccuid_init
(
void
)
{
uint8_t
ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
int
ccuid_len
=
0
;
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
ccuid
,
sizeof
(
ccuid
),
&
ccuid_len
);
printf
(
"GET_CCUID_CMD:%s
\n
"
,
ccuid
);
if
(
ccuid_len
>
0
&&
ccuid_len
<=
DEVICE_CODE_LEN
){
_setDevice_Code
((
char
*
)
ccuid
,
ccuid_len
-
1
);
}
else
{
uint8_t
ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
int
ccuid_len
=
0
;
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
ccuid
,
sizeof
(
ccuid
),
&
ccuid_len
);
printf
(
"GET_CCUID_CMD:%s
\n
"
,
ccuid
);
if
(
ccuid_len
>
0
&&
ccuid_len
<=
DEVICE_CODE_LEN
){
_setDevice_Code
((
char
*
)
ccuid
,
ccuid_len
-
1
);
}
else
{
_setDevice_Code
(
KK_CCU_ID
,
strlen
(
KK_CCU_ID
));
}
}
}
...
...
application/klansdk/kk_lan_sync.c
View file @
a8d1c966
...
...
@@ -13,8 +13,7 @@
/*******获取同步数据json*******/
static
cJSON
*
kk_get_sync_data
(
cJSON
*
payload
)
{
cJSON
*
data
=
cJSON_GetObjectItem
(
payload
,
DATA_STR
);
return
cJSON_GetObjectItem
(
data
,
DATA_STR
);
return
cJSON_GetObjectItem
(
payload
,
DATA_STR
);
}
...
...
@@ -66,6 +65,7 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
for
(
i
=
0
;
i
<
num
;
i
++
,
item
++
){
room
=
cJSON_GetArrayItem
(
rooms
,
i
);
roomId
=
cJSON_GetObjectItem
(
room
,
ROOMS_ID_STR
);
name
=
cJSON_GetObjectItem
(
room
,
NAME_STR
);
devices
=
cJSON_GetObjectItem
(
room
,
DEVICES_STR
);
...
...
@@ -79,6 +79,9 @@ cJSON *kk_sync_rooms_to_sdk(cJSON *root,cJSON *data)
item
->
room_status
=
NULL
;
}
roomsAry
=
_kk_syn_rooms_info
(
num
,
items
);
cJSON_AddItemToObject
(
root
,
ROOMS_STR
,
roomsAry
);
return
root
;
...
...
@@ -172,6 +175,7 @@ int kk_sync_actions(cJSON *actions,SYN_SCENE_ACTION **act,char **room_id)
for
(
i
=
0
;
i
<
num
;
i
++
,
ptr
++
){
cJSON
*
item
;
item
=
cJSON_GetArrayItem
(
actions
,
i
);
...
...
@@ -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
)
{
cJSON
*
itemAry
=
NULL
;
cJSON
*
startTime
,
*
endTime
,
*
crossDay
,
*
repeat_days
;
if
(
condition
==
NULL
||
build
==
NULL
||*
build
==
NULL
){
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
get_flag
=
0
;
...
...
@@ -265,7 +274,10 @@ cJSON *kk_sync_scence_to_sdk(cJSON *root,cJSON *data)
cJSON
*
scenesAry
=
cJSON_CreateArray
();
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
);
actions
=
cJSON_GetObjectItem
(
item
,
ACTIONS_STR
);
enable
=
cJSON_GetObjectItem
(
item
,
ENABLE_STR
);
...
...
@@ -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
;
char
nodeid
[
32
]
=
{
0
};
char
gwmac
[
32
]
=
{
0
};
char
submac
[
32
]
=
{
0
};
char
channel
[
4
]
=
{
0
};
int
idx
=
1
;
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
)
{
if
(
node
!=
NULL
)
{
if
(
strlen
(
node
->
deviceCode
)
==
strlen
(
deviceCode
->
valuestring
)
&&
...
...
@@ -320,10 +335,10 @@ int kk_sync_devices_to_sdk(cJSON *root)
if
(
epNum
==
NULL
||
epNum
->
type
!=
cJSON_String
){
cJSON_AddStringToObject
(
subdevicesItem
,
CHANNEL_STRING
,
"1"
);
kk_creater_nodeid
(
node
->
deviceCode
,
1
,
nodeid
,
atoi
(
node
->
opearteType
)
);
kk_creater_nodeid
(
node
->
deviceCode
,
1
,
nodeid
);
}
else
{
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
);
...
...
@@ -350,7 +365,6 @@ int kk_sync_devices_to_sdk(cJSON *root)
cJSON_AddStringToObject
(
subdevicesItem
,
MAC_STRING
,
submac
);
cJSON_AddStringToObject
(
subdevicesItem
,
OPERATE_TYPE_STRING
,
node
->
opearteType
);
cJSON_AddItemToArray
(
deviceAry
,
subdevicesItem
);
}
}
...
...
@@ -374,6 +388,7 @@ int kk_sync_device(cJSON *roomId,cJSON *inDevAry,cJSON *outDevAry)
num
=
cJSON_GetArraySize
(
inDevAry
);
for
(
i
=
0
;
i
<
num
;
i
++
){
printf
(
"...i=%d
\n
"
,
i
);
cJSON
*
item
=
cJSON_GetArrayItem
(
inDevAry
,
i
);
deviceCode
=
cJSON_GetObjectItem
(
item
,
"deviceCode"
);
epNum
=
cJSON_GetObjectItem
(
item
,
"epNum"
);
...
...
@@ -392,11 +407,16 @@ int kk_sync_devices_to_sdk(cJSON *root,cJSON *data)
int
i
,
num
=
cJSON_GetArraySize
(
rooms
);
cJSON
*
roomId
,
*
devices
;
printf
(
"kk_sync_devices_to_sdk,num=%d
\n
"
,
num
);
for
(
i
=
0
;
i
<
num
;
i
++
){
printf
(
"i=%d
\n
"
,
i
);
cJSON
*
room
=
cJSON_GetArrayItem
(
rooms
,
i
);
roomId
=
cJSON_GetObjectItem
(
room
,
ROOMS_ID_STR
);
devices
=
cJSON_GetObjectItem
(
room
,
DEVICES_STR
);
printf
(
"devices...=%s
\n
"
,
cJSON_Print
(
devices
));
kk_sync_device
(
roomId
,
devices
,
deviceAry
);
}
...
...
@@ -413,7 +433,6 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
cJSON
*
newccu
,
*
oldccu
;
cJSON
*
arg
=
cJSON_CreateObject
();
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
if
(
node
==
NULL
||
node
->
syn_type
!=
1
||
node
->
syn_opcode
==
NULL
){
return
arg
;
...
...
@@ -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
*
dev_status
=
NULL
;
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
if
(
node
==
NULL
||
devStatusAry
==
NULL
||
index
==
NULL
){
return
-
1
;
...
...
@@ -513,7 +531,7 @@ static int _kk_sync_devices_status_arg_str(kk_map_dev_node_t *node,cJSON *devSta
dev_status
=
cJSON_CreateObject
();
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_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
cJSON_AddItemToObject
(
dev_status
,
ARG_STRING
,
arg
);
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
));
memset
(
indexId
,
0
,
sizeof
(
indexId
));
...
...
@@ -571,6 +589,7 @@ int kk_sync_devices_status_to_sdk(cJSON *root)
kk_map_dev_node_t
*
n
=
NULL
;
cJSON
*
devStatusAry
=
cJSON_CreateArray
();
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
_kk_map_dev_mutex_lock
();
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)
}
}
_kk_map_dev_mutex_unlock
();
cJSON_AddItemToObject
(
root
,
DEVICE_STATUS_STRING
,
devStatusAry
);
...
...
@@ -657,65 +676,94 @@ typedef struct{
char
*
nodeId
;
char
*
sensor_type
;
}
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
;
cJSON
*
item
;
cJSON
*
guard_sensors
=
cJSON_CreateArray
();
SYN_GUARD_SENSORS
*
pSensor
=
sensors
;
SYN_GUARD_SENSORS
*
pSensor
;
if
(
num
<=
0
||
sensors
==
NULL
){
return
-
1
;
}
pSensor
=
sensors
;
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
,
"sensor_type"
,(
pSensor
->
sensor_type
)
?
pSensor
->
sensor_type
:
"0"
);
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
;
}
cJSON
*
kk_sync_guard_to_sdk
(
cJSON
*
root
,
cJSON
*
data
)
int
kk_sync_guard_to_sdk
(
cJSON
*
root
,
cJSON
*
data
)
{
char
modeStr
[
8
]
=
{
0
}
;
char
*
armingStr
=
NULL
;
cJSON
*
guard
=
cJSON_CreateObject
();
cJSON
*
custom_guard_zone
;
cJSON
*
guard_sensors
;
//todo 撤防布防
int
guardMode
=
0
;
snprintf
(
modeStr
,
sizeof
(
modeStr
),
"%d"
,
guardMode
);
cJSON
*
custom_guard_zone
=
cJSON_CreateArray
();
cJSON
*
guard_sensors
=
cJSON_CreateArray
();
cJSON_AddStringToObject
(
guard
,
"arming_status"
,
modeStr
);
SYN_GUARD_SENSORS
sensors
;
sensors
.
nodeId
=
malloc
(
10
);
memset
(
sensors
.
nodeId
,
0
,
10
);
memcpy
(
sensors
.
nodeId
,
"1234"
,
strlen
(
"1234"
));
sensors
.
sensor_type
=
malloc
(
10
);
memset
(
sensors
.
sensor_type
,
0
,
10
);
memcpy
(
sensors
.
sensor_type
,
"5678"
,
strlen
(
"5678"
));
cJSON
*
properties
=
cJSON_GetObjectItem
(
data
,
"properties"
);
cJSON
*
ArmingState
=
NULL
,
*
RoomIdsAry
=
NULL
;
cJSON_AddStringToObject
(
guard
,
"arming_status"
,
"1"
);
cJSON_AddItemToObject
(
guard
,
"custom_guard_zone"
,
custom_guard_zone
);
cJSON_AddItemToObject
(
guard
,
"guard_sensors"
,
guard_sensors
);
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
);
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)
cJSON
*
code_lib_controllers
;
cJSON
*
controllers
;
cJSON
*
expand_rules
;
cJSON
*
data
=
kk_get_sync_data
(
payload
);
char
*
out
=
NULL
;
printf
(
"!!!!!!!!!!!!!!!!!!!!------>%x
\n
"
,
&
out
);
...
...
@@ -1031,48 +1080,71 @@ int kk_create_syncinfo_to_sdk(cJSON *payload)
cJSON_AddItemToObject
(
root
,
"ccu_link_status"
,
ccu_link_status
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cnwise_music_controllers
=
cJSON_CreateArray
();
cJSON_AddItemToObject
(
root
,
"cnwise_music_controllers"
,
cnwise_music_controllers
);
code_lib_controllers
=
cJSON_CreateArray
();
cJSON_AddItemToObject
(
root
,
"code_lib_controllers"
,
code_lib_controllers
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
controllers
=
cJSON_CreateArray
();
cJSON_AddItemToObject
(
root
,
"controllers"
,
controllers
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_sync_devices_status_to_sdk
(
root
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_sync_devices_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_rooms_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_scence_to_sdk
(
root
,
data
);
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
);
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
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
kk_sync_guard_to_sdk
(
root
,
data
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
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
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
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
);
printf
(
"[%s][%d]%s
\n
"
,
__FUNCTION__
,
__LINE__
,(
root
==
NULL
)
?
"NULL"
:
"1"
);
#if 1
...
...
application/klansdk/kk_lan_vp_ctrl.c
View file @
a8d1c966
...
...
@@ -2,12 +2,34 @@
#include "kk_lan_vp_ctrl.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
cJSON
*
light_dev
(
int
ep
,
int
onoff
);
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
cJSON
*
(
*
dev_handle
)(
int
ep
,
uint8_t
*
arg
);
...
...
@@ -18,13 +40,24 @@ typedef struct{
}
KK_VP_CTRL
;
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
[]
=
{
3023
,
3024
};
static
int
curtain_dev_pid
[]
=
{
3067
};
static
int
outlet_dev_pid
[]
=
{
3020
};
static
int
is_light_dev
(
int
pid
)
{
int
i
;
...
...
@@ -36,7 +69,53 @@ static int is_light_dev(int pid)
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
};
cJSON
*
params
=
cJSON_CreateObject
();
...
...
@@ -47,20 +126,43 @@ cJSON *light_dev_msg_build(int ep,int onoff)
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
params
,
"epNum"
,
epNum
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddNumberToObject
(
params
,
"
PowerSwitch"
,
onoff
);
cJSON_AddNumberToObject
(
params
,
"
OperationMode"
,
OperationMode
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
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
];
printf
(
"[%s][%d]skill_type=%d,ep=%d
\n
"
,
__FUNCTION__
,
__LINE__
,
skill_type
,
ep
);
switch
(
skill_type
){
case
VP_CTRL_OPEN
:
//
return
light_dev
_msg_build
(
ep
,
1
);
return
outlet
_msg_build
(
ep
,
1
);
case
VP_CTRL_CLOSE
:
return
light_dev
_msg_build
(
ep
,
0
);
return
outlet
_msg_build
(
ep
,
0
);
default:
break
;
}
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
{
int
i
=
0
,
devNum
=
0
;
cJSON
*
name
=
NULL
;
cJSON
*
deviceItem
=
NULL
,
*
devCodeObj
=
NULL
,
*
epNumObj
=
NULL
;
cJSON
*
deviceItem
=
NULL
,
*
devCodeObj
=
NULL
;
devNum
=
cJSON_GetArraySize
(
devices
);
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
continue
;
}
epNumObj
=
cJSON_GetObjectItem
(
deviceItem
,
"epNum"
);
devCodeObj
=
cJSON_GetObjectItem
(
deviceItem
,
"deviceCode"
);
if
(
epNumObj
==
NULL
||
epNumObj
->
type
!=
cJSON_String
||
devCodeObj
==
NULL
||
devCodeObj
->
type
!=
cJSON_String
){
if
(
devCodeObj
==
NULL
||
devCodeObj
->
type
!=
cJSON_String
){
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
continue
;
}
printf
(
"[%s][%d]%d,%d,%s,%s
\n
"
,
__FUNCTION__
,
__LINE__
,
strlen
(
devCodeObj
->
valuestring
),
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
))
&&
!
strcmp
(
devCodeObj
->
valuestring
,
deviceCode
)
&&
(
strlen
(
epNumObj
->
valuestring
)
==
strlen
(
epNum
))
&&
!
strcmp
(
epNumObj
->
valuestring
,
epNum
)){
!
strcmp
(
devCodeObj
->
valuestring
,
deviceCode
)){
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
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)
}
void
*
HAL_Malloc
(
_IN_
uint32_t
size
)
{
return
malloc
(
size
);
return
malloc
(
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 @@
#include "kk_hal.h"
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_panel_scenes_actions_info
(
cJSON
*
actionArray
,
int
id
);
typedef
struct
{
void
*
mutex
;
sqlite3
*
pDb
;
...
...
@@ -77,12 +79,12 @@ int kk_sync_init(void)
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
;
sqlite3_stmt
*
stmt
;
char
*
deviceCode
=
NULL
;
char
*
epNum
=
NULL
;
cJSON
*
devs
=
cJSON_CreateArray
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
...
...
@@ -90,8 +92,21 @@ static cJSON * kk_get_room_devices(const char *roomId)
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
dev
=
cJSON_CreateObject
();
char
devName
[
64
]
=
{
0
};
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_SCENE_EPNUM_STR,epNum);
kk_get_device_name
(
deviceCode
,
epNum
,
devName
,
sizeof
(
devName
));
cJSON_AddStringToObject
(
dev
,
"name"
,
devName
);
cJSON_AddItemToArray
(
devs
,
dev
);
}
sqlite3_free
(
sqlCmd
);
...
...
@@ -100,6 +115,7 @@ static cJSON * kk_get_room_devices(const char *roomId)
return
devs
;
}
static
cJSON
*
kk_get_room_sences
(
const
char
*
roomId
)
{
const
char
*
selectCmd
=
"select * from SceneInfo where roomId = '%s';"
;
...
...
@@ -107,7 +123,7 @@ static cJSON * kk_get_room_sences(const char *roomId)
char
*
sqlCmd
=
NULL
;
sqlite3_stmt
*
stmt
;
char
*
sceneId
=
NULL
;
char
*
sceneType
=
NULL
;
cJSON
*
scenes
=
cJSON_CreateArray
();
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
...
...
@@ -116,13 +132,14 @@ static cJSON * kk_get_room_sences(const char *roomId)
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
scene
=
cJSON_CreateObject
();
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_SCENE_SCENETYPE_STR
,
sceneType
);
cJSON_AddItemToArray
(
scenes
,
scene
);
}
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
scenes
;
}
...
...
@@ -145,7 +162,7 @@ static int kk_get_rooms_info(cJSON *data)
cJSON
*
scenesArray
=
NULL
;
_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
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
roomItem
=
cJSON_CreateObject
();
...
...
@@ -170,7 +187,123 @@ static int kk_get_rooms_info(cJSON *data)
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 *zErrMsg = 0;
...
...
@@ -178,32 +311,98 @@ static int kk_get_properties_info(char *deviceCode,cJSON *obj)
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
int
valueType
=
0
;
char
*
ptr
=
NULL
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
deviceCode
==
NULL
||
obj
==
NULL
){
return
FAIL_RETURN
;
if
(
deviceCode
==
NULL
){
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
);
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
(
propertyItem
,
propertyStr
,
valueStr
);
cJSON_AddStringToObject
(
obj
,
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
));
cJSON_AddNumberToObject
(
obj
,
propertyStr
,
atoi
(
valueStr
));
}
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_finalize
(
stmt
);
return
SUCCESS_RETURN
;
return
obj
;
}
...
...
@@ -279,11 +478,13 @@ static int kk_get_sub_devices_info(cJSON *gwdevicesItem,char *deviceCode)
}
cJSON
*
subDevices
=
cJSON_CreateArray
();
#if 1
sqlCmd
=
sqlite3_mprintf
(
"select * from SubDeviceInfo WHERE fatherDeviceCode = '%s' "
,
deviceCode
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
cJSON
*
subdevicesItem
=
cJSON_CreateObject
();
char
devName
[
64
]
=
{
0
};
cJSON
*
properties
=
NULL
;
subDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_DEVICECODE
);
subProductCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_PRODUCTCODE
);
subVersion
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_VERSION
);
...
...
@@ -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_VERSION_STR
,
subVersion
);
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_AddStringToObject
(
subdevicesItem
,
KK_SYNC_ONLINE_STR
,
subIsline
);
cJSON_AddNumberToObject
(
subdevicesItem
,
KK_SYNC_ONLINE_STR
,
(
strcmp
(
subIsline
,
"0"
)
==
0
)
?
1
:
0
);
kk_get_panelConfig_info
(
subdevicesItem
,
subDeviceCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_PRODUCTCODE_STR
,
subProductCode
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_SN_STR
,
""
);
cJSON_AddStringToObject
(
subdevicesItem
,
KK_SYNC_STATUS_STR
,
"启动"
);
kk_get_properties_info
(
subDeviceCode
,
subdevicesItem
);
cJSON_AddNumberToObject
(
subdevicesItem
,
KK_SYNC_STATUS_STR
,
1
);
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
);
}
#endif
cJSON_AddItemToObject
(
gwdevicesItem
,
KK_SYNC_DEVICES_STR
,
subDevices
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
}
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_MAC_STR
,
gw_deviceCode
);
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_SN_STR
,
""
);
cJSON_AddStringToObject
(
gwdevicesItem
,
KK_SYNC_STATUS_STR
,
"启动"
);
kk_get_properties_info
(
gw_deviceCode
,
gwdevicesItem
);
cJSON_AddNumberToObject
(
gwdevicesItem
,
KK_SYNC_STATUS_STR
,
1
);
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
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddItemToArray
(
gwdevices
,
gwdevicesItem
);
}
sqlite3_free
(
sqlCmd
);
...
...
@@ -497,10 +711,19 @@ static int kk_get_scenes_actions_info(cJSON *actionArray,int id)
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_DEVICECODE_STR
,
deviceCode
);
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_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_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_TYPE_STR
,
type
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_SCENE_PROPERTYVALUE_STR
,
propertyValue
);
cJSON_AddStringToObject
(
actionItem
,
KK_SYNC_ROOMID_STR
,
room_name
);
...
...
@@ -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 *zErrMsg = 0;
...
...
@@ -569,6 +792,7 @@ static int kk_get_scenes_trigger_info(cJSON *triggerArray,char *sceneId)
char
*
propertyName
=
NULL
;
char
*
compareType
=
NULL
;
char
*
compareValue
=
NULL
;
cJSON
*
triggerAry
;
char
*
type
=
NULL
;
int
epNum
=
0
;
...
...
@@ -576,10 +800,11 @@ static int kk_get_scenes_trigger_info(cJSON *triggerArray,char *sceneId)
int
time
;
kk_sync_ctx_t
*
ctx
=
_kk_sync_get_ctx
();
if
(
trigger
Array
==
NULL
||
sceneId
==
NULL
){
if
(
trigger
Obj
==
NULL
||
sceneId
==
NULL
){
return
FAIL_RETURN
;
}
triggerAry
=
cJSON_CreateArray
();
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneTimerInfo where sceneId = %s"
,
sceneId
);
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)
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
(
char
*
)
propertyName
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPARETYPE_STR
,
(
char
*
)
compareType
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPAREValue_STR
,
(
char
*
)
compareValue
);
cJSON_AddItemToArray
(
triggerAr
ra
y
,
triggerItem
);
}
cJSON_AddItemToArray
(
triggerAry
,
triggerItem
);
}
cJSON_AddItemToObject
(
triggerObj
,
"items"
,
triggerAry
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
}
static
cJSON
*
kk_build_repeatday_array
(
int
repeatday
)
{
int
i
=
0
;
...
...
@@ -638,7 +866,8 @@ static cJSON *kk_build_repeatday_array(int repeatday)
}
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 *zErrMsg = 0;
...
...
@@ -649,10 +878,15 @@ static int kk_get_scenes_condition_info(cJSON *conditionArray,char *sceneId)
int
crossDay
=
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
;
}
conditionAry
=
cJSON_CreateArray
();
sqlCmd
=
sqlite3_mprintf
(
"select * from SceneConditionInfo where sceneId = %s"
,
sceneId
);
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)
cJSON_AddItemToObject
(
conditionItem
,
KK_SYNC_SCENE_REPEATDAY_STR
,
repeatAry
);
cJSON_AddItemToArray
(
conditionArray
,
conditionItem
);
}
cJSON_AddItemToArray
(
conditionAry
,
conditionItem
);
}
char
*
deviceCode
=
NULL
;
char
*
propertyName
=
NULL
;
char
*
compareType
=
NULL
;
...
...
@@ -684,28 +919,34 @@ static int kk_get_scenes_condition_info(cJSON *conditionArray,char *sceneId)
int
epNum
=
0
;
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
);
if
(
isAnd
==
1
){
cJSON
*
condition
Item
=
cJSON_CreateObject
();
cJSON
*
trigger
Item
=
cJSON_CreateObject
();
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
);
compareType
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SCENETRIGGER_COMPARETYPE
);
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_AddNumberToObject
(
conditionItem
,
"week"
,
week
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_DEVICECODE_STR
,
(
char
*
)
deviceCode
);
cJSON_AddNumberToObject
(
triggerItem
,
KK_SYNC_SCENE_EPNUM_STR
,
epNum
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_PROPERTYNAME_STR
,
(
char
*
)
propertyName
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPARETYPE_STR
,
(
char
*
)
compareType
);
cJSON_AddStringToObject
(
triggerItem
,
KK_SYNC_SCENE_COMPAREValue_STR
,
(
char
*
)
compareValue
);
cJSON_AddNumberToObject
(
conditionItem
,
"time"
,
time
);
cJSON_AddItemToArray
(
conditionAry
,
triggerItem
);
}
}
cJSON_AddItemToObject
(
conditionObj
,
"items"
,
conditionAry
);
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
...
...
@@ -730,9 +971,9 @@ static int kk_get_scenes_info(cJSON *data)
cJSON
*
sceneArrayItem
=
cJSON_CreateObject
();
enable
=
sqlite3_column_int
(
stmt
,
DB_SCENEINFO_ENABLE
);
if
(
enable
==
1
){
cJSON_Add
StringToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ENABLE_STR
,
"启动"
);
cJSON_Add
NumberToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ENABLE_STR
,
1
);
}
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
);
...
...
@@ -744,13 +985,13 @@ static int kk_get_scenes_info(cJSON *data)
cJSON
*
actionArray
=
cJSON_CreateArray
();
kk_get_scenes_actions_info
(
actionArray
,
atoi
(
sceneId
));
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_ACTIONS_STR
,
actionArray
);
cJSON
*
trigger
Array
=
cJSON_CreateArray
();
kk_get_scenes_trigger_info
(
trigger
Array
,
sceneId
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_TRIGGER_STR
,
trigger
Array
);
cJSON
*
trigger
Obj
=
cJSON_CreateObject
();
kk_get_scenes_trigger_info
(
trigger
Obj
,
sceneId
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_TRIGGER_STR
,
trigger
Obj
);
if
(
kk_is_trigger_timing
(
sceneId
)
!=
1
){
cJSON
*
conditionArray
=
cJSON_CreateArray
();
kk_get_scenes_condition_info
(
conditionArray
,
sceneId
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_CONDITION_STR
,
conditionArray
);
cJSON
*
conditionObj
=
cJSON_CreateObject
();
kk_get_scenes_condition_info
(
conditionObj
,
sceneId
);
cJSON_AddItemToObject
(
sceneArrayItem
,
KK_SYNC_SCENE_CONDITION_STR
,
conditionObj
);
}
cJSON_AddItemToArray
(
sceneArray
,
sceneArrayItem
);
...
...
@@ -760,6 +1001,8 @@ static int kk_get_scenes_info(cJSON *data)
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
}
/*
static int kk_get_ccu_properties(cJSON *property)
{
char *sqlCmd = NULL;
...
...
@@ -793,6 +1036,7 @@ static int kk_get_ccu_properties(cJSON *property)
_kk_sync_unlock();
return SUCCESS_RETURN;
}
*/
/************************************************************
*功能描述:检查设备是否有重复
*输入参数:deviceCode:设备deviceCode
...
...
@@ -807,36 +1051,36 @@ char *kk_sync_get_info()
char
ccu_productCode
[
PRODUCT_CODE_MAXLEN
]
=
{
0
};
char
version
[
32
]
=
{
0
};
char
cloudstatus_str
[
16
]
=
{
0
};
cJSON
*
root
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
root
,
KK_SYNC_CODE_STR
,
"0"
);
cJSON
*
data
=
cJSON_CreateObject
();
cJSON_AddItemToObject
(
root
,
KK_SYNC_DATA_STR
,
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_rooms_info
(
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_devices_info
(
data
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
kk_get_scenes_info
(
data
);
HAL_GetDevice_Code
(
ccu_deviceCode
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
//
HAL_GetDevice_Code(ccu_deviceCode);
HAL_Get_ccuid
(
ccu_deviceCode
);
HAL_GetProduct_Code
(
ccu_productCode
);
HAL_GetVersion
(
version
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_DEVICECODE_STR
,
ccu_deviceCode
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_NANE_STR
,
"newccu"
);
sprintf
(
cloudstatus_str
,
"%d"
,
kk_get_cloudstatus
());
cJSON_AddStringToObject
(
data
,
KK_SYNC_ONLINE_STR
,
cloudstatus_str
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_PRODUCTCODE_STR
,
ccu_productCode
);
cJSON_AddStringToObject
(
data
,
KK_SYNC_VERSION_STR
,
version
);
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
cJSON
*
property
=
cJSON_CreateObject
();
kk_get_ccu_properties
(
property
);
cJSON_AddItemToObject
(
data
,
KK_SYNC_PROPERTY_STR
,
property
);
kk_get_ccu_properties_info
(
data
);
out
=
cJSON_Print
(
root
);
out
=
cJSON_Print
(
data
);
printf
(
"kk_sync_get_info:%s
\n
"
,
out
);
cJSON_Delete
(
root
);
cJSON_Delete
(
data
);
//free(out);
return
out
;
}
...
...
midware/midware/midware.c
View file @
a8d1c966
...
...
@@ -653,10 +653,7 @@ void kk_platMsg_handle(void* data, char* chalMark){
if
(
jsonPay
==
NULL
)
goto
error
;
proCode
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_PRODUCT_CODE_STR
);
devCode
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_DEVICE_CODE_STR
);
//mac = cJSON_GetObjectItem(jsonPay, "mac");
mac
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_DEVICE_CODE_STR
);
mac
=
cJSON_GetObjectItem
(
jsonPay
,
"mac"
);
if
(
proCode
==
NULL
||
devCode
==
NULL
||
mac
==
NULL
){
ERROR_PRINT
(
"productCode, deviceCode mac params are error
\n
"
);
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