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
298ae08d
Commit
298ae08d
authored
Aug 31, 2021
by
chen.weican
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://172.17.3.10:17001/chenweican/k-sdk
parents
5604b305
4d9d15b7
Changes
22
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
22 changed files
with
756 additions
and
541 deletions
+756
-541
application/kcloud/kcloud_main.c
application/kcloud/kcloud_main.c
+18
-18
application/kcloud/kk_info_report.c
application/kcloud/kk_info_report.c
+106
-106
application/kcloud/kk_register.c
application/kcloud/kk_register.c
+191
-192
application/kcloud/mqtt_api.c
application/kcloud/mqtt_api.c
+4
-4
application/klansdk/Serial.c
application/klansdk/Serial.c
+2
-2
application/klansdk/kk_ccu_msg.c
application/klansdk/kk_ccu_msg.c
+163
-100
application/klansdk/kk_data_handle.c
application/klansdk/kk_data_handle.c
+5
-6
application/klansdk/kk_lan_ctrl.c
application/klansdk/kk_lan_ctrl.c
+43
-12
application/klansdk/kk_lan_debug.h
application/klansdk/kk_lan_debug.h
+11
-9
application/klansdk/kk_lan_main.c
application/klansdk/kk_lan_main.c
+44
-4
application/klansdk/kk_lan_sync.c
application/klansdk/kk_lan_sync.c
+6
-3
application/klansdk/kk_lan_voice_panel.c
application/klansdk/kk_lan_voice_panel.c
+3
-3
application/klansdk/kk_lan_vp_ctrl.c
application/klansdk/kk_lan_vp_ctrl.c
+5
-3
application/klansdk/kk_voice_panel_handle.h
application/klansdk/kk_voice_panel_handle.h
+2
-2
midware/midware/dm/kk_dm_msg.c
midware/midware/dm/kk_dm_msg.c
+45
-0
midware/midware/dm/kk_dm_msg.h
midware/midware/dm/kk_dm_msg.h
+1
-1
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+13
-4
midware/midware/dm/kk_sub_db.c
midware/midware/dm/kk_sub_db.c
+30
-1
midware/midware/dm/kk_sub_db.h
midware/midware/dm/kk_sub_db.h
+1
-1
onboot.sh
onboot.sh
+5
-5
opcodeMapCfg/device_3024.json
opcodeMapCfg/device_3024.json
+56
-56
opcodeMapCfg/device_3029.json
opcodeMapCfg/device_3029.json
+2
-9
No files found.
application/kcloud/kcloud_main.c
View file @
298ae08d
...
@@ -29,31 +29,31 @@
...
@@ -29,31 +29,31 @@
//#include "kcloud_log.h"
//#include "kcloud_log.h"
static
char
s_ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
static
char
s_ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
int
KK_Get_ccuid
(
_OU_
char
*
device_code
)
int
KK_Get_ccuid
(
_OU_
char
*
device_code
)
{
{
strncpy
(
device_code
,
s_ccuid
,
strlen
(
s_ccuid
));
strncpy
(
device_code
,
s_ccuid
,
strlen
(
s_ccuid
));
printf
(
"HAL_Get_ccuid:%s
\n
"
,
s_ccuid
);
printf
(
"HAL_Get_ccuid:%s
\n
"
,
s_ccuid
);
return
strlen
(
s_ccuid
);
return
strlen
(
s_ccuid
);
}
}
static
int
_setDevice_Code
(
_IN_
char
*
device_code
,
int
len
)
static
int
_setDevice_Code
(
_IN_
char
*
device_code
,
int
len
)
{
{
memset
(
s_ccuid
,
0x0
,
DEVICE_CODE_LEN
);
memset
(
s_ccuid
,
0x0
,
DEVICE_CODE_LEN
);
printf
(
"_setDevice_Code:%s
\n
"
,
device_code
);
printf
(
"_setDevice_Code:%s
\n
"
,
device_code
);
strncpy
(
s_ccuid
,
device_code
,
len
);
strncpy
(
s_ccuid
,
device_code
,
len
);
return
len
;
return
len
;
}
}
static
void
KK_Ccuid_init
(
void
)
static
void
KK_Ccuid_init
(
void
)
{
{
uint8_t
ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
uint8_t
ccuid
[
DEVICE_CODE_LEN
]
=
{
0
};
uint8_t
ccuidTmp
[
DEVICE_CODE_LEN
]
=
{
0
};
uint8_t
ccuidTmp
[
DEVICE_CODE_LEN
]
=
{
0
};
int
ccuid_len
=
0
;
int
ccuid_len
=
0
;
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
ccuid
,
sizeof
(
ccuid
),
&
ccuid_len
);
HAL_Execel_cmd
(
GET_CCUID_CMD
,(
char
*
)
ccuid
,
sizeof
(
ccuid
),
&
ccuid_len
);
printf
(
"GET_CCUID_CMD:%s
\n
"
,
ccuid
);
printf
(
"GET_CCUID_CMD:%s
\n
"
,
ccuid
);
if
(
ccuid_len
>
0
&&
ccuid_len
<=
DEVICE_CODE_LEN
){
if
(
ccuid_len
>
0
&&
ccuid_len
<=
DEVICE_CODE_LEN
){
sprintf
(
ccuidTmp
,
"CCU_%s"
,
ccuid
);
sprintf
(
ccuidTmp
,
"CCU_%s"
,
ccuid
);
_setDevice_Code
(
ccuidTmp
,
strlen
(
ccuidTmp
)
-
1
);
//减一是因为最后有一个换行
_setDevice_Code
(
ccuidTmp
,
strlen
(
ccuidTmp
)
-
1
);
//减一是因为最后有一个换行
}
else
{
}
else
{
_setDevice_Code
(
KK_CCU_ID
,
strlen
(
KK_CCU_ID
));
_setDevice_Code
(
KK_CCU_ID
,
strlen
(
KK_CCU_ID
));
}
}
}
}
static
int
mqtt_start
(
void
)
static
int
mqtt_start
(
void
)
{
{
...
@@ -102,7 +102,7 @@ int main(int argc, char* argv[])
...
@@ -102,7 +102,7 @@ int main(int argc, char* argv[])
KK_Ccuid_init
();
KK_Ccuid_init
();
kk_ipc_init
(
IPC_APP2MID
,(
ipc_cb
*
)
KK_Data_FromDev
,
NULL
,
NULL
);
kk_ipc_init
(
IPC_APP2MID
,(
ipc_cb
*
)
KK_Data_FromDev
,
NULL
,
NULL
);
kk_info_report_start
();
kk_info_report_start
();
again:
again:
rc
=
kk_start_ccu_register
();
rc
=
kk_start_ccu_register
();
if
(
rc
==
0
){
if
(
rc
==
0
){
rc
=
mqtt_start
();
rc
=
mqtt_start
();
...
...
application/kcloud/kk_info_report.c
View file @
298ae08d
...
@@ -23,46 +23,46 @@ extern int kk_get_gw_status(void);
...
@@ -23,46 +23,46 @@ extern int kk_get_gw_status(void);
#define TO_OLED_NANOMSG_SOCKET_ADDR "ipc:///tmp/oled_pair.ipc"
#define TO_OLED_NANOMSG_SOCKET_ADDR "ipc:///tmp/oled_pair.ipc"
static
int
kk_info_nanomsg_init
(
void
)
static
int
kk_info_nanomsg_init
(
void
)
{
{
int
socketfd
=
0
;
int
socketfd
=
0
;
socketfd
=
nn_socket
(
AF_SP
,
NN_PAIR
);
socketfd
=
nn_socket
(
AF_SP
,
NN_PAIR
);
if
(
socketfd
<
0
){
if
(
socketfd
<
0
){
return
-
1
;
return
-
1
;
}
}
if
(
nn_connect
(
socketfd
,
TO_OLED_NANOMSG_SOCKET_ADDR
)
<
0
){
if
(
nn_connect
(
socketfd
,
TO_OLED_NANOMSG_SOCKET_ADDR
)
<
0
){
WARNING_PRINT
(
"[%s][%d]connect fail!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
WARNING_PRINT
(
"[%s][%d]connect fail!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
return
-
1
;
return
-
1
;
}
}
return
socketfd
;
return
socketfd
;
}
}
static
int
kk_info_get
(
char
*
str
)
static
int
kk_info_get
(
char
*
str
)
{
{
int
ret
=
0
;
int
ret
=
0
;
char
version
[
VERSION_MAXLEN
]
=
{
0
};
char
version
[
VERSION_MAXLEN
]
=
{
0
};
char
*
str_tmp
=
NULL
;
char
*
str_tmp
=
NULL
;
char
ccuid
[
32
]
=
{
0
};
char
ccuid
[
32
]
=
{
0
};
if
(
str
==
NULL
){
if
(
str
==
NULL
){
return
-
1
;
return
-
1
;
}
}
HAL_GetVersion
(
version
);
//HAL_GetVersion(version);
KK_Get_ccuid
(
ccuid
);
cJSON
*
root
=
cJSON_CreateObject
();
if
(
root
)
{
cJSON
*
args
=
cJSON_CreateObject
();
if
(
args
)
{
cJSON_AddItemToObject
(
root
,
"args"
,
args
);
cJSON
*
ccu
=
cJSON_CreateObject
();
KK_Get_ccuid
(
ccuid
);
if
(
ccu
)
cJSON
*
root
=
cJSON_CreateObject
();
{
if
(
root
)
char
status
[
4
]
=
{
0
};
{
cJSON
*
args
=
cJSON_CreateObject
();
if
(
args
)
{
cJSON_AddItemToObject
(
root
,
"args"
,
args
);
cJSON
*
ccu
=
cJSON_CreateObject
();
if
(
ccu
)
{
char
status
[
4
]
=
{
0
};
cJSON_AddItemToObject
(
args
,
"ccu"
,
ccu
);
cJSON_AddItemToObject
(
args
,
"ccu"
,
ccu
);
cJSON_AddStringToObject
(
ccu
,
"id"
,
&
ccuid
[
4
]);
cJSON_AddStringToObject
(
ccu
,
"id"
,
&
ccuid
[
4
]);
cJSON_AddStringToObject
(
ccu
,
"version"
,
version
);
cJSON_AddStringToObject
(
ccu
,
"version"
,
"1.1.1"
);
cJSON_AddStringToObject
(
ccu
,
"name"
,
"kk_new_ccu"
);
cJSON_AddStringToObject
(
ccu
,
"name"
,
"kk_new_ccu"
);
//INFO_PRINT("---222kk_get_cloud_status():%d\n",kk_get_cloud_status());
//INFO_PRINT("---222kk_get_cloud_status():%d\n",kk_get_cloud_status());
//if(kk_get_gw_status() == DEVICE_OFFLINE){
//if(kk_get_gw_status() == DEVICE_OFFLINE){
...
@@ -79,90 +79,90 @@ static int kk_info_get(char *str)
...
@@ -79,90 +79,90 @@ static int kk_info_get(char *str)
}
}
//INFO_PRINT("------------------------------------->status :%s\n",status);
//INFO_PRINT("------------------------------------->status :%s\n",status);
cJSON_AddStringToObject
(
ccu
,
"status"
,
status
);
cJSON_AddStringToObject
(
ccu
,
"status"
,
status
);
}
}
cJSON
*
net
=
cJSON_CreateObject
();
cJSON
*
net
=
cJSON_CreateObject
();
if
(
net
)
if
(
net
)
{
{
char
s_IP
[
NETWORK_ADDR_LEN
]
=
{
0
};
char
s_IP
[
NETWORK_ADDR_LEN
]
=
{
0
};
HAL_Get_IP
(
s_IP
,
NULL
);
HAL_Get_IP
(
s_IP
,
NULL
);
cJSON_AddItemToObject
(
args
,
"net"
,
net
);
cJSON_AddItemToObject
(
args
,
"net"
,
net
);
cJSON_AddStringToObject
(
net
,
"interface"
,
CCU_LAN
);
cJSON_AddStringToObject
(
net
,
"interface"
,
CCU_LAN
);
cJSON_AddStringToObject
(
net
,
"ip"
,
s_IP
);
cJSON_AddStringToObject
(
net
,
"ip"
,
s_IP
);
}
}
cJSON
*
lsc_status
=
cJSON_CreateObject
();
cJSON
*
lsc_status
=
cJSON_CreateObject
();
if
(
lsc_status
)
if
(
lsc_status
)
{
{
cJSON_AddStringToObject
(
args
,
"lsc_status"
,
"1"
);
cJSON_AddStringToObject
(
args
,
"lsc_status"
,
"1"
);
}
}
cJSON
*
qr_code
=
cJSON_CreateObject
();
cJSON
*
qr_code
=
cJSON_CreateObject
();
if
(
qr_code
)
if
(
qr_code
)
{
{
char
qrcodeStr
[
256
]
=
{
0
};
char
qrcodeStr
[
256
]
=
{
0
};
sprintf
(
qrcodeStr
,
"KONKE-CCU:%s:%s:BBE3C5A5FC1FDB6CA1A386AB321D02AB"
,
KK_CCU_PRODUCTID
,
&
ccuid
[
4
]);
sprintf
(
qrcodeStr
,
"KONKE-CCU:%s:%s:BBE3C5A5FC1FDB6CA1A386AB321D02AB"
,
KK_CCU_PRODUCTID
,
&
ccuid
[
4
]);
cJSON_AddItemToObject
(
args
,
"qr_code"
,
qr_code
);
cJSON_AddItemToObject
(
args
,
"qr_code"
,
qr_code
);
cJSON_AddStringToObject
(
qr_code
,
"string"
,
qrcodeStr
);
cJSON_AddStringToObject
(
qr_code
,
"string"
,
qrcodeStr
);
cJSON_AddBoolToObject
(
qr_code
,
"show"
,
1
);
cJSON_AddBoolToObject
(
qr_code
,
"show"
,
1
);
}
}
cJSON
*
service
=
cJSON_CreateObject
();
cJSON
*
service
=
cJSON_CreateObject
();
if
(
service
)
if
(
service
)
{
{
cJSON_AddStringToObject
(
args
,
"service"
,
"1"
);
cJSON_AddStringToObject
(
args
,
"service"
,
"1"
);
}
}
}
}
str_tmp
=
cJSON_PrintUnformatted
(
root
);
str_tmp
=
cJSON_PrintUnformatted
(
root
);
//INFO_PRINT("JSON %s\r\n", str_tmp);
//INFO_PRINT("JSON %s\r\n", str_tmp);
strcpy
(
str
,
str_tmp
);
strcpy
(
str
,
str_tmp
);
free
(
str_tmp
);
free
(
str_tmp
);
cJSON_Delete
(
root
);
cJSON_Delete
(
root
);
}
}
else
else
{
{
ret
=
-
1
;
ret
=
-
1
;
}
}
return
ret
;
return
ret
;
}
}
//static int
//static int
void
*
kk_info_nanomsg_send
(
void
*
data
)
void
*
kk_info_nanomsg_send
(
void
*
data
)
{
{
int
ret
=
0
;
int
ret
=
0
;
char
str
[
1024
]
=
{
0
};
char
str
[
1024
]
=
{
0
};
int
socketfd
=
kk_info_nanomsg_init
();
int
socketfd
=
kk_info_nanomsg_init
();
if
(
socketfd
<
0
){
if
(
socketfd
<
0
){
return
NULL
;
return
NULL
;
}
}
while
(
1
){
while
(
1
){
memset
(
str
,
0x0
,
sizeof
(
str
));
memset
(
str
,
0x0
,
sizeof
(
str
));
ret
=
kk_info_get
(
str
);
ret
=
kk_info_get
(
str
);
if
(
ret
==
0
){
if
(
ret
==
0
){
//printf("*********nn_send***********\n");
//printf("*********nn_send***********\n");
ret
=
nn_send
(
socketfd
,
str
,
strlen
(
str
),
1
);
ret
=
nn_send
(
socketfd
,
str
,
strlen
(
str
),
1
);
if
(
ret
<
0
)
{
if
(
ret
<
0
)
{
//WARNING_PRINT("[%s][%d]nn_send fail!!!\n",__FUNCTION__,__LINE__);
//WARNING_PRINT("[%s][%d]nn_send fail!!!\n",__FUNCTION__,__LINE__);
}
}
}
}
sleep
(
10
);
sleep
(
10
);
}
}
}
}
int
kk_info_report_start
(
void
)
int
kk_info_report_start
(
void
)
{
{
int
rc
;
int
rc
;
pthread_t
info_report_thread
;
pthread_t
info_report_thread
;
pthread_attr_t
info_report_attr
;
pthread_attr_t
info_report_attr
;
pthread_mutex_init
(
&
s_data_mutex
,
NULL
);
pthread_mutex_init
(
&
s_data_mutex
,
NULL
);
/*创建线程*/
/*创建线程*/
pthread_attr_init
(
&
info_report_attr
);
pthread_attr_init
(
&
info_report_attr
);
size_t
s
=
1500
;
size_t
s
=
1500
;
pthread_attr_setstacksize
(
&
info_report_attr
,
s
);
pthread_attr_setstacksize
(
&
info_report_attr
,
s
);
pthread_attr_setdetachstate
(
&
info_report_attr
,
PTHREAD_CREATE_JOINABLE
);
pthread_attr_setdetachstate
(
&
info_report_attr
,
PTHREAD_CREATE_JOINABLE
);
rc
=
pthread_create
(
&
info_report_thread
,
&
info_report_attr
,
kk_info_nanomsg_send
,
(
void
*
)
NULL
);
//收数据
rc
=
pthread_create
(
&
info_report_thread
,
&
info_report_attr
,
kk_info_nanomsg_send
,
(
void
*
)
NULL
);
//收数据
if
(
rc
)
if
(
rc
)
{
{
WARNING_PRINT
(
"Error : unable to create thread udp_recv
\r\n
"
);
WARNING_PRINT
(
"Error : unable to create thread udp_recv
\r\n
"
);
return
-
1
;
return
-
1
;
}
}
pthread_attr_destroy
(
&
info_report_attr
);
pthread_attr_destroy
(
&
info_report_attr
);
return
0
;
return
0
;
}
}
\ No newline at end of file
application/kcloud/kk_register.c
View file @
298ae08d
This diff is collapsed.
Click to expand it.
application/kcloud/mqtt_api.c
View file @
298ae08d
...
@@ -205,10 +205,10 @@ MQTTAsync KK_MQTT_Connect(void)
...
@@ -205,10 +205,10 @@ MQTTAsync KK_MQTT_Connect(void)
char
token
[
512
]
=
{
0
};
char
token
[
512
]
=
{
0
};
char
usrname
[
128
]
=
{
0
};
char
usrname
[
128
]
=
{
0
};
fp
=
fopen
(
KK_TOKEN_PATH
,
"r"
);
fp
=
fopen
(
KK_TOKEN_PATH
,
"r"
);
if
(
fp
!=
NULL
){
if
(
fp
!=
NULL
){
fread
(
token
,
1
,
sizeof
(
token
),
fp
);
fread
(
token
,
1
,
sizeof
(
token
),
fp
);
fclose
(
fp
);
fclose
(
fp
);
}
}
HAL_Get_mac
(
mac
);
HAL_Get_mac
(
mac
);
char
ccuid
[
32
]
=
{
0
};
char
ccuid
[
32
]
=
{
0
};
KK_Get_ccuid
(
ccuid
);
KK_Get_ccuid
(
ccuid
);
...
...
application/klansdk/Serial.c
View file @
298ae08d
...
@@ -198,8 +198,8 @@ int devOpen(char *dev)
...
@@ -198,8 +198,8 @@ int devOpen(char *dev)
if
(
fd
==
-
1
)
if
(
fd
==
-
1
)
{
{
SERIAL_LOG_ERR
(
"devOpen %s
\n
"
,
dev
);
//
SERIAL_LOG_ERR("devOpen %s\n ",dev);
perror
(
"devOpen"
);
//
perror("devOpen");
return
-
1
;
return
-
1
;
}
}
...
...
application/klansdk/kk_ccu_msg.c
View file @
298ae08d
This diff is collapsed.
Click to expand it.
application/klansdk/kk_data_handle.c
View file @
298ae08d
...
@@ -114,7 +114,7 @@ void kk_handle_sync_info(void)
...
@@ -114,7 +114,7 @@ void kk_handle_sync_info(void)
return
;
return
;
}
}
debug_log
(
LOG_INFO
,
"[sync] send.
\n
"
);
debug_log
(
LOG_INFO
_LEVEL
,
"[sync] send.
\n
"
);
kk_ipc_send
(
IPC_APP2MID
,
send_data
,
strlen
(
send_data
)
+
1
);
kk_ipc_send
(
IPC_APP2MID
,
send_data
,
strlen
(
send_data
)
+
1
);
free
(
send_data
);
free
(
send_data
);
...
@@ -354,7 +354,6 @@ int kk_data_handle(cJSON *json,int sockfd)
...
@@ -354,7 +354,6 @@ int kk_data_handle(cJSON *json,int sockfd)
cJSON
*
opcode
=
NULL
;
cJSON
*
opcode
=
NULL
;
cJSON
*
arg
=
NULL
;
cJSON
*
arg
=
NULL
;
opcode
=
cJSON_GetObjectItem
(
json
,
OPCODE_STRING
);
opcode
=
cJSON_GetObjectItem
(
json
,
OPCODE_STRING
);
if
(
opcode
!=
NULL
){
if
(
opcode
!=
NULL
){
if
(
strcmp
(
opcode
->
valuestring
,
LOGIN_OPCODE
)
==
0
){
if
(
strcmp
(
opcode
->
valuestring
,
LOGIN_OPCODE
)
==
0
){
...
@@ -712,18 +711,18 @@ static int kk_lan_scene_handle(cJSON *payload,int isAdd)
...
@@ -712,18 +711,18 @@ static int kk_lan_scene_handle(cJSON *payload,int isAdd)
cJSON
*
sceneId
=
NULL
;
cJSON
*
sceneId
=
NULL
;
if
(
payload
==
NULL
){
if
(
payload
==
NULL
){
debug_log
(
LOG_DEBUG
,
"[err] payload.
\n
"
);
debug_log
(
LOG_DEBUG
_LEVEL
,
"[err] payload.
\n
"
);
return
-
1
;
return
-
1
;
}
}
if
((
params
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
))
==
NULL
||
if
((
params
=
cJSON_GetObjectItem
(
payload
,
MSG_PARAMS_STR
))
==
NULL
||
params
->
type
!=
cJSON_Object
){
params
->
type
!=
cJSON_Object
){
debug_log
(
LOG_DEBUG
,
"[err] params err.
\n
"
);
debug_log
(
LOG_DEBUG
_LEVEL
,
"[err] params err.
\n
"
);
return
-
1
;
return
-
1
;
}
}
if
((
sceneId
=
cJSON_GetObjectItem
(
params
,
MSG_SCENE_SCENEID
))
==
NULL
||
if
((
sceneId
=
cJSON_GetObjectItem
(
params
,
MSG_SCENE_SCENEID
))
==
NULL
||
sceneId
->
type
!=
cJSON_String
){
sceneId
->
type
!=
cJSON_String
){
debug_log
(
LOG_DEBUG
,
"[err] sceneId err.
\n
"
);
debug_log
(
LOG_DEBUG
_LEVEL
,
"[err] sceneId err.
\n
"
);
return
-
1
;
return
-
1
;
}
}
...
@@ -745,7 +744,7 @@ void KK_Data_FromMid(void* str,int len)
...
@@ -745,7 +744,7 @@ void KK_Data_FromMid(void* str,int len)
cJSON
*
info
=
NULL
,
*
payload
=
NULL
;
cJSON
*
info
=
NULL
,
*
payload
=
NULL
;
cJSON
*
msgtype
=
NULL
,
*
deviceCode
=
NULL
,
*
productCode
=
NULL
;
cJSON
*
msgtype
=
NULL
,
*
deviceCode
=
NULL
,
*
productCode
=
NULL
;
debug_log
(
LOG_FOCUS
,
"[midware->lan] len=%d,data=%s
\n
"
,
len
,
str
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"[midware->lan] len=%d,data=%s
\n
"
,
len
,
str
);
if
((
json
=
cJSON_Parse
(
str
))
==
NULL
)
{
if
((
json
=
cJSON_Parse
(
str
))
==
NULL
)
{
return
;
return
;
...
...
application/klansdk/kk_lan_ctrl.c
View file @
298ae08d
...
@@ -69,34 +69,34 @@ cJSON * kk_control_protocol_convert(kk_map_dev_node_t *devNode,int nodeId,cJSON
...
@@ -69,34 +69,34 @@ cJSON * kk_control_protocol_convert(kk_map_dev_node_t *devNode,int nodeId,cJSON
pos
=
match_opcode_pos
(
devNode
->
oldccu
,
opcode
->
valuestring
,
channel
);
pos
=
match_opcode_pos
(
devNode
->
oldccu
,
opcode
->
valuestring
,
channel
);
if
(
pos
==-
1
){
if
(
pos
==-
1
){
debug_log
(
LOG_FOCUS
,
"not find
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"not find
\n
"
);
return
NULL
;
return
NULL
;
}
}
debug_log
(
LOG_FOCUS
,
"1
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"1
\n
"
);
newccuItem
=
cJSON_GetArrayItem
(
devNode
->
newccu
,
pos
);
newccuItem
=
cJSON_GetArrayItem
(
devNode
->
newccu
,
pos
);
oldccuItem
=
cJSON_GetArrayItem
(
devNode
->
oldccu
,
pos
);
oldccuItem
=
cJSON_GetArrayItem
(
devNode
->
oldccu
,
pos
);
debug_log
(
LOG_FOCUS
,
"2
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"2
\n
"
);
o_dataType
=
cJSON_GetObjectItem
(
oldccuItem
,
"dataType"
);
o_dataType
=
cJSON_GetObjectItem
(
oldccuItem
,
"dataType"
);
o_valueRange
=
cJSON_GetObjectItem
(
oldccuItem
,
"valueRange"
);
o_valueRange
=
cJSON_GetObjectItem
(
oldccuItem
,
"valueRange"
);
debug_log
(
LOG_FOCUS
,
"3
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"3
\n
"
);
n_dataType
=
cJSON_GetObjectItem
(
newccuItem
,
"dataType"
);
n_dataType
=
cJSON_GetObjectItem
(
newccuItem
,
"dataType"
);
n_valueRange
=
cJSON_GetObjectItem
(
newccuItem
,
"valueRange"
);
n_valueRange
=
cJSON_GetObjectItem
(
newccuItem
,
"valueRange"
);
n_identifier
=
cJSON_GetObjectItem
(
newccuItem
,
"identifier"
);
n_identifier
=
cJSON_GetObjectItem
(
newccuItem
,
"identifier"
);
epNum
=
cJSON_GetObjectItem
(
newccuItem
,
"channel"
);
epNum
=
cJSON_GetObjectItem
(
newccuItem
,
"channel"
);
debug_log
(
LOG_FOCUS
,
"4
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"4
\n
"
);
if
(
strcmp
(
o_dataType
->
valuestring
,
"map"
)
==
0
){
if
(
strcmp
(
o_dataType
->
valuestring
,
"map"
)
==
0
){
debug_log
(
LOG_FOCUS
,
"5
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"5
\n
"
);
val
=
map_type_convert
(
o_dataType
,
o_valueRange
,
arg
,
n_valueRange
);
val
=
map_type_convert
(
o_dataType
,
o_valueRange
,
arg
,
n_valueRange
);
}
else
{
}
else
{
debug_log
(
LOG_FOCUS
,
"6
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"6
\n
"
);
val
=
msg_convert_value
(
o_dataType
,
n
_dataType
,
arg
);
val
=
msg_convert_value
(
n_dataType
,
o
_dataType
,
arg
);
}
}
debug_log
(
LOG_FOCUS
,
"7
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"7
\n
"
);
cJSON_AddStringToObject
(
params
,
"epNum"
,
epNum
->
valuestring
);
cJSON_AddStringToObject
(
params
,
"epNum"
,
epNum
->
valuestring
);
debug_log
(
LOG_FOCUS
,
"8
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"8
\n
"
);
if
(
val
->
type
==
cJSON_False
){
if
(
val
->
type
==
cJSON_False
){
cJSON_AddFalseToObject
(
params
,
n_identifier
->
valuestring
);
cJSON_AddFalseToObject
(
params
,
n_identifier
->
valuestring
);
...
@@ -111,11 +111,31 @@ cJSON * kk_control_protocol_convert(kk_map_dev_node_t *devNode,int nodeId,cJSON
...
@@ -111,11 +111,31 @@ cJSON * kk_control_protocol_convert(kk_map_dev_node_t *devNode,int nodeId,cJSON
}
else
if
(
val
->
type
==
cJSON_Array
){
}
else
if
(
val
->
type
==
cJSON_Array
){
printf
(
"......................
\n
"
);
printf
(
"......................
\n
"
);
}
}
debug_log
(
LOG_FOCUS
,
"9
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"9
\n
"
);
return
params
;
return
params
;
}
}
static
int
kk_guard_ctrl_handle
(
int
status
)
{
char
ccuid
[
33
]
=
{
0
};
kk_lan_get_ccuid
(
ccuid
);
cJSON
*
root
=
cJSON_CreateObject
();
cJSON
*
params
=
cJSON_CreateObject
();
cJSON_AddStringToObject
(
params
,
"epNum"
,
"1"
);
if
(
status
==
0
){
//
cJSON_AddStringToObject
(
params
,
"ArmingState"
,
"0"
);
}
else
if
(
status
==
2
){
//ڼ
cJSON_AddStringToObject
(
params
,
"ArmingState"
,
"2"
);
}
else
{
//
cJSON_AddStringToObject
(
params
,
"ArmingState"
,
"1"
);
}
cJSON
*
info
=
property_info_build
(
"/thing/service/property/set"
,
KK_CCU_PRODUCTID
,
ccuid
);
cJSON
*
payload
=
property_payload_build
(
"thing.service.property.set"
,
"1"
,
"v1.0"
,
params
);
cJSON_AddItemToObject
(
root
,
INFO_STRING
,
info
);
cJSON_AddItemToObject
(
root
,
PAYLOAD_STRING
,
payload
);
kk_ipc_send_json
(
root
);
return
0
;
}
static
int
kk_indoorAir_ctrl_handle
(
char
*
epNum
,
cJSON
*
arg
)
static
int
kk_indoorAir_ctrl_handle
(
char
*
epNum
,
cJSON
*
arg
)
{
{
kk_map_dev_node_t
*
dev
=
NULL
;
kk_map_dev_node_t
*
dev
=
NULL
;
...
@@ -202,6 +222,17 @@ int kk_ccu_opcode_handle(cJSON *root)
...
@@ -202,6 +222,17 @@ int kk_ccu_opcode_handle(cJSON *root)
kk_indoorAir_ctrl_handle
(
nodeId
->
valuestring
,
arg
);
kk_indoorAir_ctrl_handle
(
nodeId
->
valuestring
,
arg
);
return
0
;
return
0
;
}
else
if
(
strcmp
(
requester
->
valuestring
,
"HJ_Server"
)
==
0
){
if
(
strcmp
(
opcode
->
valuestring
,
"ARMING_IN_HOME"
)
==
0
){
kk_guard_ctrl_handle
(
2
);
return
0
;
}
else
if
(
strcmp
(
opcode
->
valuestring
,
"ARMING_LEAVE_HOME"
)
==
0
){
kk_guard_ctrl_handle
(
0
);
return
0
;
}
else
if
(
strcmp
(
opcode
->
valuestring
,
"DISARMING"
)
==
0
){
kk_guard_ctrl_handle
(
1
);
return
0
;
}
}
}
}
}
...
...
application/klansdk/kk_lan_debug.h
View file @
298ae08d
...
@@ -4,13 +4,15 @@
...
@@ -4,13 +4,15 @@
#include <stdio.h>
#include <stdio.h>
#include <time.h>
#include <time.h>
#define LOG_NORMAL 1 //亮白色
#define LOG_DEBUG 2 //绿色
#define LOG_INFO 3 //蓝色
#define LOG_NORMAL_LEVEL 1 //亮白色
#define LOG_FOCUS 4 //黄色
#define LOG_DEBUG_LEVEL 2 //绿色
#define LOG_WARNING 5 //蓝绿色
#define LOG_INFO_LEVEL 3 //蓝色
#define LOG_ERROR 6 //紫色
#define LOG_FOCUS_LEVEL 4 //黄色
#define LOG_CRITICAL 7 //红色
#define LOG_WARNING_LEVEL 5 //蓝绿色
#define LOG_ERROR_LEVEL 6 //紫色
#define LOG_CRITICAL_LEVEL 7 //红色
#define LOG_NORMAL_ACT "\033[0;1;37m"
#define LOG_NORMAL_ACT "\033[0;1;37m"
#define LOG_DEBUG_ACT "\033[0;1;32m"
#define LOG_DEBUG_ACT "\033[0;1;32m"
...
@@ -23,7 +25,7 @@
...
@@ -23,7 +25,7 @@
#define syslog_en 1
#define syslog_en 1
#define LOG_LEVEL LOG_NORMAL
#define LOG_LEVEL LOG_NORMAL
_LEVEL
#define LOG_LEVEL_1 LOG_NORMAL_ACT
#define LOG_LEVEL_1 LOG_NORMAL_ACT
...
@@ -48,7 +50,7 @@
...
@@ -48,7 +50,7 @@
#if (syslog_en)
#if (syslog_en)
#define debug_log(level,format,...) do { \
#define debug_log(level,format,...) do { \
if( level >= LOG_LEVEL && level <= LOG_CRITICAL) { \
if( level >= LOG_LEVEL && level <= LOG_CRITICAL
_LEVEL
) { \
char buff[64] = {0};\
char buff[64] = {0};\
time_t curTime = time(NULL); \
time_t curTime = time(NULL); \
struct tm *c = gmtime(&curTime);\
struct tm *c = gmtime(&curTime);\
...
...
application/klansdk/kk_lan_main.c
View file @
298ae08d
...
@@ -66,15 +66,55 @@ static void kk_lan_ccuid_init(void)
...
@@ -66,15 +66,55 @@ static void kk_lan_ccuid_init(void)
}
}
}
}
int
prg_run_singleton
(
const
char
*
prg
)
{
int
fd
;
int
ret
;
char
pid_file
[
256
]
=
{
0
};
char
pid_data
[
32
]
=
{
0
};
struct
flock
fl
;
if
(
prg
==
NULL
){
return
-
1
;
}
memset
(
pid_file
,
0
,
sizeof
(
pid_file
));
snprintf
(
pid_file
,
sizeof
(
pid_file
),
"/var/run/%s.pid"
,
prg
);
fd
=
open
(
pid_file
,
O_CREAT
|
O_WRONLY
|
O_TRUNC
,
0644
);
if
(
fd
<
0
){
return
-
1
;
}
fl
.
l_type
=
F_WRLCK
;
fl
.
l_start
=
0
;
fl
.
l_whence
=
SEEK_SET
;
fl
.
l_len
=
0
;
ret
=
fcntl
(
fd
,
F_SETLK
,
&
fl
);
if
(
ret
<
0
){
return
-
1
;
}
memset
(
pid_data
,
0
,
sizeof
(
pid_data
));
snprintf
(
pid_data
,
sizeof
(
pid_data
),
"%d"
,
getpid
());
return
write
(
fd
,
pid_data
,
strlen
(
pid_data
));
}
int
main
(
int
argc
,
char
*
argv
[])
int
main
(
int
argc
,
char
*
argv
[])
{
{
int
r
c
=
0
;
int
r
et
=
0
;
char
*
ppp
;
open
(
"kk_lan"
,
LOG_PID
,
LOG_USER
);
open
(
"kk_lan"
,
LOG_PID
,
LOG_USER
);
if
(
prg_run_singleton
(
argv
[
0
])
<
0
){
debug_log
(
LOG_CRITICAL_LEVEL
,
"[%s]run singleton fail!
\n
"
,
argv
[
0
]);
return
-
1
;
}
kk_lan_ccuid_init
();
kk_lan_ccuid_init
();
/*set the callback to get the device date to cloud*/
/*set the callback to get the device date to cloud*/
...
@@ -82,7 +122,7 @@ int main(int argc, char* argv[])
...
@@ -82,7 +122,7 @@ int main(int argc, char* argv[])
kk_findccu_handle_init
();
kk_findccu_handle_init
();
kk_map_dev_init
();
kk_map_dev_init
();
kk_login_init
();
kk_login_init
();
kk_voice_panel_init
(
argc
,
argv
);
//
kk_voice_panel_init(argc,argv);
//lan_queue_init();
//lan_queue_init();
kk_lan_db_node_init
();
kk_lan_db_node_init
();
...
@@ -91,6 +131,6 @@ int main(int argc, char* argv[])
...
@@ -91,6 +131,6 @@ int main(int argc, char* argv[])
while
(
1
){
while
(
1
){
sleep
(
1
);
sleep
(
1
);
}
}
return
rc
;
return
0
;
}
}
application/klansdk/kk_lan_sync.c
View file @
298ae08d
...
@@ -428,7 +428,7 @@ int kk_sync_devices_to_sdk(cJSON *root,cJSON *data)
...
@@ -428,7 +428,7 @@ int kk_sync_devices_to_sdk(cJSON *root,cJSON *data)
//
//
cJSON
*
_kk_sync_devicestatus_arg_build
(
kk_map_dev_node_t
*
node
)
cJSON
*
_kk_sync_devicestatus_arg_build
(
kk_map_dev_node_t
*
node
)
{
{
int
i
,
num
=
0
;
int
i
,
num
=
0
,
n_num
=
0
,
o_num
=
0
;
cJSON
*
newccu
,
*
oldccu
;
cJSON
*
newccu
,
*
oldccu
;
cJSON
*
arg
=
cJSON_CreateObject
();
cJSON
*
arg
=
cJSON_CreateObject
();
...
@@ -445,12 +445,15 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
...
@@ -445,12 +445,15 @@ cJSON *_kk_sync_devicestatus_arg_build(kk_map_dev_node_t *node)
return
arg
;
return
arg
;
}
}
n_num
=
cJSON_GetArraySize
(
newccu
);
o_num
=
cJSON_GetArraySize
(
oldccu
);
num
=
(
n_num
>
o_num
)
?
n_num
:
o_num
;
num
=
cJSON_GetArraySize
(
newccu
);
for
(
i
=
0
;
i
<
num
;
i
++
){
for
(
i
=
0
;
i
<
num
;
i
++
){
cJSON
*
newccuItem
=
cJSON_GetArrayItem
(
newccu
,
i
);
cJSON
*
newccuItem
=
cJSON_GetArrayItem
(
newccu
,
i
);
cJSON
*
oldccuItem
=
cJSON_GetArrayItem
(
oldccu
,
i
);
cJSON
*
oldccuItem
=
cJSON_GetArrayItem
(
oldccu
,
i
);
cJSON
*
val
=
NULL
;
cJSON
*
val
=
NULL
;
cJSON
*
synType
=
cJSON_GetObjectItem
(
oldccuItem
,
"synType"
);
cJSON
*
synType
=
cJSON_GetObjectItem
(
oldccuItem
,
"synType"
);
...
...
application/klansdk/kk_lan_voice_panel.c
View file @
298ae08d
...
@@ -315,7 +315,7 @@ void *kk_vp_manage_thread(void *arg)
...
@@ -315,7 +315,7 @@ void *kk_vp_manage_thread(void *arg)
break
;
break
;
case
UPDATING_8009_CONFIG_FILE_INFO
:
case
UPDATING_8009_CONFIG_FILE_INFO
:
debug_log
(
LOG_INFO
,
"updating...
\n
"
);
//
debug_log(LOG_INFO,"updating...\n");
sleep
(
1
);
sleep
(
1
);
//todo :超时取消
//todo :超时取消
break
;
break
;
...
@@ -357,7 +357,7 @@ void kk_voice_panel_uart_dev_chose(int argc, char* argv[])
...
@@ -357,7 +357,7 @@ void kk_voice_panel_uart_dev_chose(int argc, char* argv[])
{
NULL
,
0
,
NULL
,
0
},
{
NULL
,
0
,
NULL
,
0
},
};
};
debug_log
(
LOG_FOCUS
,
"kk_voice_panel_uart_dev_chose
\n
"
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"kk_voice_panel_uart_dev_chose
\n
"
);
while
((
opt
=
getopt_long_only
(
argc
,
argv
,
string
,
long_options
,
&
option_index
))
!=
-
1
)
while
((
opt
=
getopt_long_only
(
argc
,
argv
,
string
,
long_options
,
&
option_index
))
!=
-
1
)
{
{
if
(
opt
==
0xAA5555AA
){
if
(
opt
==
0xAA5555AA
){
...
@@ -372,7 +372,7 @@ void kk_voice_panel_uart_dev_chose(int argc, char* argv[])
...
@@ -372,7 +372,7 @@ void kk_voice_panel_uart_dev_chose(int argc, char* argv[])
snprintf
(
serialDev
,
sizeof
(
serialDev
),
"%s"
,
SERIAL_NAME
);
snprintf
(
serialDev
,
sizeof
(
serialDev
),
"%s"
,
SERIAL_NAME
);
}
}
debug_log
(
LOG_FOCUS
,
"serialDev=%s
\n
"
,
serialDev
);
debug_log
(
LOG_FOCUS
_LEVEL
,
"serialDev=%s
\n
"
,
serialDev
);
}
}
int
kk_voice_panel_init
(
int
argc
,
char
*
argv
[])
int
kk_voice_panel_init
(
int
argc
,
char
*
argv
[])
...
...
application/klansdk/kk_lan_vp_ctrl.c
View file @
298ae08d
...
@@ -46,16 +46,18 @@ static KK_VP_CTRL vp_ctrl_table[]={
...
@@ -46,16 +46,18 @@ static KK_VP_CTRL vp_ctrl_table[]={
{
is_outlet_dev
,
outlet_dev_handle
}
{
is_outlet_dev
,
outlet_dev_handle
}
};
};
static
int
light_dev_pid
[]
=
{
static
int
light_dev_pid
[]
=
{
3023
,
3024
30
01
,
3002
,
3003
,
3022
,
30
23
,
3024
};
};
static
int
curtain_dev_pid
[]
=
{
static
int
curtain_dev_pid
[]
=
{
3067
30
05
,
3006
,
3007
,
3008
,
3009
,
3010
,
3011
,
3026
,
3027
,
30
67
};
};
static
int
outlet_dev_pid
[]
=
{
static
int
outlet_dev_pid
[]
=
{
30
20
30
19
,
3020
,
3037
,
3038
};
};
...
...
application/klansdk/kk_voice_panel_handle.h
View file @
298ae08d
...
@@ -6,9 +6,9 @@
...
@@ -6,9 +6,9 @@
#include "kk_voice_panel_cfg.h"
#include "kk_voice_panel_cfg.h"
#define VP_CONFIG_FILE_MD5 "voice_data.MD5"
#define VP_CONFIG_FILE "/etc/smarthome/voice_data.json"
#define VP_CONFIG_FILE "/etc/smarthome/voice_data.json"
#define VP_CONFIG_FILE_TAR_GZ "voice_data.tar.gz"
#define VP_CONFIG_FILE_MD5 "/data/kk/voice_data.MD5"
#define VP_CONFIG_FILE_TAR_GZ "/data/kk/voice_data.tar.gz"
#define OPCODE_8009_SNAPSHOOT 0x1000
#define OPCODE_8009_SNAPSHOOT 0x1000
...
...
midware/midware/dm/kk_dm_msg.c
View file @
298ae08d
...
@@ -1239,7 +1239,52 @@ int dm_msg_thing_property_post_by_identify(char *deviceCode,cJSON *params)
...
@@ -1239,7 +1239,52 @@ int dm_msg_thing_property_post_by_identify(char *deviceCode,cJSON *params)
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_msg_cloud_status_notify
(
const
char
*
deviceCode
,
const
char
*
productCode
)
{
char
*
method
=
"thing.service.cloudStatus"
;
char
*
req_info
=
NULL
,
*
payload
=
NULL
;
int
req_info_len
=
0
,
payload_len
=
0
;
char
msgId
[
MSG_MAX_LEN
]
=
{
0
};
req_info_len
=
strlen
(
DM_MSG_INFO
)
+
10
+
strlen
(
deviceCode
)
+
strlen
(
productCode
)
+
strlen
(
KK_THING_SERVICE_CLOUDSTATUS
)
+
1
;
req_info
=
malloc
(
req_info_len
);
if
(
req_info
==
NULL
)
{
return
MEMORY_NOT_ENOUGH
;
}
memset
(
req_info
,
0
,
req_info_len
);
snprintf
(
req_info
,
req_info_len
,
DM_MSG_INFO
,
KK_THING_SERVICE_CLOUDSTATUS
,
productCode
,
deviceCode
);
cJSON
*
params
=
cJSON_CreateObject
();
cJSON_AddNumberToObject
(
params
,
"status"
,
1
);
char
*
paramStr
=
cJSON_Print
(
params
);
payload_len
=
strlen
(
DM_MSG_REQUEST
)
+
10
+
strlen
(
DM_MSG_VERSION
)
+
strlen
(
paramStr
)
+
strlen
(
method
)
+
1
+
20
+
sizeof
(
msgId
);
payload
=
malloc
(
payload_len
);
if
(
payload
==
NULL
)
{
free
(
req_info
);
return
MEMORY_NOT_ENOUGH
;
}
memset
(
payload
,
0
,
payload_len
);
iotx_report_id
(
msgId
);
//sprintf(msgId,"%d",iotx_report_id());
snprintf
(
payload
,
payload_len
,
DM_MSG_REQUEST
,
msgId
,
DM_MSG_VERSION
,
paramStr
,
HAL_GetTime
(),
method
);
cJSON
*
root
=
cJSON_CreateObject
();
cJSON
*
infoObj
=
cJSON_Parse
(
req_info
);
cJSON
*
payloadObj
=
cJSON_Parse
(
payload
);
cJSON_AddItemToObject
(
root
,
"info"
,
infoObj
);
cJSON_AddItemToObject
(
root
,
"payload"
,
payloadObj
);
void
*
buf
=
cJSON_Print
(
root
);
printf
(
"------------------------------------------------------->333
\n
"
);
kk_sendData2gw
(
buf
,
strlen
(
buf
),
deviceCode
);
free
(
paramStr
);
free
(
buf
);
free
(
req_info
);
free
(
payload
);
cJSON_Delete
(
params
);
cJSON_Delete
(
root
);
return
SUCCESS_RETURN
;
}
int
kk_msg_execute_property_set
(
const
char
*
productCode
,
const
char
*
deviceCode
,
const
char
*
params
,
const
char
*
fatherDeviceCode
)
int
kk_msg_execute_property_set
(
const
char
*
productCode
,
const
char
*
deviceCode
,
const
char
*
params
,
const
char
*
fatherDeviceCode
)
{
{
char
*
method
=
"thing.service.property.set"
;
char
*
method
=
"thing.service.property.set"
;
...
...
midware/midware/dm/kk_dm_msg.h
View file @
298ae08d
...
@@ -85,7 +85,7 @@ const char DM_MSG_INFO[] DM_READ_ONLY;
...
@@ -85,7 +85,7 @@ const char DM_MSG_INFO[] DM_READ_ONLY;
#define KK_THING_SERVICE_SYNCINFO "/thing/service/syncinfo"
#define KK_THING_SERVICE_SYNCINFO "/thing/service/syncinfo"
#define KK_THING_SERVICE_SYNCDEVICEINFO "/thing/service/syncDeviceInfo"
#define KK_THING_SERVICE_SYNCDEVICEINFO "/thing/service/syncDeviceInfo"
#define KK_THING_SERVICE_SYNCDEVICEINFO_REPLY "/thing/service/syncDeviceInfo_reply"
#define KK_THING_SERVICE_SYNCDEVICEINFO_REPLY "/thing/service/syncDeviceInfo_reply"
#define KK_THING_SERVICE_CLOUDSTATUS "/thing/service/cloudStatus"
...
...
midware/midware/dm/kk_linkkit.c
View file @
298ae08d
...
@@ -56,7 +56,7 @@
...
@@ -56,7 +56,7 @@
static
int
s_gateway_add_flag
=
0
;
typedef
struct
{
typedef
struct
{
int
msgid
;
int
msgid
;
...
@@ -353,7 +353,7 @@ int kk_topo_delete_handle(cJSON *payload,cJSON *buf)
...
@@ -353,7 +353,7 @@ int kk_topo_delete_handle(cJSON *payload,cJSON *buf)
kk_sendData2gw
(
pnewout
,
strlen
(
pnewout
),
node
->
fatherDeviceCode
);
//send to gw itself
kk_sendData2gw
(
pnewout
,
strlen
(
pnewout
),
node
->
fatherDeviceCode
);
//send to gw itself
dm_mgr_subdev_delete
(
deviceCode
);
dm_mgr_subdev_delete
(
deviceCode
);
free
(
pnewout
);
free
(
pnewout
);
cJSON_Delete
(
rootData
);
//
cJSON_Delete(rootData);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
@@ -1196,7 +1196,8 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
...
@@ -1196,7 +1196,8 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
node
->
isOffline
=
KK_DEV_ONLINE
;
node
->
isOffline
=
KK_DEV_ONLINE
;
dm_mgr_upstream_thing_sub_register
(
KK_DM_DEVICE_CCU_DEVICEID
);
dm_mgr_upstream_thing_sub_register
(
KK_DM_DEVICE_CCU_DEVICEID
);
iotx_dm_dev_online
(
KK_DM_DEVICE_CCU_DEVICEID
);
//first online,report the online status
iotx_dm_dev_online
(
KK_DM_DEVICE_CCU_DEVICEID
);
//first online,report the online status
usleep
(
200000
);
if
(
s_gateway_add_flag
==
0
)
kk_subDev_check_auth
(
KK_DM_DEVICE_GATEWAY
);
dm_msg_ccu_property_post
(
node
);
dm_msg_ccu_property_post
(
node
);
dm_mgr_resubscribe
();
dm_mgr_resubscribe
();
}
}
...
@@ -1767,7 +1768,15 @@ int kk_mid_subdev_add(int devType, char productCode[PRODUCT_CODE_MAXLEN], char d
...
@@ -1767,7 +1768,15 @@ int kk_mid_subdev_add(int devType, char productCode[PRODUCT_CODE_MAXLEN], char d
}
}
kk_subDev_update_productType
(
node
->
productType
,
deviceCode
);
kk_subDev_update_productType
(
node
->
productType
,
deviceCode
);
}
}
if
(
devType
==
KK_DM_DEVICE_GATEWAY
){
//如果还没有连上云,网关topo add不处理
if
(
s_CloudStatus
){
//kk_subDev_update_auth(1,deviceCode);
s_gateway_add_flag
=
1
;
}
else
{
ERROR_PRINT
(
"Cloud is not connected!!!!!!!!
\n
"
);
return
FAIL_RETURN
;
}
}
_iotx_linkkit_mutex_lock
();
_iotx_linkkit_mutex_lock
();
res
=
_iotx_linkkit_slave_connect
(
devid
);
res
=
_iotx_linkkit_slave_connect
(
devid
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
...
...
midware/midware/dm/kk_sub_db.c
View file @
298ae08d
...
@@ -385,7 +385,36 @@ int kk_subDev_update_auth(int isAuth,const char *deviceCode)
...
@@ -385,7 +385,36 @@ int kk_subDev_update_auth(int isAuth,const char *deviceCode)
_kk_subDb_unlock
();
_kk_subDb_unlock
();
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
/************************************************************
*功能描述:更新设备注册标记
*输入参数:deviceCode:设备deviceCode
isAuth:1,已注册;0,未注册
*输出参数:无
*返 回 值:0:成功;其他:失败
*其他说明:
*************************************************************/
int
kk_subDev_check_auth
(
int
devType
)
{
char
*
sqlCmd
=
NULL
;
sqlite3_stmt
*
stmt
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
const
char
*
searchCmd
=
"select * from SubDeviceInfo WHERE devType = '%d';"
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
printf
(
"------------------------------------------------------->111
\n
"
);
sqlCmd
=
sqlite3_mprintf
(
searchCmd
,
devType
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
sqlCmd
,
strlen
(
sqlCmd
),
&
stmt
,
NULL
);
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
printf
(
"------------------------------------------------------->222
\n
"
);
char
*
pDeviceCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_DEVICECODE
);
char
*
pProductCode
=
(
char
*
)
sqlite3_column_text
(
stmt
,
DB_SUB_PRODUCTCODE
);
kk_msg_cloud_status_notify
(
pProductCode
,
pDeviceCode
);
//kk_subDev_update_auth(1,pDeviceCode);
}
sqlite3_finalize
(
stmt
);
sqlite3_free
(
sqlCmd
);
return
SUCCESS_RETURN
;
}
/************************************************************
/************************************************************
*功能描述:更新内场景支持,此接口只针对网关设备有效
*功能描述:更新内场景支持,此接口只针对网关设备有效
*输入参数:deviceCode:设备deviceCode
*输入参数:deviceCode:设备deviceCode
...
...
midware/midware/dm/kk_sub_db.h
View file @
298ae08d
...
@@ -15,7 +15,6 @@ int kk_subDev_update_auth(int isAuth,const char *deviceCode);
...
@@ -15,7 +15,6 @@ int kk_subDev_update_auth(int isAuth,const char *deviceCode);
int
kk_subDev_update_sceneSupport
(
int
sceneSupport
,
const
char
*
deviceCode
);
int
kk_subDev_update_sceneSupport
(
int
sceneSupport
,
const
char
*
deviceCode
);
int
kk_subDev_delete_by_dcode
(
char
deviceCode
[
DEVICE_CODE_MAXLEN
]);
int
kk_subDev_delete_by_dcode
(
char
deviceCode
[
DEVICE_CODE_MAXLEN
]);
int
kk_subDev_update_productType
(
char
*
productType
,
const
char
*
deviceCode
);
int
kk_subDev_update_productType
(
char
*
productType
,
const
char
*
deviceCode
);
int
kk_subDev_update_auth
(
int
isAuth
,
const
char
*
deviceCode
);
int
kk_subDev_send_property_get_from_db
(
void
);
int
kk_subDev_send_property_get_from_db
(
void
);
int
kk_subDev_send_property_get
(
const
char
*
fatherDeviceCode
);
int
kk_subDev_send_property_get
(
const
char
*
fatherDeviceCode
);
...
@@ -24,6 +23,7 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *scen
...
@@ -24,6 +23,7 @@ int kk_subDev_set_action_by_productType(const char *productType,const char *scen
int
kk_subDev_update_offline
(
int
isOffline
,
const
char
*
deviceCode
);
int
kk_subDev_update_offline
(
int
isOffline
,
const
char
*
deviceCode
);
int
kk_subDev_getSensors_reply
(
SensorType_t
*
list
);
int
kk_subDev_getSensors_reply
(
SensorType_t
*
list
);
int
kk_load_subDevice
(
void
);
int
kk_load_subDevice
(
void
);
int
kk_subDev_check_auth
(
int
devType
);
enum
{
enum
{
DB_SUB_IDX
=
0
,
DB_SUB_IDX
=
0
,
DB_SUB_ONLINE
,
DB_SUB_ONLINE
,
...
...
onboot.sh
View file @
298ae08d
#!/bin/sh
#!/bin/sh
#filepath="/home/kk"
#filepath="/home/kk"
filepath
=
"/app/
nx5
Apps"
filepath
=
"/app/
ccu
Apps"
if
[
!
-f
"/sbin/jq"
]
if
[
!
-f
"/sbin/jq"
]
then
then
cp
$filepath
/jq /sbin
cp
$filepath
/jq /sbin
fi
fi
if
[
-f
"
$filepath
/syscfg.json"
]
if
[
-f
"
/app/nx5Apps
/syscfg.json"
]
then
then
if
[
!
-f
"/data/syscfg.json"
]
if
[
!
-f
"/data/syscfg.json"
]
then
then
cp
$filepath
/syscfg.json /data
cp
/app/nx5Apps
/syscfg.json /data
fi
fi
embbedflag
=
`
cat
/data/syscfg.json|jq .
"ccuembbed"
`
embbedflag
=
`
cat
/data/syscfg.json|jq .
"ccuembbed"
`
#embbedflag="0"
#embbedflag="0"
...
@@ -64,11 +64,11 @@ export LD_LIBRARY_PATH=$filepath/lib
...
@@ -64,11 +64,11 @@ export LD_LIBRARY_PATH=$filepath/lib
$filepath
/bin/kk_midware &
$filepath
/bin/kk_midware &
sleep
3
sleep
3
$filepath
/bin/kk_cloud &
$filepath
/bin/kk_cloud &
sleep
1
sleep
5
#/home/kk/process_check.sh >/dev/null 2>&1 &
#/home/kk/process_check.sh >/dev/null 2>&1 &
$filepath
/bin/smarthome_z3gw_nx5
-r0
-l3
--device-def
=
$filepath
/kk_device_def.json
--db
=
/data/kk/kk_z3gw.db
--uart
=
/dev/ttyS1&
$filepath
/bin/smarthome_z3gw_nx5
-r0
-l3
--device-def
=
$filepath
/kk_device_def.json
--db
=
/data/kk/kk_z3gw.db
--uart
=
/dev/ttyS1&
sleep
2
sleep
2
$filepath
/bin/kk_lan &
$filepath
/bin/kk_lan
--uart
=
/dev/ttyS3
&
sleep
1
sleep
1
#echo "*/1 * * * * /app/ccuApps/process_check.sh" > /etc/cron.d/ccu || { echo "ERROR:add ccu crontab rule failed."; exit 1;}
#echo "*/1 * * * * /app/ccuApps/process_check.sh" > /etc/cron.d/ccu || { echo "ERROR:add ccu crontab rule failed."; exit 1;}
ntpd
-n
-q
-d
-p
stdtime.gov.hk &
ntpd
-n
-q
-d
-p
stdtime.gov.hk &
...
...
opcodeMapCfg/device_3024.json
View file @
298ae08d
{
{
"productCode"
:
"3024"
,
"productCode"
:
"3024"
,
"operateType"
:
"3"
,
"operateType"
:
"3"
,
"channel"
:
3
,
"channel"
:
3
,
"newccu"
:[
"newccu"
:[
{
{
"identifier"
:
"PowerSwitch"
,
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"dataType"
:
"int"
,
"channel"
:
"1"
,
"channel"
:
"1"
,
"valueRange"
:[
0
,
1
],
"valueRange"
:[
0
,
1
],
"value"
:
0
"value"
:
0
},
},
{
{
"identifier"
:
"PowerSwitch"
,
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"dataType"
:
"int"
,
"channel"
:
"2"
,
"channel"
:
"2"
,
"valueRange"
:[
0
,
1
],
"valueRange"
:[
0
,
1
],
"value"
:
0
"value"
:
0
},
},
{
{
"identifier"
:
"PowerSwitch"
,
"identifier"
:
"PowerSwitch"
,
"opcodemap"
:
"SWITCH"
,
"opcodemap"
:
"SWITCH"
,
"dataType"
:
"int"
,
"dataType"
:
"int"
,
"channel"
:
"3"
,
"channel"
:
"3"
,
"valueRange"
:[
0
,
1
],
"valueRange"
:[
0
,
1
],
"value"
:
0
"value"
:
0
}
}
],
],
"oldccu"
:[
"oldccu"
:[
{
{
"opcode"
:
"SWITCH"
,
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"dataType"
:
"map"
,
"channel"
:
"1"
,
"channel"
:
"1"
,
"valueRange"
:[
"OFF"
,
"ON"
]
"valueRange"
:[
"OFF"
,
"ON"
]
},
},
{
{
"opcode"
:
"SWITCH"
,
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"dataType"
:
"map"
,
"channel"
:
"2"
,
"channel"
:
"2"
,
"valueRange"
:[
"OFF"
,
"ON"
]
"valueRange"
:[
"OFF"
,
"ON"
]
},
},
{
{
"opcode"
:
"SWITCH"
,
"opcode"
:
"SWITCH"
,
"identifiermap"
:
"PowerSwitch"
,
"identifiermap"
:
"PowerSwitch"
,
"dataType"
:
"map"
,
"dataType"
:
"map"
,
"channel"
:
"3"
,
"channel"
:
"3"
,
"valueRange"
:[
"OFF"
,
"ON"
]
"valueRange"
:[
"OFF"
,
"ON"
]
}
}
]
]
}
}
\ No newline at end of file
opcodeMapCfg/device_3029.json
View file @
298ae08d
...
@@ -47,13 +47,6 @@
...
@@ -47,13 +47,6 @@
"channel"
:
"1"
,
"channel"
:
"1"
,
"valueRange"
:[],
"valueRange"
:[],
"value"
:
22
"value"
:
22
},{
"identifier"
:
"time_off"
,
"opcodemap"
:
"FLOOR_HEATING_DEV_STATUS"
,
"dataType"
:
"dummy"
,
"channel"
:
"1"
,
"valueRange"
:[],
"value"
:
0
}
}
],
],
"oldccu"
:[
"oldccu"
:[
...
@@ -76,7 +69,7 @@
...
@@ -76,7 +69,7 @@
},{
},{
"opcode"
:
"SET_WORK_TEMPERATURE"
,
"opcode"
:
"SET_WORK_TEMPERATURE"
,
"identifiermap"
:
"Temperature"
,
"identifiermap"
:
"Temperature"
,
"dataType"
:
"double"
,
"dataType"
:
"
string_
double"
,
"channel"
:
"1"
,
"channel"
:
"1"
,
"valueRange"
:[],
"valueRange"
:[],
"syn"
:
"work_temperature"
,
"syn"
:
"work_temperature"
,
...
@@ -84,7 +77,7 @@
...
@@ -84,7 +77,7 @@
},{
},{
"opcode"
:
"FLOOR_HEATING_SET_TIME_OFF"
,
"opcode"
:
"FLOOR_HEATING_SET_TIME_OFF"
,
"identifiermap"
:
"TimingOffTime"
,
"identifiermap"
:
"TimingOffTime"
,
"dataType"
:
"
double
"
,
"dataType"
:
"
fit
"
,
"channel"
:
"1"
,
"channel"
:
"1"
,
"valueRange"
:[],
"valueRange"
:[],
"syn"
:
"time_off"
,
"syn"
:
"time_off"
,
...
...
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