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
f7abf54d
Commit
f7abf54d
authored
Jul 27, 2021
by
尹佳钦
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
20210727
parent
af5cfaad
Changes
49
Show whitespace changes
Inline
Side-by-side
Showing
49 changed files
with
6315 additions
and
6341 deletions
+6315
-6341
application/kcloud/kcloud_config.h
application/kcloud/kcloud_config.h
+2
-2
application/kcloud/kcloud_data_handle.c
application/kcloud/kcloud_data_handle.c
+84
-87
application/kcloud/kcloud_main.c
application/kcloud/kcloud_main.c
+0
-1
application/kcloud/kk_register.c
application/kcloud/kk_register.c
+255
-257
application/kcloud/kk_topic_mng.c
application/kcloud/kk_topic_mng.c
+101
-99
application/kcloud/mqtt_api.c
application/kcloud/mqtt_api.c
+6
-7
application/klansdk/kk_data_handle.c
application/klansdk/kk_data_handle.c
+11
-5
application/klansdk/kk_data_mng.c
application/klansdk/kk_data_mng.c
+71
-2
application/klansdk/kk_lan_main.c
application/klansdk/kk_lan_main.c
+6
-0
common/api/com_api.c
common/api/com_api.c
+109
-113
common/api/com_api.h
common/api/com_api.h
+6
-5
common/api/tcp_channel.c
common/api/tcp_channel.c
+340
-351
common/hal/HAL_OS_linux.c
common/hal/HAL_OS_linux.c
+20
-20
doc/新中控业务层通讯协议ver1.0.1.docx
doc/新中控业务层通讯协议ver1.0.1.docx
+0
-0
midware/midware/area/kk_area_handle.c
midware/midware/area/kk_area_handle.c
+98
-101
midware/midware/area/kk_area_handle.h
midware/midware/area/kk_area_handle.h
+4
-3
midware/midware/dm/dm_fota.c
midware/midware/dm/dm_fota.c
+4
-4
midware/midware/dm/dm_fota.h
midware/midware/dm/dm_fota.h
+1
-1
midware/midware/dm/dm_ota.c
midware/midware/dm/dm_ota.c
+72
-77
midware/midware/dm/dm_ota.h
midware/midware/dm/dm_ota.h
+3
-3
midware/midware/dm/kk_dm_api.c
midware/midware/dm/kk_dm_api.c
+155
-160
midware/midware/dm/kk_dm_api.h
midware/midware/dm/kk_dm_api.h
+2
-2
midware/midware/dm/kk_dm_heartbeat.c
midware/midware/dm/kk_dm_heartbeat.c
+43
-46
midware/midware/dm/kk_dm_mng.c
midware/midware/dm/kk_dm_mng.c
+385
-384
midware/midware/dm/kk_dm_mng.h
midware/midware/dm/kk_dm_mng.h
+16
-16
midware/midware/dm/kk_dm_msg.c
midware/midware/dm/kk_dm_msg.c
+425
-430
midware/midware/dm/kk_dm_msg.h
midware/midware/dm/kk_dm_msg.h
+4
-4
midware/midware/dm/kk_dm_queue.c
midware/midware/dm/kk_dm_queue.c
+123
-126
midware/midware/dm/kk_dm_queue.h
midware/midware/dm/kk_dm_queue.h
+9
-9
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+249
-251
midware/midware/dm/kk_property_db.c
midware/midware/dm/kk_property_db.c
+84
-93
midware/midware/dm/kk_property_db.h
midware/midware/dm/kk_property_db.h
+3
-3
midware/midware/dm/kk_sub_db.c
midware/midware/dm/kk_sub_db.c
+88
-89
midware/midware/dm/kk_sync_data.c
midware/midware/dm/kk_sync_data.c
+44
-42
midware/midware/history/kk_history_db.c
midware/midware/history/kk_history_db.c
+64
-64
midware/midware/midware.c
midware/midware/midware.c
+359
-421
midware/midware/ota/iotx_ota.c
midware/midware/ota/iotx_ota.c
+49
-49
midware/midware/ota/ota_lib.c
midware/midware/ota/ota_lib.c
+10
-10
midware/midware/scene/kk_scene_db.c
midware/midware/scene/kk_scene_db.c
+152
-159
midware/midware/scene/kk_scene_handle.c
midware/midware/scene/kk_scene_handle.c
+107
-92
midware/midware/scene/kk_scene_handle.h
midware/midware/scene/kk_scene_handle.h
+2
-2
midware/midware/utils/infra_md5.c
midware/midware/utils/infra_md5.c
+1
-1
midware/tsl/tsl_handle/kk_tsl_api.c
midware/tsl/tsl_handle/kk_tsl_api.c
+578
-579
midware/tsl/tsl_handle/kk_tsl_api.h
midware/tsl/tsl_handle/kk_tsl_api.h
+6
-6
midware/tsl/tsl_handle/kk_tsl_common.h
midware/tsl/tsl_handle/kk_tsl_common.h
+26
-26
midware/tsl/tsl_handle/kk_tsl_func.c
midware/tsl/tsl_handle/kk_tsl_func.c
+573
-573
midware/tsl/tsl_handle/kk_tsl_load.c
midware/tsl/tsl_handle/kk_tsl_load.c
+3
-4
midware/tsl/tsl_handle/kk_tsl_parse.c
midware/tsl/tsl_handle/kk_tsl_parse.c
+1315
-1315
midware/tsl/tsl_handle/kk_utils.c
midware/tsl/tsl_handle/kk_utils.c
+247
-247
No files found.
application/kcloud/kcloud_config.h
View file @
f7abf54d
application/kcloud/kcloud_data_handle.c
View file @
f7abf54d
...
...
@@ -67,7 +67,6 @@ static char *s_split_product[] = {
"3024"
//肖邦系列三路面板
};
static
int
kk_utils_memtok
(
_IN_
char
*
input
,
_IN_
int
input_len
,
_IN_
char
delimiter
,
_IN_
int
index
,
_OU_
int
*
offset
)
{
int
item_index
=
0
;
...
...
@@ -232,7 +231,6 @@ int _kk_sendto_cloud(cJSON *root)
free
(
out
);
free
(
topic
);
return
RETURN_SUCCESS
;
}
else
if
(
strstr
(
msgTypeStr
->
valuestring
,
KK_FILTER_TOPO_BATCH_DELETE
)
!=
NULL
){
cJSON
*
params
=
NULL
;
...
...
@@ -507,7 +505,6 @@ static char * _kk_data_create(const char *topic,const char *data)
free
(
msgStr
);
return
NULL
;
}
memset
(
infoStr
,
0x0
,
infoStr_len
);
snprintf
(
infoStr
,
infoStr_len
,
DM_MSG_TO_MIDDWARE
,
msgStr
,
productCode
,
deviceCode
);
...
...
application/kcloud/kcloud_main.c
View file @
f7abf54d
...
...
@@ -61,7 +61,6 @@ extern int kk_info_report_start(void);
int
main
(
int
argc
,
char
*
argv
[])
{
int
rc
=
0
;
open
(
"kcloud"
,
LOG_PID
,
LOG_USER
);
/*set the callback to get the device date to cloud*/
kk_ipc_init
(
IPC_APP2MID
,(
ipc_cb
*
)
KK_Data_FromDev
,
NULL
,
NULL
);
...
...
application/kcloud/kk_register.c
View file @
f7abf54d
...
...
@@ -315,13 +315,11 @@ int kk_start_ccu_register(void)
if
(
inet_pton
(
AF_INET
,
IPSTR
,
&
servaddr
.
sin_addr
)
<=
0
){
printf
(
"--inet_pton error!
\n
"
);
close
(
sockfd
);
return
-
1
;
};
if
(
connect
(
sockfd
,
(
struct
sockaddr
*
)
&
servaddr
,
sizeof
(
servaddr
))
<
0
){
printf
(
"connect error!
\n
"
);
close
(
sockfd
);
return
-
1
;
}
printf
(
"connect successful
\n
"
);
...
...
application/kcloud/kk_topic_mng.c
View file @
f7abf54d
...
...
@@ -63,10 +63,12 @@ int KK_Subdev_Subscribe(const cJSON *root)
snprintf
(
url
,
url_len
,
KK_URI_SYS_PREFIX
,
productCode
->
valuestring
,
deviceCode
->
valuestring
);
INFO_PRINT
(
"sys [%s][%d] URL:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
url
);
res
=
KK_MQTT_SubTopic
(
url
);
memset
(
url
,
0
,
url_len
);
snprintf
(
url
,
url_len
,
KK_URI_SYS_PREFIX_SERVICE
,
productCode
->
valuestring
,
deviceCode
->
valuestring
);
INFO_PRINT
(
"sys [%s][%d] URL:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
url
);
res
=
KK_MQTT_SubTopic
(
url
);
memset
(
url
,
0
,
url_len
);
snprintf
(
url
,
url_len
,
KK_URI_SYS_PREFIX_TOPO_CHANGE
,
productCode
->
valuestring
,
deviceCode
->
valuestring
);
INFO_PRINT
(
"sys [%s][%d] URL:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
url
);
...
...
application/kcloud/mqtt_api.c
View file @
f7abf54d
...
...
@@ -180,7 +180,6 @@ static void mqtt_set_callbacks(void)
MQTTAsync_setDeliveryCompleteCallback
(
s_Client
,
NULL
,
onDeliveryComplete
);
MQTTAsync_setConnected
(
s_Client
,
NULL
,
onConnectBuild
);
MQTTAsync_setDisconnected
(
s_Client
,
NULL
,
onDisConnected
);
}
void
KK_Get_MqttClient
(
MQTTAsync
*
pClient
)
{
...
...
application/klansdk/kk_data_handle.c
View file @
f7abf54d
...
...
@@ -478,7 +478,7 @@ static int kk_create_scene_to_sdk(cJSON *root)
cJSON_AddItemToObject
(
root
,
"scenes"
,
scenes
);
return
0
;
}
int
kk_create_syncinfo_to_sdk
(
voi
d
)
int
kk_create_syncinfo_to_sdk
(
cJSON
*
payloa
d
)
{
cJSON
*
air_box_devices
;
cJSON
*
alarms
;
...
...
@@ -529,6 +529,9 @@ int kk_create_syncinfo_to_sdk(void)
kk_create_devices_to_sdk
(
root
);
kk_create_rooms_to_sdk
(
root
);
#if 1
...
...
@@ -593,14 +596,17 @@ void KK_Data_FromMid(void* str,int len)
if
(
typeJson
==
NULL
)
return
;
if
(
strstr
(
typeJson
->
valuestring
,
SYNC_MSG_TYPE_REPLY
)
!=
NULL
){
kk_parse_syncinfo
(
payload
);
kk_create_syncinfo_to_sdk
();
kk_create_syncinfo_to_sdk
(
payload
);
printf
(
"TTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTTT
\n
"
);
}
else
if
((
typeJson
->
valuestring
,
"/thing/event/property/post"
)
!=
NULL
){
}
else
if
(
strstr
(
typeJson
->
valuestring
,
"/thing/event/property/post"
)
!=
NULL
){
property_post_deal
(
deviceCode
->
valuestring
,
payload
);
}
else
if
(
strstr
(
typeJson
->
valuestring
,
"/thing/topo/delete"
)
!=
NULL
){
device_delete_sync
(
payload
);
}
else
if
(
strstr
(
typeJson
->
valuestring
,
"/thing/status/online"
)
!=
NULL
){
device_add_sync
(
payload
);
}
}
application/klansdk/kk_data_mng.c
View file @
f7abf54d
...
...
@@ -162,7 +162,7 @@ int kk_creater_nodeid(char *deviceCode,int channel,char *nodeId)
printf
(
"channel=%d
\n
"
,
channel
);
printf
(
"deviceCode=%s
\n
"
,
deviceCode
);
printf
(
",,,,
\n
"
);
//
INFO_PRINT("-------------->deviceCode=%s,channel=%d\n",deviceCode,channel);
INFO_PRINT
(
"-------------->deviceCode=%s,channel=%d
\n
"
,
deviceCode
,
channel
);
printf
(
"aaa-1
\n
"
);
if
(
kk_check_lan_node_exist
(
deviceCode
,
channel
)){
...
...
@@ -187,7 +187,7 @@ int kk_creater_nodeid(char *deviceCode,int channel,char *nodeId)
sprintf
(
nodeId
,
"%d"
,
node
);
printf
(
"aaa-4
\n
"
);
//
INFO_PRINT("[node]deviceCode=%s,channel=%d,node=%d,nodeId=%s\n",deviceCode,channel,node,nodeId);
INFO_PRINT
(
"[node]deviceCode=%s,channel=%d,node=%d,nodeId=%s
\n
"
,
deviceCode
,
channel
,
node
,
nodeId
);
return
0
;
...
...
@@ -280,6 +280,73 @@ int _deviceCode_switchto_mac(char * deviceCode,char *mac)
}
typedef
struct
{
char
*
floor_id
;
char
*
room_id
;
char
*
room_icon
;
char
*
room_name
;
cJSON
*
room_status
;
}
ROOM_ITEM
;
cJSON
*
_room_build
(
ROOM_ITEM
*
item
)
{
cJSON
*
room
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
room
,
"floor_id"
,
item
->
floor_id
);
cJSON_AddStringToObject
(
room
,
"id"
,
item
->
room_id
);
cJSON_AddStringToObject
(
room
,
"room_icon"
,
item
->
room_icon
);
cJSON_AddStringToObject
(
room
,
"name"
,
item
->
room_name
);
cJSON_AddItemToObject
(
room
,
"room_status"
,
item
->
room_status
);
return
room
;
}
cJSON
*
_rooms_build
(
int
num
,
ROOM_ITEM
**
items
)
{
cJSON
*
rooms
=
cJSON_CreateArray
();
cJSON
*
room
;
int
i
;
for
(
int
i
=
0
;
i
<
num
;
i
++
){
room
=
_room_build
(
items
[
i
]);
if
(
room
!=
NULL
){
cJSON_AddItemToArray
(
rooms
,
room
);
}
}
return
rooms
;
}
cJSON
*
kk_create_rooms_to_sdk
(
cJSON
*
payload
)
{
cJSON
*
data_1
=
cJSON_GetObjectItem
(
payload
,
"data"
);
cJSON
*
data_2
=
cJSON_GetObjectItem
(
data_1
,
"data"
);
cJSON
*
rooms
=
cJSON_GetObjectItem
(
data_2
,
"rooms"
);
cJSON
*
room
;
cJSON
*
roomId
,
*
name
,
*
devices
,
*
scenes
;
int
i
;
int
num
=
cJSON_GetArraySize
(
rooms
);
ROOM_ITEM
*
items
=
(
ROOM_ITEM
*
)
malloc
(
sizeof
(
ROOM_ITEM
)
*
num
);
ROOM_ITEM
*
item
=
item
;
memset
(
items
,
0
,(
sizeof
(
ROOM_ITEM
)
*
num
));
for
(
i
=
0
;
i
<
num
;
i
++
,
item
++
){
room
=
cJSON_GetArrayItem
(
rooms
,
i
);
roomId
=
cJSON_GetObjectItem
(
room
,
"roomId"
);
name
=
cJSON_GetObjectItem
(
room
,
"name"
);
devices
=
cJSON_GetObjectItem
(
room
,
"devices"
);
scenes
=
cJSON_GetObjectItem
(
room
,
"scenes"
);
memcpy
(
item
->
floor_id
,
""
,
sizeof
(
""
));
memcpy
(
item
->
room_id
,
roomId
->
valuestring
,
sizeof
(
roomId
->
valuestring
));
memcpy
(
item
->
room_icon
,
""
,
sizeof
(
""
));
memcpy
(
item
->
room_name
,
name
->
valuestring
,
sizeof
(
name
->
valuestring
));
memcpy
(
item
->
room_status
,
""
,
sizeof
(
""
));
}
_rooms_build
(
num
,
&
items
);
}
int
kk_create_devices_to_sdk
(
cJSON
*
root
)
{
...
...
@@ -426,6 +493,8 @@ int kk_map_dev_search_by_deviceCode(char *deviceCode, kk_map_dev_node_t **node)
{
kk_map_dev_ctx
*
ctx
=
_kk_map_dev_ctx
();
kk_map_dev_node_t
*
search_node
=
NULL
;
kk_map_dev_node_t
*
n
=
NULL
;
//list_for_each_entry_safe
list_for_each_entry
(
search_node
,
&
ctx
->
dev_list
,
linked_list
,
kk_map_dev_node_t
)
{
if
(
(
strlen
(
search_node
->
deviceCode
)
==
strlen
(
deviceCode
))
&&
...
...
application/klansdk/kk_lan_main.c
View file @
f7abf54d
...
...
@@ -35,11 +35,15 @@ static void sig_handler(int sig)
abort
();
}
extern
void
ttttt_test
();
int
main
(
int
argc
,
char
*
argv
[])
{
int
rc
=
0
;
char
*
ppp
;
open
(
"kk_lan"
,
LOG_PID
,
LOG_USER
);
ttttt_test
();
/*set the callback to get the device date to cloud*/
kk_ipc_init
(
IPC_APP2MID
,(
ipc_cb
*
)
KK_Data_FromMid
,
NULL
,
NULL
);
kk_findccu_handle_init
();
...
...
@@ -59,6 +63,8 @@ int main(int argc, char* argv[])
while
(
1
){
extern
void
kk_scene_build_test
(
void
);
kk_scene_build_test
();
//count++;
//if(count == 10){
//kk_ipc_send(IPC_APP2MID, "wooooooooooooooooooooooooooooooooooollllll!", strlen("wooooooooooooooooooooooooooooooooooollllll!")+1);
...
...
common/api/com_api.c
View file @
f7abf54d
...
...
@@ -137,7 +137,6 @@ void __loop_init(Bloop_ctrl_t *loop_ctrl, struct ev_loop* loop)
int
__nanomsg_init
(
Bloop_ctrl_t
*
loop_ctrl
,
ipc_type
type
,
char
*
chlMark
,
char
*
ip
)
{
loop_ctrl
->
ba
.
n
=
-
1
;
loop_ctrl
->
ba
.
s
=
-
1
;
loop_ctrl
->
ab
.
n
=
-
1
;
...
...
@@ -329,7 +328,6 @@ int kk_ipc_init(ipc_type type, ipc_cb cb, char* chlMark, char* ip)
if
(
loop_ctrl
->
cb
!=
NULL
){
WARNING_PRINT
(
"middleware to platform ipc has been inited!
\r\n
"
);
return
-
1
;
}
if
(
__nanomsg_init
(
loop_ctrl
,
type
,
chlMark
,
ip
)
<
0
)
{
...
...
@@ -457,11 +455,9 @@ int kk_ipc_send_ex(ipc_type type, void* data, int len, char* chalMark)
loop_ctrl
->
sendErrCnt
=
0
;
loop_ctrl
->
isconnect
=
1
;
}
}
return
0
;
}
...
...
common/api/com_api.h
View file @
f7abf54d
...
...
@@ -49,6 +49,7 @@ typedef enum {
#define MSG_TOPO_CHANGE_DEVICES_STR "devices"
#define MSG_DEVICE_MAC "mac"
#define MSG_DEVICE_PARENTCODE "parentCode"
#define MSG_AREA_ADDROOM_DEVICENAME "name"
#define MSG_AREA_ADDROOM_ROOMNAME "roomName"
#define MSG_AREA_ROOM_ROOMID "roomId"
#define MSG_AREA_ROOM_EPNUM "epNum"
...
...
common/api/tcp_channel.c
View file @
f7abf54d
...
...
@@ -267,7 +267,6 @@ static kk_tcp_ctrl_t* get_channel_by_deviceCode(char deviceCode[DEVICE_CODE_LEN]
}
}
return
NULL
;
}
static
kk_tcp_ctrl_t
*
get_channel_by_ip
(
char
ip
[
MAX_IP_LEN
]){
...
...
@@ -285,7 +284,6 @@ static kk_tcp_ctrl_t* get_channel_by_ip(char ip[MAX_IP_LEN]){
}
}
return
NULL
;
}
#if 0
...
...
@@ -321,7 +319,6 @@ static int reset_by_sock(int sock){
}
}
return
-
1
;
}
static
int
set_sock_by_ip
(
char
ip
[
MAX_IP_LEN
],
int
sock
){
int
i
=
0
;
...
...
@@ -332,7 +329,6 @@ static int set_sock_by_ip(char ip[MAX_IP_LEN], int sock){
INFO_PRINT
(
"[%s] ip=%s
\n
"
,
__FUNCTION__
,
ip
);
for
(;
i
<
MAX_LISTEN_NUM
;
i
++
){
if
(
strcmp
(
ip
,
g_tcp_ctrl
[
i
].
ip
)
==
0
){
g_tcp_ctrl
[
i
].
sock
=
sock
;
INFO_PRINT
(
"[%s] idx=%d ip=%s sock=%d
\n
"
,
__FUNCTION__
,
i
,
ip
,
g_tcp_ctrl
[
i
].
sock
);
//create mutex
...
...
@@ -343,12 +339,10 @@ static int set_sock_by_ip(char ip[MAX_IP_LEN], int sock){
return
-
1
;
}
}
return
0
;
}
}
return
-
1
;
}
int
kk_is_tcp_channel
(
char
devCode
[
DEVICE_CODE_LEN
]){
...
...
@@ -361,7 +355,6 @@ int kk_is_tcp_channel(char devCode[DEVICE_CODE_LEN]){
INFO_PRINT
(
"[%s] devCode=%s
\n
"
,
__FUNCTION__
,
devCode
);
for
(;
i
<
MAX_LISTEN_NUM
;
i
++
){
if
(
strcmp
(
devCode
,
g_tcp_ctrl
[
i
].
deviceCode
)
==
0
){
INFO_PRINT
(
"[%s] idx=%d ip=%s sock=%d
\n
"
,
__FUNCTION__
,
i
,
g_tcp_ctrl
[
i
].
ip
,
g_tcp_ctrl
[
i
].
sock
);
return
g_tcp_ctrl
[
i
].
sock
;
}
...
...
@@ -396,7 +389,6 @@ int kk_set_tcp_channel(char devCode[DEVICE_CODE_LEN], char ip[MAX_IP_LEN]){
}
for
(;
i
<
MAX_LISTEN_NUM
;
i
++
){
if
(
strcmp
(
devCode
,
g_tcp_ctrl
[
i
].
deviceCode
)
==
0
){
strncpy
(
g_tcp_ctrl
[
i
].
ip
,
ip
,
strlen
(
ip
));
INFO_PRINT
(
"find and replace it [%d][%s][%s]
\n
"
,
i
,
g_tcp_ctrl
[
i
].
ip
,
devCode
);
...
...
@@ -414,7 +406,6 @@ int kk_set_tcp_channel(char devCode[DEVICE_CODE_LEN], char ip[MAX_IP_LEN]){
}
if
(
isEmptyIdx
!=
-
1
){
strncpy
(
g_tcp_ctrl
[
isEmptyIdx
].
ip
,
ip
,
strlen
(
ip
));
strncpy
(
g_tcp_ctrl
[
isEmptyIdx
].
deviceCode
,
devCode
,
strlen
(
devCode
));
INFO_PRINT
(
"idx deviceCode ip[%d][%s][%s]"
,
isEmptyIdx
,
g_tcp_ctrl
[
isEmptyIdx
].
deviceCode
,
g_tcp_ctrl
[
isEmptyIdx
].
ip
);
...
...
@@ -423,7 +414,6 @@ int kk_set_tcp_channel(char devCode[DEVICE_CODE_LEN], char ip[MAX_IP_LEN]){
}
return
-
1
;
}
...
...
@@ -698,7 +688,6 @@ int kk_tcp_channel_ser_send(char* data, int len, char chalMark[DEVICE_CODE_LEN])
printf("[%s] write failed!!!! \n",__FUNCTION__);
}*/
}
}
return
ret
;
}
...
...
common/hal/HAL_OS_linux.c
View file @
f7abf54d
doc/新中控业务层通讯协议ver1.0.1.docx
deleted
100644 → 0
View file @
af5cfaad
File deleted
midware/midware/area/kk_area_handle.c
View file @
f7abf54d
...
...
@@ -69,8 +69,10 @@ static int _kk_area_db_init(void)
const
char
*
pAreaDevTable
=
"CREATE TABLE IF NOT EXISTS AreaDevInfo( \
idx INTEGER PRIMARY KEY, \
roomId varchar(256), \
roomName varchar(256), \
deviceCode varchar(33), \
epNum varchar(10))"
;
epNum varchar(10), \
devName varchar(256))"
;
if
(
sqlite3_exec
(
ctx
->
pDb
,
pAreaDevTable
,
NULL
,
NULL
,
&
pcErr
)
!=
SQLITE_OK
)
{
...
...
@@ -84,8 +86,6 @@ static int _kk_area_db_init(void)
_kk_area_unlock
();
return
SUCCESS_RETURN
;
}
int
kk_area_init
(
void
)
{
int
res
=
0
;
...
...
@@ -103,20 +103,17 @@ int kk_area_init(void)
}
return
SUCCESS_RETURN
;
}
int
kk_room_add
(
const
char
*
name
,
const
char
*
roomId
)
{
int
res
=
0
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
char
*
sqlCmd
=
NULL
;
char
*
zErrMsg
=
0
;
printf
(
"--->kk_room_add,name=%s,roomid=%s
\n
"
,
name
,
roomId
);
const
char
*
insertCmd
=
"insert into AreaInfo (name, roomId) \
values ('%s','%s');"
;
_kk_area_lock
();
ctx
->
roomNum
++
;
HAL_GetTime_s
((
char
*
)
roomId
);
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
name
,
roomId
);
res
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
...
...
@@ -130,7 +127,6 @@ int kk_room_add(const char *name,const char *roomId)
_kk_area_unlock
();
return
SUCCESS_RETURN
;
}
int
kk_room_delete
(
const
char
*
roomId
)
{
int
res
=
0
;
...
...
@@ -139,7 +135,6 @@ int kk_room_delete(const char *roomId)
char
*
zErrMsg
=
0
;
const
char
*
deleteCmd
=
"delete from AreaInfo where roomId = '%s';"
;
_kk_area_lock
();
sqlCmd
=
sqlite3_mprintf
(
deleteCmd
,
roomId
);
...
...
@@ -158,11 +153,12 @@ int kk_room_delete(const char *roomId)
return
SUCCESS_RETURN
;
}
static
int
_kk_check_dev_exist
(
const
char
*
deviceCode
)
static
int
_kk_check_dev_exist
(
const
char
*
deviceCode
,
const
char
*
epNum
)
{
int
isExist
=
0
;
sqlite3_stmt
*
stmt
;
char
*
pDeviceCode
=
NULL
;
char
*
pEpNum
=
NULL
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
const
char
*
searchCmd
=
"select * from AreaDevInfo;"
;
_kk_area_lock
();
...
...
@@ -171,9 +167,9 @@ static int _kk_check_dev_exist(const char* deviceCode)
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
if
(
!
strcmp
(
deviceCode
,
pDeviceCode
))
{
pEpNum
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_EPNUM
);
if
(
!
strcmp
(
deviceCode
,
pDeviceCode
)
&&
!
strcmp
(
pEpNum
,
epNum
))
{
isExist
=
1
;
break
;
}
...
...
@@ -184,22 +180,22 @@ static int _kk_check_dev_exist(const char* deviceCode)
return
isExist
;
}
int
kk_room_dev_add
(
const
char
*
roomId
,
const
char
*
deviceCode
,
const
char
*
epNum
)
int
kk_room_dev_add
(
const
char
*
roomId
,
const
char
*
roomName
,
const
char
*
deviceCode
,
const
char
*
epNum
,
const
char
*
devName
)
{
int
res
=
0
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
char
*
sqlCmd
=
NULL
;
char
*
zErrMsg
=
0
;
if
(
_kk_check_dev_exist
(
deviceCode
)){
sqlCmd
=
sqlite3_mprintf
(
"UPDATE AreaDevInfo SET roomId='%s', epNum='%s' \
WHERE deviceCode= '%s'"
,
roomId
,
epNum
,
deviceCode
);
if
(
_kk_check_dev_exist
(
deviceCode
,
epNum
)){
sqlCmd
=
sqlite3_mprintf
(
"UPDATE AreaDevInfo SET roomId='%s', devName='%s', devName='%s'\
WHERE deviceCode= '%s' and epNum = '%s'"
,
roomId
,
roomName
,
devName
,
deviceCode
,
epNum
);
}
else
{
const
char
*
insertCmd
=
"insert into AreaDevInfo (roomId,
deviceCode, epNum
) \
values ('%s','%s','%s');"
;
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
roomId
,
deviceCode
,
epNum
);
const
char
*
insertCmd
=
"insert into AreaDevInfo (roomId,
roomName, deviceCode, epNum, devName
) \
values ('%s','%s','%s'
,'%s','%s'
);"
;
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
roomId
,
roomName
,
deviceCode
,
epNum
,
devName
);
}
_kk_area_lock
();
...
...
@@ -223,6 +219,9 @@ int kk_room_dev_remove(const char *deviceCode,const char *epNum)
char
*
zErrMsg
=
0
;
const
char
*
insertCmd
=
NULL
;
printf
(
"deviceCode---->%s,%s
\n
"
,
deviceCode
,
epNum
);
if
(
epNum
==
NULL
){
insertCmd
=
"delete from AreaDevInfo where deviceCode = '%s';"
;
}
...
...
@@ -244,8 +243,6 @@ int kk_room_dev_remove(const char *deviceCode,const char *epNum)
return
SUCCESS_RETURN
;
}
int
kk_room_device_list_add
(
const
char
*
deviceCode
)
{
//int len;
...
...
midware/midware/area/kk_area_handle.h
View file @
f7abf54d
...
...
@@ -16,14 +16,15 @@ enum{
enum
{
DB_DEV_IDX
=
0
,
DB_DEV_ROOM_ID
,
DB_DEV_ROOM_NAME
,
DB_DEV_DEVICECODE
,
DB_DEV_EPNUM
,
DB_DEV_DEV_NAME
,
};
int
kk_room_delete
(
const
char
*
roomId
);
int
kk_room_add
(
const
char
*
name
,
const
char
*
roomId
);
int
kk_area_init
(
void
);
int
kk_room_dev_add
(
const
char
*
roomId
,
const
char
*
deviceCode
,
const
char
*
epNum
);
int
kk_room_dev_add
(
const
char
*
roomId
,
const
char
*
roomName
,
const
char
*
deviceCode
,
const
char
*
epNum
,
const
char
*
devName
);
int
kk_room_dev_remove
(
const
char
*
deviceCode
,
const
char
*
epNum
);
int
kk_room_device_list_add
(
const
char
*
deviceCode
);
kk_dev_list_t
*
kk_get_room_deviceCode
(
const
char
*
roomId
);
...
...
midware/midware/dm/dm_fota.c
View file @
f7abf54d
midware/midware/dm/dm_fota.h
View file @
f7abf54d
midware/midware/dm/dm_ota.c
View file @
f7abf54d
...
...
@@ -199,14 +199,11 @@ void dm_ota_handle(void *data){
}
else
{
printf
(
"parse params error !!
\n
"
);
}
}
else
{
printf
(
"invaild ota type: [%d]
\n
"
,
atoi
(
typeJson
->
valuestring
));
}
cJSON_Delete
(
json
);
cJSON_Delete
(
info
);
}
int
dm_ota_check
(
void
*
payload
,
int
len
,
iotx_ota_topic_types_t
type
){
...
...
@@ -217,7 +214,6 @@ int dm_ota_check(void* payload, int len, iotx_ota_topic_types_t type){
dm_ota_get_ota_handle
(
&
otaHandle
);
return
ota_callback
(
otaHandle
,
payload
,
len
,
type
);
}
int
dm_ota_yield
(
int
timeout_ms
)
...
...
@@ -236,7 +232,6 @@ int dm_ota_yield(int timeout_ms)
printf
(
"dm_ota_yield call
\n
"
);
dm_ota_handle
(
data
);
free
(
data
);
data
=
NULL
;
}
else
{
...
...
midware/midware/dm/dm_ota.h
View file @
f7abf54d
midware/midware/dm/kk_dm_api.c
View file @
f7abf54d
...
...
@@ -342,15 +342,11 @@ int iotx_dm_subscribe(_IN_ int devid)
dm_queue_msg_insert4
(
buf
);
#endif
}
else
{
ERROR_PRINT
(
"
\n
[%d][%s] malloc faild kk_ipc_send
\n
"
,
__LINE__
,
__FUNCTION__
);
return
FAIL_RETURN
;
}
INFO_PRINT
(
"
\n
[%d][%s] [%lu] send app to subscribe mqtt
\n
"
,
__LINE__
,
__FUNCTION__
,
HAL_UptimeMs
());
return
SUCCESS_RETURN
;
}
...
...
@@ -368,7 +364,6 @@ void kk_dm_ota_send(void *data, int len){
free
(
buf
);
return
;
}
}
}
...
...
midware/midware/dm/kk_dm_api.h
View file @
f7abf54d
midware/midware/dm/kk_dm_heartbeat.c
View file @
f7abf54d
...
...
@@ -25,7 +25,6 @@
*************************************************************/
typedef
struct
{
void
*
mutex
;
void
*
hearbeat_thread
;
int
hearbeat_thread_running
;
...
...
@@ -90,7 +89,6 @@ void *kk_heartbeat_yield(void *args)
list_for_each_entry
(
gw
,
&
ctx
->
gw_status_list
,
linked_list
,
kk_gw_status_ctx_t
){
if
(
gw
->
isOnline
==
KK_DEV_ONLINE
){
list_del
(
&
gw
->
linked_list
);
//kk_subDev_send_property_get(gw->deviceCode);
free
(
gw
);
}
...
...
@@ -155,7 +153,6 @@ int kk_heartbeat_init(void)
/* Init Device List */
// INIT_LIST_HEAD(&ctx->dev_list);
}
/************************************************************
*功能描述: 上电把需要查询状态的网关加入队列,load设备的时候调用此函数
...
...
midware/midware/dm/kk_dm_mng.c
View file @
f7abf54d
...
...
@@ -166,7 +166,6 @@ int dm_mgr_properities_db_create(kk_tsl_t* dev_shadow,char *deviceCode,int devTy
}
num
=
dev_shadow
->
property_number
;
for
(
idx
=
0
;
idx
<
num
;
idx
++
){
pProperty
=
dev_shadow
->
properties
+
idx
;
//INFO_PRINT("dm_mgr_properities_db_create pProperty->identifier:%s!!\n",pProperty->identifier);
if
(
pProperty
){
...
...
@@ -661,7 +660,6 @@ static unsigned int g_report_id = 1;
int
iotx_report_id
(
void
)
{
return
g_report_id
++
;
}
...
...
@@ -933,9 +931,13 @@ int dm_mgr_upstream_thing_sub_unregister(_IN_ int devid)
memset
(
&
request
,
0
,
sizeof
(
dm_msg_request_t
));
request
.
msgTypeStr
=
(
char
*
)
DM_URI_THING_SUB_UNREGISTER
;
if
(
devid
==
KK_DM_DEVICE_CCU_DEVICEID
){
memcpy
(
request
.
productCode
,
node
->
productCode
,
strlen
(
node
->
productCode
));
memcpy
(
request
.
deviceCode
,
node
->
deviceCode
,
strlen
(
node
->
deviceCode
));
}
else
{
memcpy
(
request
.
productCode
,
gw_node
->
productCode
,
strlen
(
gw_node
->
productCode
));
memcpy
(
request
.
deviceCode
,
gw_node
->
deviceCode
,
strlen
(
gw_node
->
deviceCode
));
}
/* Get Params And Method */
res
=
dm_msg_thing_sub_unregister
(
node
->
deviceCode
,
&
request
);
...
...
@@ -1573,6 +1575,5 @@ int dm_mgr_subdev_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN])
free
(
node
);
node
=
NULL
;
return
SUCCESS_RETURN
;
}
midware/midware/dm/kk_dm_mng.h
View file @
f7abf54d
midware/midware/dm/kk_dm_msg.c
View file @
f7abf54d
...
...
@@ -263,9 +263,9 @@ int dm_msg_thing_topo_delete(_IN_ char deviceCode[DEVICE_CODE_MAXLEN],_OU_ dm_ms
const
char
DM_MSG_STATUS_CLOUD_METHOD
[]
DM_READ_ONLY
=
"thing.ccu.cloudstate"
;
const
char
DM_MSG_STATUS_CLOUD
[]
DM_READ_ONLY
=
"{
\"
deviceCode
\"
:
\"
%s
\"
}"
;
int
dm_msg_status_cloud
(
_IN_
char
productCode
[
PRODUCT_CODE_MAXLEN
],
int
dm_msg_status_cloud
(
_IN_
char
productCode
[
PRODUCT_CODE_MAXLEN
],
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
_OU_
dm_msg_request_t
*
request
)
{
{
char
*
params
=
NULL
;
int
params_len
=
0
;
...
...
@@ -292,13 +292,13 @@ const char DM_MSG_STATUS_CLOUD[] DM_READ_ONLY =
request
->
params_len
=
strlen
(
request
->
params
);
return
SUCCESS_RETURN
;
}
}
const
char
DM_MSG_COMBINE_STATUS_ONLINE_METHOD
[]
DM_READ_ONLY
=
"thing.status.online"
;
const
char
DM_MSG_COMBINE_STATUS_ONLINE
[]
DM_READ_ONLY
=
"{
\"
deviceCode
\"
:
\"
%s
\"
}"
;
int
dm_msg_status_online
(
_IN_
char
productCode
[
PRODUCT_CODE_MAXLEN
],
int
dm_msg_status_online
(
_IN_
char
productCode
[
PRODUCT_CODE_MAXLEN
],
_IN_
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
_OU_
dm_msg_request_t
*
request
)
{
{
char
*
params
=
NULL
;
int
params_len
=
0
;
char
timestamp
[
DM_UTILS_UINT64_STRLEN
]
=
{
0
};
...
...
@@ -331,7 +331,7 @@ const char DM_MSG_COMBINE_STATUS_ONLINE[] DM_READ_ONLY =
request
->
params_len
=
strlen
(
request
->
params
);
return
SUCCESS_RETURN
;
}
}
const
char
DM_MSG_COMBINE_STATUS_OFFLINE_METHOD
[]
DM_READ_ONLY
=
"thing.status.offline"
;
const
char
DM_MSG_COMBINE_STATUS_OFFLINE
[]
DM_READ_ONLY
=
...
...
@@ -902,7 +902,6 @@ int dm_msg_ccu_property_post(dm_mgr_dev_node_t *node)
{
if
(
node
==
NULL
){
return
INVALID_PARAMETER
;
}
char
*
payload_property
=
kk_tsl_get_post_property_str
(
node
->
dev_shadow
,
NULL
);
if
(
payload_property
!=
NULL
){
...
...
@@ -1088,7 +1087,6 @@ int kk_msg_execute_property_set(const char *productCode,const char *deviceCode,c
free
(
payload
);
cJSON_Delete
(
root
);
return
SUCCESS_RETURN
;
}
...
...
@@ -1121,11 +1119,9 @@ int kk_msg_execute_property_get(dm_mgr_dev_node_t *node)
for
(
i
=
0
;
i
<
serviceNum
;
i
++
){
kk_tsl_service_t
*
item
=
node
->
dev_shadow
->
services
+
i
;
if
(
!
strcmp
(
item
->
identifier
,
"get"
)){
int
inputNum
=
item
->
input_data_number
;
if
(
inputNum
==
0
){
paramS
=
"{}"
;
}
else
{
for
(
j
=
0
;
j
<
inputNum
;
j
++
){
kk_tsl_data_t
*
inputItem
=
item
->
input_datas
+
j
;
...
...
@@ -1293,7 +1289,6 @@ int kk_msg_execute_scene_action(const char* params,const char *fatherDeviceCode)
free
(
payload
);
cJSON_Delete
(
root
);
return
SUCCESS_RETURN
;
}
int
kk_msg_execute_scene_delete
(
const
char
*
params
,
const
char
*
fatherDeviceCode
)
...
...
midware/midware/dm/kk_dm_msg.h
View file @
f7abf54d
midware/midware/dm/kk_dm_queue.c
View file @
f7abf54d
...
...
@@ -209,9 +209,6 @@ void dm_queue_deinit(void)
list_del
(
&
del_node
->
linked_list
);
free
(
del_node
);
}
}
int
dm_queue_msg_insert
(
void
*
data
)
...
...
midware/midware/dm/kk_dm_queue.h
View file @
f7abf54d
midware/midware/dm/kk_linkkit.c
View file @
f7abf54d
...
...
@@ -333,8 +333,6 @@ int kk_topo_delete_handle(cJSON *payload)
}
return
SUCCESS_RETURN
;
}
/************************************************************
...
...
@@ -363,13 +361,14 @@ static int kk_service_addRoom_handle(const char *deviceCode, cJSON *params)
return
res
;
}
cJSON
*
roomInfoStr
=
cJSON_GetObjectItem
(
params
,
MSG_AREA_ADDROOM_ROOMNAME
);
cJSON
*
roomIdStr
=
cJSON_GetObjectItem
(
params
,
MSG_AREA_ROOM_ROOMID
);
if
(
roomInfoStr
==
NULL
){
return
FAIL_RETURN
;
}
kk_room_add
(
roomInfoStr
->
valuestring
,
roomId
);
memcpy
(
roomId
,
roomIdStr
->
valuestring
,
strlen
(
roomIdStr
->
valuestring
));
kk_room_add
(
roomInfoStr
->
valuestring
,
roomIdStr
->
valuestring
);
kk_tsl_set_value
(
kk_tsl_set_event_output_value
,
node
->
dev_shadow
,
MSG_AREA_ADDROOM_NOTIFICATION_ROOMID
,
NULL
,
roomId
);
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述:删除房间处理函数
...
...
@@ -406,6 +405,14 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params)
return
INVALID_PARAMETER
;
}
cJSON
*
dev_name
=
cJSON_GetObjectItem
(
params
,
MSG_AREA_ADDROOM_DEVICENAME
);
if
(
dev_name
==
NULL
){
return
FAIL_RETURN
;
}
cJSON
*
room_name
=
cJSON_GetObjectItem
(
params
,
MSG_AREA_ADDROOM_ROOMNAME
);
if
(
room_name
==
NULL
){
return
FAIL_RETURN
;
}
cJSON
*
roomId
=
cJSON_GetObjectItem
(
params
,
MSG_AREA_ROOM_ROOMID
);
if
(
roomId
==
NULL
){
return
FAIL_RETURN
;
...
...
@@ -420,7 +427,7 @@ static int kk_service_addDeviceToRoom_handle(cJSON *params)
}
else
{
strcpy
(
epNumStr
,
epNum
->
valuestring
);
}
kk_room_dev_add
(
roomId
->
valuestring
,
deviceCode
->
valuestring
,
epNumStr
);
kk_room_dev_add
(
roomId
->
valuestring
,
room_name
->
valuestring
,
deviceCode
->
valuestring
,
epNumStr
,
dev_name
->
valuestring
);
return
SUCCESS_RETURN
;
}
/************************************************************
...
...
@@ -525,7 +532,6 @@ static int kk_service_executeRoom_handle(cJSON *params)
cJSON
*
action
=
cJSON_GetObjectItem
(
params
,
MSG_AREA_ROOM_ACTION
);
if
(
action
!=
NULL
){
kk_service_execute_action
(
action
,
search_node
);
}
}
pList
=
pList
->
next
;
...
...
@@ -954,11 +960,9 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
usleep
(
200000
);
dm_msg_ccu_property_post
(
node
);
}
}
else
if
(
strstr
(
typeJson
->
valuestring
,
KK_THING_OTA_DEVICE_UPGRADE
)){
INFO_PRINT
(
"ota upgrade...
\n
"
);
kk_dm_ota_send
(
data
,
strlen
(
data
)
+
1
);
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_REBOOT
)
==
0
){
INFO_PRINT
(
" reboot called!!!
\n
"
);
cJSON
*
msgId
=
cJSON_GetObjectItem
(
payload
,
MSG_COMMON_MSGID
);
...
...
@@ -977,7 +981,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
INFO_PRINT
(
" delete room
\n
"
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
kk_service_deleteRoom_handle
(
paramStr
);
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_ADDDEVICETOROOM
)
==
0
){
INFO_PRINT
(
" adddevicetoroom
\n
"
);
...
...
@@ -993,7 +996,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
INFO_PRINT
(
" executeroom
\n
"
);
cJSON
*
paramStr
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
kk_service_executeRoom_handle
(
paramStr
);
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_ADDSCENC
)
==
0
){
INFO_PRINT
(
" add scene
\n
"
);
...
...
@@ -1040,7 +1042,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
cJSON_Delete
(
root_
);
free
(
out_
);
}
}
}
else
if
(
strcmp
(
typeJson
->
valuestring
,
KK_THING_SERVICE_SYNCINFO
)
==
0
){
...
...
@@ -1049,7 +1050,6 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
}
else
{
INFO_PRINT
(
"Error msgtype!!!
\n
"
);
}
directReturn:
...
...
@@ -1508,12 +1508,10 @@ int kk_mid_subdev_batch_add( char productCode[PRODUCT_CODE_MAXLEN], char deviceC
res
=
_iotx_linkkit_subdev_login
(
devid
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
FAIL_RETURN
;
}
_iotx_linkkit_mutex_unlock
();
return
SUCCESS_RETURN
;
}
midware/midware/dm/kk_property_db.c
View file @
f7abf54d
...
...
@@ -60,8 +60,6 @@ static int _kk_property_db_Init(void)
_kk_property_db_lock
();
ctx
->
pDb
=
g_kk_pDb
;
const
char
*
pPrpertyTable
=
"CREATE TABLE IF NOT EXISTS PropertiesInfo( \
idx INTEGER PRIMARY KEY, \
deviceCode varchar(33), \
...
...
@@ -129,7 +127,6 @@ int kk_property_db_init(void)
res
=
_kk_property_db_Init
();
if
(
res
!=
SUCCESS_RETURN
){
ERROR_PRINT
(
"[%s][%d]kk_wlist_db_Init FAIL!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
}
//_kk_load_subDevice();
return
SUCCESS_RETURN
;
...
...
@@ -157,7 +154,6 @@ static int _kk_check_property_exist(const char* deviceCode,const char* identifie
pDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEVICECODE
);
pIdentifier
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_IDENTIFITER
);
if
(
!
strcmp
(
deviceCode
,
pDeviceCode
)
&&!
strcmp
(
identifier
,
pIdentifier
))
{
isExist
=
1
;
break
;
...
...
@@ -303,7 +299,6 @@ int kk_property_db_get_value(const char *deviceCode,const char *identifier,void*
valueType
==
KK_TSL_DATA_TYPE_BOOL
){
int
value_int
=
atoi
(
valueStr
);
*
(
int
*
)
value
=
value_int
;
}
else
if
(
valueType
==
KK_TSL_DATA_TYPE_FLOAT
){
float
value_float
=
atoi
(
valueStr
);
...
...
@@ -360,7 +355,6 @@ int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_pro
memcpy
(
curData
->
deviceCode
,
devcode
,
strlen
(
devcode
));
memcpy
(
curData
->
raw
,
valueStr
,
strlen
(
valueStr
));
curData
->
type
=
valueType
;
curData
++
;
idx
++
;
}
...
...
@@ -378,7 +372,6 @@ int kk_property_db_get_rawdata(const char *identifier,const int dev_type, kk_pro
*其他说明:
*************************************************************/
int
kk_property_db_update
(
const
char
*
deviceCode
)
{
int
res
=
0
;
int
idx
=
0
;
...
...
@@ -403,8 +396,6 @@ int kk_property_db_update(const char *deviceCode)
else
if
(
property
->
data_value
.
type
==
KK_TSL_DATA_TYPE_FLOAT
){
sprintf
(
tmpValue
,
"%f"
,
property
->
data_value
.
value_float
);
kk_property_db_update_value
(
deviceCode
,
property
->
identifier
,
tmpValue
);
}
else
if
(
property
->
data_value
.
type
==
KK_TSL_DATA_TYPE_DOUBLE
){
sprintf
(
tmpValue
,
"%f"
,
property
->
data_value
.
value_double
);
...
...
midware/midware/dm/kk_property_db.h
View file @
f7abf54d
midware/midware/dm/kk_sub_db.c
View file @
f7abf54d
...
...
@@ -94,7 +94,6 @@ static int kk_subDev_db_Init(void)
_kk_subDb_unlock
();
return
FAIL_RETURN
;
}
}
//eUtils_LockUnlock(&sLock);
...
...
@@ -134,7 +133,7 @@ static int _kk_load_subDevice(void)
ctx
->
subDevNum
++
;
}
usleep
(
100000
);
// send the topc info
// send the topo info
iotx_dm_subscribe
(
devId
);
//sync the data from property db
...
...
midware/midware/dm/kk_sync_data.c
View file @
f7abf54d
...
...
@@ -84,7 +84,9 @@ static int kk_get_rooms_devices(cJSON *roomDevicesArray,char *roomId)
deviceObj
=
cJSON_CreateObject
();
deviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
cJSON_AddStringToObject
(
deviceObj
,
KK_SYNC_DEVICECODE_STR
,
deviceCode
);
//cJSON_AddItemToArray(roomDevicesArray,deviceObj);
}
sqlite3_free
(
sqlCmd
);
sqlite3_finalize
(
stmt
);
return
SUCCESS_RETURN
;
...
...
@@ -413,7 +415,6 @@ static int kk_get_scenes_info(cJSON *data)
static
int
kk_get_ccu_properties
(
cJSON
*
property
)
{
char
*
sqlCmd
=
NULL
;
//char *zErrMsg = 0;
sqlite3_stmt
*
stmt
;
char
*
propertyStr
=
NULL
;
char
*
valueStr
=
NULL
;
...
...
@@ -474,10 +475,11 @@ char *kk_sync_get_info()
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
);
cJSON
*
property
=
cJSON_CreateObject
();
cJSON
*
property
=
cJSON_CreateObject
();
kk_get_ccu_properties
(
property
);
cJSON_AddItemToObject
(
data
,
KK_SYNC_PROPERTY_STR
,
property
);
out
=
cJSON_Print
(
root
);
printf
(
"kk_sync_get_info:%s
\n
"
,
out
);
cJSON_Delete
(
root
);
...
...
midware/midware/history/kk_history_db.c
View file @
f7abf54d
midware/midware/midware.c
View file @
f7abf54d
...
...
@@ -203,7 +203,6 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
return
INVALID_PARAMETER
;
}
}
}
else
{
kk_tsl_data_value_complex_t
*
complex_struct_1
=
NULL
;
...
...
@@ -246,7 +245,6 @@ static int kk_property_set_data_check(cJSON * payload,const char *deviceCode){
}
else
if
(
property
->
data_value
.
type
==
KK_TSL_DATA_TYPE_TEXT
){
if
(
strlen
(
propertyItem
->
valuestring
)
>
property
->
data_value
.
length
){
ERROR_PRINT
(
"ERROR !!!strlen(propertyItem->valuestring):%d,property->data_value.length:%d
\n
"
,
strlen
(
propertyItem
->
valuestring
),
property
->
data_value
.
length
);
return
INVALID_PARAMETER
;
}
...
...
@@ -339,7 +337,6 @@ void mid_cb(void* data, int len){
ERROR_PRINT
(
"wrong type
\n
"
);
}
cJSON_Delete
(
json
);
}
}
}
...
...
@@ -353,7 +350,6 @@ void mid_cb(void* data, int len){
*返 回 值: 无
*其他说明:
*************************************************************/
void
mid2p_cb
(
void
*
data
,
int
len
,
char
*
chalMark
){
if
(
data
!=
NULL
){
//printf("mid2plat_cb: %s RECEIVED \r\n", data);
...
...
@@ -413,7 +409,6 @@ void gw2mid_cb(void* data, int len, char* chalMark){
*其他说明:
*************************************************************/
void
kk_platMsg_handle
(
void
*
data
,
char
*
chalMark
){
int
res
=
0
;
cJSON
*
json
;
cJSON
*
info
;
...
...
@@ -472,7 +467,6 @@ void kk_platMsg_handle(void* data, char* chalMark){
kk_mid_subdev_add
(
KK_DM_DEVICE_SUBDEV
,
proCode
->
valuestring
,
devCode
->
valuestring
,
mac
->
valuestring
,
info_dcode
->
valuestring
);
}
dm_mgr_update_timestamp_by_devicecode
(
devCode
->
valuestring
,
HAL_Uptimes
());
}
else
if
(
strstr
(
msgType
->
valuestring
,
KK_THING_TOPO_BATCH_ADD_MSG
)
!=
NULL
){
kk_ipc_send
(
IPC_MID2APP
,
data
,
strlen
(
data
));
...
...
@@ -489,7 +483,6 @@ void kk_platMsg_handle(void* data, char* chalMark){
kk_mid_subdev_batch_add
(
productCode
,
deviceCode
,
mac_s
,
fatherMac
);
item
=
item
->
next
;
}
}
else
if
(
strstr
(
msgType
->
valuestring
,
KK_THING_PROPERTY_POST
)
!=
NULL
){
INFO_PRINT
(
"save property and send to cloud
\n
"
);
jsonPay
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
);
...
...
@@ -621,8 +614,6 @@ void kk_platMsg_handle(void* data, char* chalMark){
}
}
}
else
if
(
strcmp
(
eventItem
->
identifier
,
MSG_PROPERTY_STR
)
!=
0
&&
eventItem
->
output_data_number
==
0
){
...
...
@@ -672,7 +663,6 @@ void kk_platMsg_handle(void* data, char* chalMark){
}
else
{
INFO_PRINT
(
"kk_platMsg_handle data: don't handle it
\n
"
);
}
error:
cJSON_Delete
(
json
);
...
...
@@ -692,12 +682,10 @@ void kk_platMsg_dispatch(void)
void
*
data
=
NULL
;
while
(
CONFIG_DISPATCH_QUEUE_MAXLEN
==
0
||
count
++
<
CONFIG_DISPATCH_QUEUE_MAXLEN
)
{
if
(
dm_queue_msg_next2
(
&
data
)
==
SUCCESS_RETURN
)
{
dm_queue_msg_t
*
msg
=
(
dm_queue_msg_t
*
)
data
;
//INFO_PRINT("kk_handle_platMsg_dispatch get call \n");
kk_platMsg_handle
(
msg
->
data
,(
char
*
)
msg
->
chalMark
);
if
(
msg
->
data
!=
NULL
){
free
(
msg
->
data
);
}
...
...
@@ -785,8 +773,6 @@ void *ota_dispatch_yield(void *args)
*其他说明:
*************************************************************/
void
*
udp_dispatch_yield
(
void
*
args
){
INFO_PRINT
(
"udp_dispatch_yield udp thread create
\n
"
);
// 绑定地址
...
...
@@ -845,7 +831,6 @@ void *udp_dispatch_yield(void *args){
while
(
1
)
{
//从广播地址接受消息
memset
(
szDec
,
0
,
sizeof
(
szDec
));
int
size
=
recvfrom
(
sock
,
szDec
,
sizeof
(
szDec
),
0
,
(
struct
sockaddr
*
)
&
from
,(
socklen_t
*
)
&
len
);
...
...
@@ -855,12 +840,10 @@ void *udp_dispatch_yield(void *args){
}
else
{
DEBUG_PRINT
(
"lan recmsg: %s
\n
"
,
szDec
);
//DEBUG_PRINT("udp client ip:%s ,port is :%d htons(UDP_LAN_PORT)=%d \n",inet_ntoa(from.sin_addr),from.sin_port, htons(UDP_LAN_PORT));
//"search_kk_ccu|deviceCode=1122334455667788;protocol=tcp"
if
(
strstr
(
szDec
,
"search_kk_ccu|"
)
!=
NULL
){
char
*
getConnet
=
szDec
+
strlen
(
"search_kk_ccu|"
);
char
*
tmp
=
NULL
;
char
*
endIdx
=
NULL
;
...
...
@@ -870,7 +853,6 @@ void *udp_dispatch_yield(void *args){
char
proto
[
10
]
=
{
0
};
char
portStr
[
10
]
=
{
0
};
tmp
=
strstr
(
getConnet
,
"deviceCode="
);
itemLen
=
strlen
(
"deviceCode="
);
if
(
tmp
!=
NULL
){
...
...
@@ -910,7 +892,6 @@ void *udp_dispatch_yield(void *args){
DEBUG_PRINT
(
"gwDevCode =%s proto=%s portStr=%s
\n
"
,
gwDevCode
,
proto
,
portStr
);
if
(
strcmp
(
proto
,
"tcp"
)
==
0
){
//
kk_set_tcp_channel
(
gwDevCode
,
inet_ntoa
(
from
.
sin_addr
));
}
...
...
@@ -941,12 +922,10 @@ void *udp_dispatch_yield(void *args){
// DEBUG_PRINT("udp client is not local ip , refused send ack to it\n");
//}
}
}
usleep
(
100000
);
}
close
(
sock
);
close
(
sock_host
);
}
...
...
@@ -1054,6 +1033,7 @@ int main(const int argc, const char **argv)
kk_history_db_init
();
kk_scene_init
();
g_timezone
=
HAL_Get_TimeZone
();
mid_ctx
->
g_mid_dispatch_thread_running
=
1
;
res
=
pthread_create
(
&
mid_ctx
->
g_mid_dispatch_thread
,
NULL
,
mid_dispatch_yield
,
NULL
);
if
(
res
<
0
)
{
...
...
@@ -1088,48 +1068,6 @@ int main(const int argc, const char **argv)
for
(;;)
{
usleep
(
200000
);
kk_platMsg_dispatch
();
/*
if (ct == 0){
ct =1;
void* buf = "{\
\"info\": {\
\"msgtype\": \"/thing/service/property/post\",\
\"productCode\": \"130\",\
\"deviceCode\": \"086BD7FFFE916442\"\
},\
\"payload\": {\
\"msgId\": \"1\",\
\"version\": \"1.0\",\
\"params\": {\
\"LockKeys\": [\
{\
\"KeyID\": \"1\",\
\"KeyType\": 0, \
\"KeyRole\": 0, \
\"IsValid\": 1, \
\"KeyName\": \"test1\", \
\"KeyEffectiveTime\": 0, \
\"KeyExpiryTime\": 1 \
},\
{\
\"KeyID\": \"2\",\
\"KeyType\": 1, \
\"KeyRole\": 1, \
\"IsValid\": 1, \
\"KeyName\": \"test2\", \
\"KeyEffectiveTime\": 3, \
\"KeyExpiryTime\": 4 \
} \
]\
}\
}\
}";
kk_platMsg_handle(buf, "086BD7FFFE916442");
//kk_set_tsl_by_productKey("a1OYuSallan","model.json");
//kk_mid_subdev_add("a1OYuSallan","allanWno8yDdsjCX15iq","","aabbccddeeff1122");
}*/
}
}
midware/midware/ota/iotx_ota.c
View file @
f7abf54d
midware/midware/ota/ota_lib.c
View file @
f7abf54d
midware/midware/scene/kk_scene_db.c
View file @
f7abf54d
...
...
@@ -231,7 +231,6 @@ int kk_scene_insert_scene_info(const char* name,int sceneType,int enable,const c
sqlite3_free
(
sqlCmd
);
_kk_scene_unlock
();
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述: 检查场景触发是否已经存在
...
...
@@ -245,7 +244,6 @@ int kk_scene_insert_scene_info(const char* name,int sceneType,int enable,const c
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
static
int
kk_scene_check_trigger_exist
(
const
char
*
deviceCode
,
int
epNum
,
const
char
*
propertyName
,
const
char
*
compareType
,
const
char
*
compareValue
,
const
char
*
sceneId
)
{
...
...
@@ -281,7 +279,6 @@ static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const c
_kk_scene_unlock
();
return
res
;
}
/************************************************************
...
...
@@ -297,7 +294,6 @@ static int kk_scene_check_trigger_exist(const char* deviceCode,int epNum,const c
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_scene_insert_scene_trigger
(
const
char
*
type
,
const
char
*
deviceCode
,
int
epNum
,
const
char
*
propertyName
,
const
char
*
compareType
,
const
char
*
compareValue
,
const
char
*
sceneId
,
int
isAnd
)
{
...
...
@@ -475,7 +471,6 @@ int kk_scene_insert_scene_invokeService(const char* type,const char* identifier,
_kk_scene_unlock
();
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述: 添加场景执行动作到数据库
...
...
@@ -526,7 +521,6 @@ int kk_scene_insert_scene_action(const char* type,const char* deviceCode,int epN
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_scene_delete_scene_info
(
const
char
*
sceneId
)
{
int
res
=
0
;
...
...
@@ -703,7 +697,6 @@ int kk_scene_delete_scene_invokeservice(const char *sceneId)
*返 回 值: 0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_scene_delete_scene_action
(
const
char
*
sceneId
,
int
isforword
)
{
int
res
=
0
;
...
...
midware/midware/scene/kk_scene_handle.c
View file @
f7abf54d
...
...
@@ -118,7 +118,6 @@ static int kk_scene_tsl_load(void)
}
}
return
SUCCESS_RETURN
;
}
/******************************************************************************/
/* 函 数 名: kk_scene_timer_check_able */
...
...
@@ -589,7 +588,9 @@ static int kk_scene_parse_trigger_detail(const char *type,const cJSON *item,cons
deviceCode
=
cJSON_GetObjectItem
(
item
,
MSG_DEVICE_CODE_STR
);
if
(
deviceCode
==
NULL
)
return
FAIL_RETURN
;
epNum
=
cJSON_GetObjectItem
(
item
,
MSG_SCENE_EPNUM
);
if
(
epNum
==
NULL
)
return
FAIL_RETURN
;
if
(
epNum
==
NULL
){
epNum
=
cJSON_CreateNumber
(
1
);
}
propertyName
=
cJSON_GetObjectItem
(
item
,
MSG_SCENE_PROPERTYNAME
);
if
(
propertyName
==
NULL
)
return
FAIL_RETURN
;
compareType
=
cJSON_GetObjectItem
(
item
,
MSG_SCENE_COMPARETYPE
);
...
...
@@ -633,14 +634,14 @@ int kk_scene_parse_scene_trigger(const cJSON* str,const char *sceneId)
while
(
item
!=
NULL
){
type
=
cJSON_GetObjectItem
(
item
,
MSG_SCENE_TYPE
);
if
(
type
==
NULL
)
return
FAIL_RETURN
;
if
(
!
strcmp
(
"trigger/thing/property"
,
type
->
valuestring
)){
res
=
kk_scene_parse_trigger_detail
(
type
->
valuestring
,
item
,
sceneId
,
0
);
if
(
res
!=
SUCCESS_RETURN
){
ERROR_PRINT
(
"kk_scene_parse_scene_trigger fail!!!
\n
"
);
return
res
;
}
}
else
if
(
!
strcmp
(
"trigger/timing"
,
type
->
valuestring
)){
}
else
if
(
!
strcmp
(
"trigger/timing"
,
type
->
valuestring
)){
week
=
cJSON_GetObjectItem
(
item
,
MSG_SCENE_WEEK
);
if
(
week
==
NULL
)
return
FAIL_RETURN
;
weekflag
=
kk_scene_parse_repeatday
(
week
);
...
...
@@ -729,7 +730,6 @@ static int kk_scene_parse_repeatday(cJSON *repeatday)
*返 回 值: 无
*其他说明:
*************************************************************/
void
kk_scene_remove_timer_info
(
char
*
sceneId
,
int
lockflag
)
{
kk_scene_timer_list_t
*
ptr
=
NULL
,
*
ptemp
=
NULL
;
...
...
@@ -891,6 +891,8 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat
cJSON
*
epNum
;
int
iepnum
;
printf
(
"----->kk_scene_parse_scene_action
\r\n
"
);
dm_mgr_dev_node_t
*
node
=
NULL
;
if
(
str
==
NULL
||
sceneId
==
NULL
){
ERROR_PRINT
(
"kk_scene_parse_scene_action failed
\n
"
);
...
...
@@ -901,6 +903,7 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat
if
(
action
==
NULL
)
return
FAIL_RETURN
;
item
=
action
->
child
;
while
(
item
!=
NULL
){
printf
(
"+++
\r\n
"
);
type
=
cJSON_GetObjectItem
(
item
,
MSG_SCENE_TYPE
);
if
(
type
==
NULL
)
return
FAIL_RETURN
;
/*内嵌场景设置*/
...
...
@@ -944,23 +947,41 @@ int kk_scene_parse_scene_action(const cJSON* str,const char *sceneId,int isUpdat
delay
=
cJSON_GetObjectItem
(
item
,
MSG_SCENE_DELAY
);
if
(
delay
==
NULL
)
return
FAIL_RETURN
;
int
idelay
=
delay
->
valueint
;
res
=
dm_mgr_get_device_by_devicecode
(
deviceCode
->
valuestring
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
)
{
item
=
item
->
next
;
continue
;
}
if
(
kk_subDev_check_scene_support
(
node
->
fatherDeviceCode
)
==
1
){
kk_scene_action_detail_t
info
=
{
0
};
memcpy
(
info
.
deviceCode
,
node
->
deviceCode
,
strlen
(
node
->
deviceCode
));
memcpy
(
info
.
propertyName
,
propertyName
->
valuestring
,
strlen
(
propertyName
->
valuestring
));
if
(
propertyValue
->
type
==
cJSON_Number
){
char
temp
[
64
]
=
{
0
};
snprintf
(
temp
,
64
,
"%d"
,
propertyValue
->
valueint
);
memcpy
(
info
.
propertyValue
,
temp
,
strlen
(
temp
));
}
else
{
memcpy
(
info
.
propertyValue
,
propertyValue
->
valuestring
,
strlen
(
propertyValue
->
valuestring
));
}
info
.
epNum
=
iepnum
;
info
.
delay
=
idelay
;
kk_scene_action_add
(
node
->
fatherDeviceCode
,
sceneId
,
info
);
}
res
=
kk_scene_insert_scene_action
(
type
->
valuestring
,
node
->
deviceCode
,
iepnum
,
propertyName
->
valuestring
,
propertyValue
->
valuestring
,
idelay
,
sceneId
,
node
->
fatherDeviceCode
);
if
(
res
!=
SUCCESS_RETURN
){
INFO_PRINT
(
"kk_scene_insert_scene_action fail!!!
\n
"
);
return
res
;
...
...
@@ -1093,7 +1114,6 @@ int kk_scene_parse_addscene(const cJSON* args,char *sceneId,int isUpdate,const c
}
}
return
SUCCESS_RETURN
;
}
/************************************************************
...
...
@@ -1540,7 +1560,6 @@ static int kk_scene_check_value(const char * compareType,const char * compareVal
}
return
res
;
}
/************************************************************
*功能描述:发送action内容到网关,此函数只有不支持内场景的网关用到
...
...
@@ -1678,8 +1697,6 @@ static int kk_scene_start_action(const char *deviceCode,const char *propertyName
kk_scene_push_action_list
(
actionInfo
,
delay
);
}
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述:触发完成并符合条件后调用此函数执行场景
...
...
@@ -1697,7 +1714,8 @@ int kk_scene_execute_action(const char* sceneId,char *msgId)
char
*
gwdeviceCode
=
NULL
;
int
delay
=
0
;
char
*
sqlCmd
=
NULL
;
char
gwdevice
[][
DEVICE_CODE_MAXLEN
]
=
{
0
};
//
char
gwdevice
[
5
][
DEVICE_CODE_MAXLEN
]
=
{
0
};
int
idx
=
0
,
num
=
0
;
sqlite3_stmt
*
stmt
;
kk_scene_ctx_t
*
ctx
=
_kk_scene_get_ctx
();
...
...
@@ -1779,7 +1797,6 @@ static int kk_scene_push_embed_list(int delay,const char* sceneId)
}
_kk_scene_unlock
();
return
SUCCESS_RETURN
;
}
/************************************************************
*功能描述:查找是否有场景嵌套
...
...
@@ -1931,7 +1948,6 @@ int kk_scene_query_trigger_info(const char *deviceCode,cJSON *param)
}
}
}
}
sqlite3_finalize
(
stmt
);
sqlite3_free
(
sqlCmd
);
...
...
@@ -2000,6 +2016,5 @@ void kk_scene_execute_event_post(const char* sceneId,const char *msgId)
kk_tsl_set_value
(
kk_tsl_set_event_output_value
,
pSceneShadow
,
MSG_SCENE_EXECUTENOTIFICATION_SCENEID
,
NULL
,
sceneId
);
dm_msg_scene_event_post
(
MSG_SCENE_EXECUTENOTIFICATION
,
pSceneShadow
,
msgIdbuf
);
}
}
midware/midware/scene/kk_scene_handle.h
View file @
f7abf54d
midware/midware/utils/infra_md5.c
View file @
f7abf54d
midware/tsl/tsl_handle/kk_tsl_api.c
View file @
f7abf54d
...
...
@@ -55,7 +55,6 @@ static int _kk_msg_get_service_input_data(_IN_ kk_tsl_t *dev_shadow, _IN_ char *
{
int
res
=
0
;
if
(
key
==
NULL
||
key_len
<=
0
)
{
return
INVALID_PARAMETER
;
}
...
...
@@ -1040,6 +1039,7 @@ int kk_tsl_get_value(kk_tsl_get_t method_get, kk_tsl_t * dev_shadow, const char
return
SUCCESS_RETURN
;
}
//kk_tsl_set_value(kk_tsl_set_event_output_value,pSceneShadow,MSG_SCENE_ADDNOTIFICATION_SCENEID,NULL,sceneId);
int
kk_tsl_set_value
(
kk_tsl_set_t
set
,
kk_tsl_t
*
dev_shadow
,
const
char
*
identifier
,
const
void
*
value
,
...
...
@@ -1064,7 +1064,7 @@ int kk_tsl_set_value(kk_tsl_set_t set, kk_tsl_t * dev_shadow, const char *identi
property
=
dev_shadow
->
events
+
index
;
if
(
strcmp
(
property
->
identifier
,
"property"
)
==
0
||
strcmp
(
property
->
identifier
,
"post"
)
==
0
)
{
{
e_identifier
=
property
->
identifier
;
break
;
}
...
...
@@ -1288,7 +1288,7 @@ int kk_tsl_post_property_add(_IN_ void *handle, _IN_ char *identifier, _IN_ int
event
=
dapi_property
->
shadow
->
events
+
index
;
if
(
strcmp
(
event
->
identifier
,
"property"
)
==
0
||
strcmp
(
event
->
identifier
,
"post"
)
==
0
)
{
{
pEventoutput
=
(
kk_tsl_data_t
*
)(
event
->
output_datas
);
number
=
event
->
output_data_number
;
break
;
...
...
@@ -1347,7 +1347,6 @@ char* kk_tsl_get_post_property_str(kk_tsl_t *dev_shadow, const char *propert
_kk_tsl_api_unlock
();
return
kk_tsl_post_property_end
(
property_handle
);
}
static
int
kk_tsl_event_output
(
_IN_
kk_tsl_t
*
dev_shadow
,
_IN_
char
*
identifier
,
_IN_
int
identifier_len
,
_IN_
lite_cjson_item_t
*
lite
)
...
...
midware/tsl/tsl_handle/kk_tsl_api.h
View file @
f7abf54d
midware/tsl/tsl_handle/kk_tsl_common.h
View file @
f7abf54d
...
...
@@ -85,7 +85,7 @@
#define KK_TSL_GATAWAY_SN_IDENTIFIER "SN"
#define KK_TSL_GATAWAY_WHITELIST_IDENTIFIER "WhiteListState"
#define DEFAULT_HEARTBEAT_TIMEOUT (60*1
0
)// ten minutes
#define DEFAULT_HEARTBEAT_TIMEOUT (60*1)// ten minutes
typedef
enum
{
KK_DEV_ONLINE
=
0
,
...
...
midware/tsl/tsl_handle/kk_tsl_func.c
View file @
f7abf54d
midware/tsl/tsl_handle/kk_tsl_load.c
View file @
f7abf54d
...
...
@@ -50,7 +50,6 @@ char* kk_load_json(const char *productCode,int type)
snprintf
(
tslPath
,
path_len
,
TSL_SCENE_PATH_FILE
,
productCode
);
}
INFO_PRINT
(
"
\n
[%s][%d]tslPath:%s!!!
\n
"
,
__FUNCTION__
,
__LINE__
,
tslPath
);
if
(
!
(
fp
=
fopen
(
tslPath
,
"r"
)))
{
...
...
midware/tsl/tsl_handle/kk_tsl_parse.c
View file @
f7abf54d
...
...
@@ -364,7 +364,6 @@ static int _kk_tsl_opt_parse(_IN_ kk_tsl_data_value_t *data_value, _IN_ lite_cjs
else
if
(
data_value
->
type
==
KK_TSL_DATA_TYPE_INT
){
res
=
lite_cjson_object_item
(
root
,
KK_TSL_KEY_MIN
,
strlen
(
KK_TSL_KEY_MIN
),
&
lite_item
);
if
(
res
==
SUCCESS_RETURN
){
data_value
->
mix
=
atoi
(
lite_item
.
value
);
//printf("------------>[%s][%d]data_value->mix:%d\n",__FUNCTION__,__LINE__,data_value->mix);
}
...
...
@@ -374,11 +373,19 @@ static int _kk_tsl_opt_parse(_IN_ kk_tsl_data_value_t *data_value, _IN_ lite_cjs
//printf("------------>[%s][%d]data_value->max:%d\n",__FUNCTION__,__LINE__,data_value->max);
}
}
else
if
(
data_value
->
type
==
KK_TSL_DATA_TYPE_FLOAT
||
data_value
->
type
==
KK_TSL_DATA_TYPE_DOUBLE
){
res
=
lite_cjson_object_item
(
root
,
KK_TSL_KEY_MIN
,
strlen
(
KK_TSL_KEY_MIN
),
&
lite_item
);
if
(
res
==
SUCCESS_RETURN
){
data_value
->
mix
=
atof
(
lite_item
.
value
);
//printf("------------>[%s][%d]data_value->mix:%d\n",__FUNCTION__,__LINE__,data_value->mix);
}
res
=
lite_cjson_object_item
(
root
,
KK_TSL_KEY_MAX
,
strlen
(
KK_TSL_KEY_MAX
),
&
lite_item
);
if
(
res
==
SUCCESS_RETURN
){
data_value
->
max
=
atof
(
lite_item
.
value
);
//printf("------------>[%s][%d]data_value->max:%d\n",__FUNCTION__,__LINE__,data_value->max);
}
}
return
SUCCESS_RETURN
;
...
...
@@ -408,7 +415,6 @@ static int _kk_tsl_data_parse(_IN_ kk_tsl_data_value_t *data_value, _IN_ lite_cj
res
=
lite_cjson_object_item
(
root
,
KK_TSL_KEY_SPECS
,
strlen
(
KK_TSL_KEY_SPECS
),
&
lite_item
);
if
(
res
==
SUCCESS_RETURN
)
{
_kk_tsl_opt_parse
(
data_value
,
&
lite_item
);
}
//Parse Type And Value
...
...
@@ -862,7 +868,7 @@ static int _kk_tsl_service_parse(_IN_ kk_tsl_t *shadow, _IN_ kk_tsl_service_t *s
}
//printf("Identifier: %s", service->identifier);
/* Check If Current Service Id Is Set Or G
et */
/* Check If Current Service Id Is S
et */
if
((
strlen
(
service
->
identifier
)
==
strlen
(
KK_TSL_SPECIAL_SERVICE_SET_IDENTIFIER
))
&&
(
memcmp
(
service
->
identifier
,
KK_TSL_SPECIAL_SERVICE_SET_IDENTIFIER
,
strlen
(
KK_TSL_SPECIAL_SERVICE_SET_IDENTIFIER
))
==
0
))
{
...
...
@@ -1213,14 +1219,12 @@ static int _kk_tsl_float_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cj
return
SUCCESS_RETURN
;
}
static
int
_kk_tsl_double_insert_json_item
(
_IN_
kk_tsl_data_t
*
data
,
_IN_
lite_cjson_item_t
*
lite
)
{
lite_cjson_add_number_to_object
(
lite
,
data
->
identifier
,
data
->
data_value
.
value_double
);
return
SUCCESS_RETURN
;
}
static
int
_kk_tsl_string_insert_json_item
(
_IN_
kk_tsl_data_t
*
data
,
_IN_
lite_cjson_item_t
*
lite
)
{
char
*
value
=
(
data
->
data_value
.
value
==
NULL
)
?
(
""
)
:
(
data
->
data_value
.
value
);
...
...
@@ -1263,7 +1267,6 @@ static int _kk_check_data(_IN_ kk_tsl_data_t *data)
}
static
int
_kk_tsl_array_insert_json_item
(
_IN_
kk_tsl_data_t
*
data
,
_IN_
lite_cjson_item_t
*
lite
)
{
int
res
=
SUCCESS_RETURN
,
index
=
0
;
lite_cjson_item_t
*
array
=
NULL
,
*
array_item
=
NULL
;
kk_tsl_data_value_complex_t
*
complex_array
=
NULL
;
...
...
@@ -1454,7 +1457,6 @@ static int _kk_tsl_data_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjs
case
KK_TSL_DATA_TYPE_BOOL
:
case
KK_TSL_DATA_TYPE_ENUM
:
{
if
(
lite
->
type
==
cJSON_Array
)
{
res
=
_kk_tsl_int_insert_json_item
(
data
,
data_object
);
if
(
res
==
SUCCESS_RETURN
)
{
lite_cjson_add_item_to_array
(
lite
,
data_object
);
...
...
@@ -1523,7 +1525,6 @@ static int _kk_tsl_data_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjs
lite_cjson_add_item_to_array
(
lite
,
data_object
);
}
}
else
{
res
=
_kk_tsl_struct_insert_json_item
(
data
,
lite
);
lite_cjson_delete
(
data_object
);
}
...
...
@@ -1553,7 +1554,7 @@ int kk_tsl_assemble_property(_IN_ kk_tsl_t *shadow, _IN_ char *identifier, _IN_
property
=
shadow
->
events
+
index
;
if
(
strcmp
(
property
->
identifier
,
"property"
)
==
0
||
strcmp
(
property
->
identifier
,
"post"
)
==
0
)
{
{
for
(
indexE
=
0
;
indexE
<
property
->
output_data_number
;
indexE
++
){
output_data
=
property
->
output_datas
+
indexE
;
if
((
strlen
(
output_data
->
identifier
)
==
identifier_len
)
&&
...
...
@@ -1566,7 +1567,6 @@ int kk_tsl_assemble_property(_IN_ kk_tsl_t *shadow, _IN_ char *identifier, _IN_
return
FAIL_RETURN
;
}
}
}
}
...
...
midware/tsl/tsl_handle/kk_utils.c
View file @
f7abf54d
...
...
@@ -266,7 +266,7 @@ int kk_utils_ftoa_direct(_IN_ double input, _OU_ char **output)
}
int
kk_utils_json_parse
(
_IN_
const
char
*
payload
,
_IN_
int
payload_len
,
_IN_
int
type
,
_OU_
lite_cjson_t
*
lite
)
{
{
int
res
=
0
;
if
(
payload
==
NULL
||
payload_len
<=
0
||
type
<
0
||
lite
==
NULL
)
{
...
...
@@ -286,11 +286,11 @@ int kk_utils_json_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int
}
return
SUCCESS_RETURN
;
}
}
int
kk_utils_json_object_item
(
_IN_
lite_cjson_t
*
lite
,
_IN_
const
char
*
key
,
_IN_
int
key_len
,
_IN_
int
type
,
int
kk_utils_json_object_item
(
_IN_
lite_cjson_t
*
lite
,
_IN_
const
char
*
key
,
_IN_
int
key_len
,
_IN_
int
type
,
_OU_
lite_cjson_t
*
lite_item
)
{
{
int
res
=
0
;
if
(
lite
==
NULL
||
lite
->
type
!=
cJSON_Object
||
key
==
NULL
||
key_len
<=
0
||
type
<
0
||
lite_item
==
NULL
)
{
...
...
@@ -316,4 +316,4 @@ int kk_utils_json_parse(_IN_ const char *payload, _IN_ int payload_len, _IN_ int
}
return
SUCCESS_RETURN
;
}
}
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