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
c02ee8a2
Commit
c02ee8a2
authored
Aug 20, 2020
by
chen.weican
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【修改内容】把代码中product key相关统一修改成productType
【提交人】陈伟灿
parent
40e267dd
Changes
24
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
24 changed files
with
466 additions
and
339 deletions
+466
-339
application/kcloud/kcloud_data_handle.c
application/kcloud/kcloud_data_handle.c
+9
-9
application/kcloud/kk_topic_mng.c
application/kcloud/kk_topic_mng.c
+67
-43
common/api/com_api.h
common/api/com_api.h
+3
-2
common/hal/HAL_OS_linux.c
common/hal/HAL_OS_linux.c
+1
-1
common/hal/kk_product.h
common/hal/kk_product.h
+2
-2
midware/midware/dm/dm_ota.c
midware/midware/dm/dm_ota.c
+16
-16
midware/midware/dm/dm_ota.h
midware/midware/dm/dm_ota.h
+2
-2
midware/midware/dm/kk_dm_api.c
midware/midware/dm/kk_dm_api.c
+9
-17
midware/midware/dm/kk_dm_mng.c
midware/midware/dm/kk_dm_mng.c
+156
-96
midware/midware/dm/kk_dm_mng.h
midware/midware/dm/kk_dm_mng.h
+16
-9
midware/midware/dm/kk_dm_msg.c
midware/midware/dm/kk_dm_msg.c
+84
-84
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+4
-4
midware/midware/dm/kk_sub_db.c
midware/midware/dm/kk_sub_db.c
+13
-12
midware/midware/dm/kk_sub_db.h
midware/midware/dm/kk_sub_db.h
+6
-6
midware/midware/dm/kk_wlist_mng.c
midware/midware/dm/kk_wlist_mng.c
+18
-4
midware/midware/dm/kk_wlist_mng.h
midware/midware/dm/kk_wlist_mng.h
+2
-2
midware/midware/midware.c
midware/midware/midware.c
+5
-4
midware/midware/utils/infra_defs.h
midware/midware/utils/infra_defs.h
+2
-2
midware/tsl/tsl_handle/kk_tsl_api.c
midware/tsl/tsl_handle/kk_tsl_api.c
+10
-10
midware/tsl/tsl_handle/kk_tsl_api.h
midware/tsl/tsl_handle/kk_tsl_api.h
+1
-1
midware/tsl/tsl_handle/kk_tsl_common.h
midware/tsl/tsl_handle/kk_tsl_common.h
+5
-3
midware/tsl/tsl_handle/kk_tsl_load.c
midware/tsl/tsl_handle/kk_tsl_load.c
+28
-4
midware/tsl/tsl_handle/kk_tsl_load.h
midware/tsl/tsl_handle/kk_tsl_load.h
+2
-1
midware/tsl/tsl_handle/kk_utils.c
midware/tsl/tsl_handle/kk_utils.c
+5
-5
No files found.
application/kcloud/kcloud_data_handle.c
View file @
c02ee8a2
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
#define KK_FILTER_SET_TOPIC_REPLY "/thing/service/property/set_reply"
#define KK_FILTER_SET_TOPIC_REPLY "/thing/service/property/set_reply"
#define KK_FILTER_EVENT_POST_TOPIC "/thing/event/property/post"
#define KK_FILTER_EVENT_POST_TOPIC "/thing/event/property/post"
#define KK_FILTER_EVENT_POST_REPLY "/thing/event/property/post_reply"
#define KK_FILTER_EVENT_POST_REPLY "/thing/event/property/post_reply"
const
char
DM_MSG_TO_MIDDWARE
[]
=
"{
\"
msgtype
\"
:
\"
%d
\"
,
\"
product
_type
\"
:
\"
%s
\"
,
\"
device_nam
e
\"
:
\"
%s
\"
}"
;
const
char
DM_MSG_TO_MIDDWARE
[]
=
"{
\"
msgtype
\"
:
\"
%d
\"
,
\"
product
Type
\"
:
\"
%s
\"
,
\"
deviceCod
e
\"
:
\"
%s
\"
}"
;
#define KK_TOPIC_SERVICE_DELIMITER '/'
#define KK_TOPIC_SERVICE_DELIMITER '/'
typedef
struct
{
typedef
struct
{
...
@@ -53,7 +53,7 @@ int _kk_sendto_cloud(cJSON *root)
...
@@ -53,7 +53,7 @@ int _kk_sendto_cloud(cJSON *root)
if
(
pData
==
NULL
){
if
(
pData
==
NULL
){
return
-
1
;
return
-
1
;
}
}
printf
(
"[%s][%d] payload:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
pData
->
valuestring
);
INFO_PRINT
(
"[%s][%d] payload:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
pData
->
valuestring
);
KK_MQTT_SendMsg
(
topic
,(
const
char
*
)
pData
->
valuestring
);
KK_MQTT_SendMsg
(
topic
,(
const
char
*
)
pData
->
valuestring
);
free
(
topic
);
free
(
topic
);
return
0
;
return
0
;
...
@@ -68,7 +68,7 @@ void KK_Data_FromDev(void* str,int len)
...
@@ -68,7 +68,7 @@ void KK_Data_FromDev(void* str,int len)
}
}
root
=
cJSON_Parse
((
char
*
)
str
);
root
=
cJSON_Parse
((
char
*
)
str
);
if
(
root
==
NULL
){
if
(
root
==
NULL
){
printf
(
"[%s][%d] root is null
\n
"
,
__FUNCTION__
,
__LINE__
);
ERROR_PRINT
(
"[%s][%d] root is null
\n
"
,
__FUNCTION__
,
__LINE__
);
return
;
return
;
}
}
cmd
=
cJSON_GetObjectItem
(
root
,
"cmd"
);
cmd
=
cJSON_GetObjectItem
(
root
,
"cmd"
);
...
@@ -124,11 +124,11 @@ static kk_msg_type_t _kk_parse_type(const char *topic)
...
@@ -124,11 +124,11 @@ static kk_msg_type_t _kk_parse_type(const char *topic)
}
}
static
int
_kk_topic_parse_pkdn
(
_IN_
char
*
topic
,
_IN_
int
start_deli
,
_IN_
int
end_deli
,
static
int
_kk_topic_parse_pkdn
(
_IN_
char
*
topic
,
_IN_
int
start_deli
,
_IN_
int
end_deli
,
_OU_
char
product
_key
[
PRODUCT_TYPE_LEN
],
_OU_
char
device_nam
e
[
DEVICE_CODE_LEN
])
_OU_
char
product
Type
[
PRODUCT_TYPE_LEN
],
_OU_
char
deviceCod
e
[
DEVICE_CODE_LEN
])
{
{
int
res
=
0
,
start
=
0
,
end
=
0
,
slice
=
0
;
int
res
=
0
,
start
=
0
,
end
=
0
,
slice
=
0
;
if
(
topic
==
NULL
||
product
_key
==
NULL
||
device_nam
e
==
NULL
)
{
if
(
topic
==
NULL
||
product
Type
==
NULL
||
deviceCod
e
==
NULL
)
{
return
-
1
;
return
-
1
;
}
}
res
=
kk_utils_memtok
(
topic
,
strlen
(
topic
),
KK_TOPIC_SERVICE_DELIMITER
,
start_deli
,
&
start
);
res
=
kk_utils_memtok
(
topic
,
strlen
(
topic
),
KK_TOPIC_SERVICE_DELIMITER
,
start_deli
,
&
start
);
...
@@ -147,8 +147,8 @@ static int _kk_topic_parse_pkdn(_IN_ char *topic, _IN_ int start_deli, _IN_ int
...
@@ -147,8 +147,8 @@ static int _kk_topic_parse_pkdn(_IN_ char *topic, _IN_ int start_deli, _IN_ int
/* dm_log_debug("URI Product Key: %.*s, Device Name: %.*s", slice - start - 1, uri + start + 1, end - slice - 1,
/* dm_log_debug("URI Product Key: %.*s, Device Name: %.*s", slice - start - 1, uri + start + 1, end - slice - 1,
uri + slice + 1); */
uri + slice + 1); */
memcpy
(
product
_key
,
topic
+
start
+
1
,
slice
-
start
-
1
);
memcpy
(
product
Type
,
topic
+
start
+
1
,
slice
-
start
-
1
);
memcpy
(
device
_nam
e
,
topic
+
slice
+
1
,
end
-
slice
-
1
);
memcpy
(
device
Cod
e
,
topic
+
slice
+
1
,
end
-
slice
-
1
);
return
0
;
return
0
;
}
}
...
@@ -165,7 +165,7 @@ static char * _kk_data_create(const char *topic,const char *data)
...
@@ -165,7 +165,7 @@ static char * _kk_data_create(const char *topic,const char *data)
kk_msg_type_t
type
;
kk_msg_type_t
type
;
type
=
_kk_parse_type
(
topic
);
type
=
_kk_parse_type
(
topic
);
if
(
type
==
MSG_INVALID
){
if
(
type
==
MSG_INVALID
){
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
ERROR_PRINT
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
return
NULL
;
return
NULL
;
}
}
res
=
_kk_topic_parse_pkdn
((
char
*
)
topic
,
2
,
4
,
product_key
,
device_name
);
res
=
_kk_topic_parse_pkdn
((
char
*
)
topic
,
2
,
4
,
product_key
,
device_name
);
...
@@ -173,7 +173,7 @@ static char * _kk_data_create(const char *topic,const char *data)
...
@@ -173,7 +173,7 @@ static char * _kk_data_create(const char *topic,const char *data)
infoStr_len
=
strlen
(
DM_MSG_TO_MIDDWARE
)
+
strlen
(
product_key
)
+
strlen
(
device_name
)
+
10
;
infoStr_len
=
strlen
(
DM_MSG_TO_MIDDWARE
)
+
strlen
(
product_key
)
+
strlen
(
device_name
)
+
10
;
infoStr
=
malloc
(
infoStr_len
);
infoStr
=
malloc
(
infoStr_len
);
if
(
infoStr
==
NULL
){
if
(
infoStr
==
NULL
){
printf
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
ERROR_PRINT
(
"[%s][%d]
\n
"
,
__FUNCTION__
,
__LINE__
);
return
NULL
;
return
NULL
;
}
}
memset
(
infoStr
,
0x0
,
infoStr_len
);
memset
(
infoStr
,
0x0
,
infoStr_len
);
...
...
application/kcloud/kk_topic_mng.c
View file @
c02ee8a2
This diff is collapsed.
Click to expand it.
common/api/com_api.h
View file @
c02ee8a2
...
@@ -55,8 +55,9 @@ typedef enum{
...
@@ -55,8 +55,9 @@ typedef enum{
}
kk_msg_type_t
;
}
kk_msg_type_t
;
#define MSG_TYPE_STR "msgtype"
#define MSG_TYPE_STR "msgtype"
#define MSG_PRODUCT_TYPE_STR "product_type"
#define MSG_PRODUCT_TYPE_STR "productType"
#define MSG_DEVICE_NAME_STR "device_name"
#define MSG_PRODUCT_CODE_STR "productCode"
#define MSG_DEVICE_CODE_STR "deviceCode"
#define MSG_PAYLOAD_STR "payload"
#define MSG_PAYLOAD_STR "payload"
#define MSG_INFO_STR "info"
#define MSG_INFO_STR "info"
#define MSG_INDENTIFIER_STR "identifier"
#define MSG_INDENTIFIER_STR "identifier"
...
...
common/hal/HAL_OS_linux.c
View file @
c02ee8a2
...
@@ -520,7 +520,7 @@ int HAL_Get_mac(char* mac)
...
@@ -520,7 +520,7 @@ int HAL_Get_mac(char* mac)
printf
(
"mac ioctl error
\n
"
);
printf
(
"mac ioctl error
\n
"
);
return
-
1
;
return
-
1
;
}
}
sprintf
(
mac_addr
,
"%02x
:%02x:%02x:%02x:%02x:
%02x"
,
sprintf
(
mac_addr
,
"%02x
%02x%02x%02x%02x
%02x"
,
(
unsigned
char
)
tmp
.
ifr_hwaddr
.
sa_data
[
0
],
(
unsigned
char
)
tmp
.
ifr_hwaddr
.
sa_data
[
0
],
(
unsigned
char
)
tmp
.
ifr_hwaddr
.
sa_data
[
1
],
(
unsigned
char
)
tmp
.
ifr_hwaddr
.
sa_data
[
1
],
(
unsigned
char
)
tmp
.
ifr_hwaddr
.
sa_data
[
2
],
(
unsigned
char
)
tmp
.
ifr_hwaddr
.
sa_data
[
2
],
...
...
common/hal/kk_product.h
View file @
c02ee8a2
...
@@ -29,8 +29,8 @@
...
@@ -29,8 +29,8 @@
#define SN_ADDR_LEN (32+1)
#define SN_ADDR_LEN (32+1)
#define PRODUCT_TPYE "
a1OYuSBt23u
"
#define PRODUCT_TPYE "
kk
"
#define PRODUCT_CODE "
aIqEbWno8yDdsjCX15iq
"
#define PRODUCT_CODE "
15
"
int
HAL_SetProduct_Type
(
_IN_
char
*
product_type
);
int
HAL_SetProduct_Type
(
_IN_
char
*
product_type
);
int
HAL_SetProduct_Code
(
_IN_
char
*
product_code
);
int
HAL_SetProduct_Code
(
_IN_
char
*
product_code
);
...
...
midware/midware/dm/dm_ota.c
View file @
c02ee8a2
...
@@ -20,8 +20,8 @@ int dm_ota_init(void)
...
@@ -20,8 +20,8 @@ int dm_ota_init(void)
dm_ota_ctx_t
*
ctx
=
_dm_ota_get_ctx
();
dm_ota_ctx_t
*
ctx
=
_dm_ota_get_ctx
();
memset
(
ctx
,
0
,
sizeof
(
dm_ota_ctx_t
));
memset
(
ctx
,
0
,
sizeof
(
dm_ota_ctx_t
));
HAL_GetProduct_Type
(
ctx
->
product
_key
);
HAL_GetProduct_Type
(
ctx
->
product
Type
);
HAL_GetProduct_Code
(
ctx
->
device
_nam
e
);
HAL_GetProduct_Code
(
ctx
->
device
Cod
e
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
@@ -32,7 +32,7 @@ int dm_ota_sub(void)
...
@@ -32,7 +32,7 @@ int dm_ota_sub(void)
void
*
handle
=
NULL
;
void
*
handle
=
NULL
;
/* Init OTA Handle */
/* Init OTA Handle */
handle
=
IOT_OTA_Init
(
ctx
->
product
_key
,
ctx
->
device_nam
e
,
NULL
);
handle
=
IOT_OTA_Init
(
ctx
->
product
Type
,
ctx
->
deviceCod
e
,
NULL
);
if
(
handle
==
NULL
)
{
if
(
handle
==
NULL
)
{
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
...
@@ -43,14 +43,14 @@ int dm_ota_sub(void)
...
@@ -43,14 +43,14 @@ int dm_ota_sub(void)
}
}
int
ota_uri_parse_pkdn
(
_IN_
char
*
uri
,
_IN_
int
uri_len
,
_IN_
int
start_deli
,
_IN_
int
end_deli
,
int
ota_uri_parse_pkdn
(
_IN_
char
*
uri
,
_IN_
int
uri_len
,
_IN_
int
start_deli
,
_IN_
int
end_deli
,
_OU_
char
product
_key
[
PRODUCT_KEY_MAXLEN
],
_OU_
char
device_name
[
DEVICE_NAM
E_MAXLEN
])
_OU_
char
product
Type
[
PRODUCT_TYPE_MAXLEN
],
_OU_
char
deviceCode
[
DEVICE_COD
E_MAXLEN
])
{
{
int
res
=
0
,
start
=
0
,
end
=
0
,
slice
=
0
;
int
res
=
0
,
start
=
0
,
end
=
0
,
slice
=
0
;
int
item_index
=
0
;
int
item_index
=
0
;
int
count
=
0
;
int
count
=
0
;
if
(
uri
==
NULL
||
uri_len
<=
0
||
product
_key
==
NULL
||
device_nam
e
==
NULL
||
if
(
uri
==
NULL
||
uri_len
<=
0
||
product
Type
==
NULL
||
deviceCod
e
==
NULL
||
(
strlen
(
product
_key
)
>=
PRODUCT_KEY_MAXLEN
)
||
(
strlen
(
device_name
)
>=
DEVICE_NAM
E_MAXLEN
))
{
(
strlen
(
product
Type
)
>=
PRODUCT_TYPE_MAXLEN
)
||
(
strlen
(
deviceCode
)
>=
DEVICE_COD
E_MAXLEN
))
{
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
}
}
...
@@ -75,21 +75,21 @@ int ota_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli, _I
...
@@ -75,21 +75,21 @@ int ota_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli, _I
/* dm_log_debug("URI Product Key: %.*s, Device Name: %.*s", slice - start - 1, uri + start + 1, end - slice - 1,
/* dm_log_debug("URI Product Key: %.*s, Device Name: %.*s", slice - start - 1, uri + start + 1, end - slice - 1,
uri + slice + 1); */
uri + slice + 1); */
memcpy
(
product
_key
,
uri
+
start
+
1
,
slice
-
start
-
1
);
memcpy
(
product
Type
,
uri
+
start
+
1
,
slice
-
start
-
1
);
memcpy
(
device
_nam
e
,
uri
+
slice
+
1
,
end
-
slice
-
1
);
memcpy
(
device
Cod
e
,
uri
+
slice
+
1
,
end
-
slice
-
1
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
dm_ota_setPKN
(
char
product
_key
[
PRODUCT_KEY_MAXLEN
],
char
device_name
[
DEVICE_NAM
E_MAXLEN
])
int
dm_ota_setPKN
(
char
product
Type
[
PRODUCT_TYPE_MAXLEN
],
char
deviceCode
[
DEVICE_COD
E_MAXLEN
])
{
{
dm_ota_ctx_t
*
ctx
=
_dm_ota_get_ctx
();
dm_ota_ctx_t
*
ctx
=
_dm_ota_get_ctx
();
int
res
=
0
;
int
res
=
0
;
memset
(
ctx
->
product
_key
,
0
,
PRODUCT_KEY
_MAXLEN
);
memset
(
ctx
->
product
Type
,
0
,
PRODUCT_TYPE
_MAXLEN
);
memset
(
ctx
->
device
_name
,
0
,
DEVICE_NAM
E_MAXLEN
);
memset
(
ctx
->
device
Code
,
0
,
DEVICE_COD
E_MAXLEN
);
memcpy
(
ctx
->
product
_key
,
product_key
,
PRODUCT_KEY
_MAXLEN
);
memcpy
(
ctx
->
product
Type
,
productType
,
PRODUCT_TYPE
_MAXLEN
);
memcpy
(
ctx
->
device
_name
,
device_name
,
DEVICE_NAM
E_MAXLEN
);
memcpy
(
ctx
->
device
Code
,
deviceCode
,
DEVICE_COD
E_MAXLEN
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
@@ -176,7 +176,7 @@ void dm_ota_handle(void *data){
...
@@ -176,7 +176,7 @@ void dm_ota_handle(void *data){
cJSON
*
json
,
*
info_root
,
*
info
;
cJSON
*
json
,
*
info_root
,
*
info
;
cJSON
*
topic
,
*
typeJson
;
cJSON
*
topic
,
*
typeJson
;
cJSON
*
payload
;
cJSON
*
payload
;
cJSON
*
product_type
,
*
device_
nam
e
;
cJSON
*
product_type
,
*
device_
cod
e
;
json
=
cJSON_Parse
(
data
);
json
=
cJSON_Parse
(
data
);
if
(
json
==
NULL
)
{
if
(
json
==
NULL
)
{
printf
(
"Error before: [%s]
\n
"
,
"cJSON_Parse"
);
printf
(
"Error before: [%s]
\n
"
,
"cJSON_Parse"
);
...
@@ -187,7 +187,7 @@ void dm_ota_handle(void *data){
...
@@ -187,7 +187,7 @@ void dm_ota_handle(void *data){
info
=
cJSON_Parse
(
info_root
->
valuestring
);
info
=
cJSON_Parse
(
info_root
->
valuestring
);
typeJson
=
cJSON_GetObjectItem
(
info
,
MSG_TYPE_STR
);
typeJson
=
cJSON_GetObjectItem
(
info
,
MSG_TYPE_STR
);
product_type
=
cJSON_GetObjectItem
(
info
,
MSG_PRODUCT_TYPE_STR
);
product_type
=
cJSON_GetObjectItem
(
info
,
MSG_PRODUCT_TYPE_STR
);
device_
name
=
cJSON_GetObjectItem
(
info
,
MSG_DEVICE_NAM
E_STR
);
device_
code
=
cJSON_GetObjectItem
(
info
,
MSG_DEVICE_COD
E_STR
);
payload
=
cJSON_GetObjectItem
(
json
,
MSG_PAYLOAD_STR
);
payload
=
cJSON_GetObjectItem
(
json
,
MSG_PAYLOAD_STR
);
printf
(
" payload= %s
\n
"
,
payload
->
valuestring
);
printf
(
" payload= %s
\n
"
,
payload
->
valuestring
);
...
@@ -195,7 +195,7 @@ void dm_ota_handle(void *data){
...
@@ -195,7 +195,7 @@ void dm_ota_handle(void *data){
char
buf
[
128
]
=
{
0
};
char
buf
[
128
]
=
{
0
};
int
len
=
128
;
int
len
=
128
;
if
(
dm_ota_check
(
payload
->
valuestring
,
strlen
(
payload
->
valuestring
)
+
1
,
IOTX_OTA_TOPIC_TYPE_DEVICE_UPGRATE
)
==
0
){
if
(
dm_ota_check
(
payload
->
valuestring
,
strlen
(
payload
->
valuestring
)
+
1
,
IOTX_OTA_TOPIC_TYPE_DEVICE_UPGRATE
)
==
0
){
dm_ota_setPKN
(
product_type
->
valuestring
,
device_
nam
e
->
valuestring
);
dm_ota_setPKN
(
product_type
->
valuestring
,
device_
cod
e
->
valuestring
);
dm_fota_perform_sync
(
buf
,
len
);
dm_fota_perform_sync
(
buf
,
len
);
}
else
{
}
else
{
printf
(
"parse params error !!
\n
"
);
printf
(
"parse params error !!
\n
"
);
...
...
midware/midware/dm/dm_ota.h
View file @
c02ee8a2
...
@@ -11,8 +11,8 @@
...
@@ -11,8 +11,8 @@
typedef
struct
{
typedef
struct
{
void
*
ota_handle
;
void
*
ota_handle
;
char
product
_key
[
PRODUCT_KEY
_MAXLEN
];
char
product
Type
[
PRODUCT_TYPE
_MAXLEN
];
char
device
_name
[
DEVICE_NAM
E_MAXLEN
];
char
device
Code
[
DEVICE_COD
E_MAXLEN
];
}
dm_ota_ctx_t
;
}
dm_ota_ctx_t
;
int
dm_ota_init
(
void
);
int
dm_ota_init
(
void
);
...
...
midware/midware/dm/kk_dm_api.c
View file @
c02ee8a2
...
@@ -38,23 +38,18 @@ static void _dm_api_unlock(void)
...
@@ -38,23 +38,18 @@ static void _dm_api_unlock(void)
int
kk_dm_subdev_register
(
_IN_
int
devid
)
int
kk_dm_subdev_register
(
_IN_
int
devid
)
{
{
int
res
=
0
;
int
res
=
0
;
dm_mgr_dev_node_t
*
search_node
=
NULL
;
//
dm_mgr_dev_node_t *search_node = NULL;
if
(
devid
<
0
)
{
if
(
devid
<
0
)
{
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
}
}
_dm_api_lock
();
_dm_api_lock
();
res
=
dm_mgr_search_dev_by_devid
(
devid
,
(
void
**
)
&
search_node
);
//res = dm_mgr_search_dev_by_devid(devid, (void **)&search_node);
if
(
res
!=
SUCCESS_RETURN
)
{
//if (res != SUCCESS_RETURN) {
_dm_api_unlock
();
// _dm_api_unlock();
return
FAIL_RETURN
;
//return FAIL_RETURN;
}
//}
if
((
strlen
(
search_node
->
device_secret
)
>
0
)
&&
(
strlen
(
search_node
->
device_secret
)
<
DEVICE_SECRET_MAXLEN
))
{
_dm_api_unlock
();
return
SUCCESS_RETURN
;
}
res
=
dm_mgr_upstream_thing_sub_register
(
devid
);
res
=
dm_mgr_upstream_thing_sub_register
(
devid
);
...
@@ -275,9 +270,6 @@ ERROR:
...
@@ -275,9 +270,6 @@ ERROR:
int
iotx_dm_subscribe
(
_IN_
int
devid
)
int
iotx_dm_subscribe
(
_IN_
int
devid
)
{
{
int
res
=
0
,
dev_type
=
0
;
int
res
=
0
,
dev_type
=
0
;
char
product_key
[
PRODUCT_KEY_MAXLEN
]
=
{
0
};
char
device_name
[
DEVICE_NAME_MAXLEN
]
=
{
0
};
char
device_secret
[
DEVICE_SECRET_MAXLEN
]
=
{
0
};
if
(
devid
<
0
)
{
if
(
devid
<
0
)
{
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
...
@@ -294,12 +286,12 @@ int iotx_dm_subscribe(_IN_ int devid)
...
@@ -294,12 +286,12 @@ int iotx_dm_subscribe(_IN_ int devid)
//send app to subscribe mqtt
//send app to subscribe mqtt
const
char
subscribe_cmd
[]
=
const
char
subscribe_cmd
[]
=
"{
\"
cmd
\"
:
\"
subscribe
\"
,
\"
data
\"
:{
\"
productType
\"
:
\"
%s
\"
,
\"
productCode
\"
:
\"
%s
\"
}}"
;
"{
\"
cmd
\"
:
\"
subscribe
\"
,
\"
data
\"
:{
\"
productType
\"
:
\"
%s
\"
,
\"
productCode
\"
:
\"
%s
\"
,
\"
deviceCode
\"
:
\"
%s
\"
}}"
;
int
len
=
strlen
(
subscribe_cmd
)
+
strlen
(
node
->
product
_key
)
+
strlen
(
node
->
device_nam
e
)
+
1
;
int
len
=
strlen
(
subscribe_cmd
)
+
strlen
(
node
->
product
Type
)
+
strlen
(
node
->
productCode
)
+
strlen
(
node
->
deviceCod
e
)
+
1
;
void
*
buf
=
malloc
(
len
);
void
*
buf
=
malloc
(
len
);
if
(
buf
){
if
(
buf
){
HAL_Snprintf
(
buf
,
len
,
subscribe_cmd
,
node
->
product
_key
,
node
->
device_nam
e
);
HAL_Snprintf
(
buf
,
len
,
subscribe_cmd
,
node
->
product
Type
,
node
->
productCode
,
node
->
deviceCod
e
);
kk_ipc_send
(
IPC_MID2APP
,
buf
,
len
);
kk_ipc_send
(
IPC_MID2APP
,
buf
,
len
);
free
(
buf
);
free
(
buf
);
}
else
{
}
else
{
...
...
midware/midware/dm/kk_dm_mng.c
View file @
c02ee8a2
This diff is collapsed.
Click to expand it.
midware/midware/dm/kk_dm_mng.h
View file @
c02ee8a2
...
@@ -6,20 +6,24 @@
...
@@ -6,20 +6,24 @@
#include "iotx_dm.h"
#include "iotx_dm.h"
#define KK_DM_DEVICE_
SINGLE
(0x01)
#define KK_DM_DEVICE_
CCU
(0x01)
#define KK_DM_DEVICE_SUBDEV (0x02)
#define KK_DM_DEVICE_SUBDEV (0x02)
#define KK_DM_DEVICE_GATEWAY (0x04)
#define KK_DM_DEVICE_GATEWAY (0x04)
#define KK_MID_SYNC_DEFAULT_TIMEOUT_MS (200)
#define KK_MID_SYNC_DEFAULT_TIMEOUT_MS (200)
#define IDENTIFY_MAXLEN (64 + 1)
#define IDENTIFY_MAXLEN (64 + 1)
#define KK_DM_CCU_DEVICE_PRODUCT_TYPE "ccu"
#define KK_DM_CCU_DEVICE_PRODUCT_CODE "15"
#define KK_DM_GW_DEVICE_PRODUCT_TYPE "gw"
#define KK_DM_GW_DEVICE_PRODUCT_CODE "2"
typedef
struct
{
typedef
struct
{
int
devid
;
int
devid
;
int
dev_type
;
int
dev_type
;
kk_tsl_t
*
dev_shadow
;
kk_tsl_t
*
dev_shadow
;
char
product
_key
[
PRODUCT_KEY
_MAXLEN
];
char
product
Type
[
PRODUCT_TYPE
_MAXLEN
];
char
device_name
[
DEVICE_NAM
E_MAXLEN
];
char
productCode
[
PRODUCT_COD
E_MAXLEN
];
char
device
_secret
[
DEVICE_SECRET
_MAXLEN
];
char
device
Code
[
DEVICE_CODE
_MAXLEN
];
char
device_m
ac
[
DEVICE_MAC_MAXLEN
];
char
fatherM
ac
[
DEVICE_MAC_MAXLEN
];
struct
list_head
linked_list
;
struct
list_head
linked_list
;
}
dm_mgr_dev_node_t
;
}
dm_mgr_dev_node_t
;
...
@@ -36,8 +40,9 @@ typedef struct {
...
@@ -36,8 +40,9 @@ typedef struct {
//const char *service_name;
//const char *service_name;
kk_msg_type_t
msgtype
;
kk_msg_type_t
msgtype
;
char
identity
[
IDENTIFY_MAXLEN
];
char
identity
[
IDENTIFY_MAXLEN
];
char
product_key
[
PRODUCT_KEY_MAXLEN
];
char
productType
[
PRODUCT_TYPE_MAXLEN
];
char
device_name
[
DEVICE_NAME_MAXLEN
];
char
productCode
[
PRODUCT_CODE_MAXLEN
];
char
deviceCode
[
DEVICE_CODE_MAXLEN
];
char
*
params
;
char
*
params
;
int
params_len
;
int
params_len
;
char
*
method
;
char
*
method
;
...
@@ -46,8 +51,10 @@ typedef struct {
...
@@ -46,8 +51,10 @@ typedef struct {
typedef
struct
{
typedef
struct
{
kk_msg_type_t
msgtype
;
kk_msg_type_t
msgtype
;
char
identity
[
IDENTIFY_MAXLEN
];
char
identity
[
IDENTIFY_MAXLEN
];
char
product_key
[
PRODUCT_KEY_MAXLEN
];
char
productType
[
PRODUCT_TYPE_MAXLEN
];
char
device_name
[
DEVICE_NAME_MAXLEN
];
char
productCode
[
PRODUCT_CODE_MAXLEN
];
char
deviceCode
[
DEVICE_CODE_MAXLEN
];
iotx_dm_error_code_t
code
;
iotx_dm_error_code_t
code
;
}
kk_msg_response_t
;
}
kk_msg_response_t
;
...
...
midware/midware/dm/kk_dm_msg.c
View file @
c02ee8a2
This diff is collapsed.
Click to expand it.
midware/midware/dm/kk_linkkit.c
View file @
c02ee8a2
...
@@ -287,7 +287,7 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
...
@@ -287,7 +287,7 @@ static void _iotx_linkkit_event_callback(iotx_dm_event_types_t type, char *data)
}
else
if
(
msgType
==
MSG_PROPERTYSET
){
}
else
if
(
msgType
==
MSG_PROPERTYSET
){
INFO_PRINT
(
"property set reply
\n
"
);
INFO_PRINT
(
"property set reply
\n
"
);
cJSON
*
product_type
=
cJSON_GetObjectItem
(
info
,
MSG_PRODUCT_TYPE_STR
);
cJSON
*
product_type
=
cJSON_GetObjectItem
(
info
,
MSG_PRODUCT_TYPE_STR
);
cJSON
*
device_name
=
cJSON_GetObjectItem
(
info
,
MSG_DEVICE_
NAM
E_STR
);
cJSON
*
device_name
=
cJSON_GetObjectItem
(
info
,
MSG_DEVICE_
COD
E_STR
);
dm_msg_thing_property_set_reply
(
product_type
->
valuestring
,
device_name
->
valuestring
,
payload
->
valuestring
,
strlen
(
payload
->
valuestring
),
NULL
);
dm_msg_thing_property_set_reply
(
product_type
->
valuestring
,
device_name
->
valuestring
,
payload
->
valuestring
,
strlen
(
payload
->
valuestring
),
NULL
);
//kk_tsl_service_property_set(topic->valuestring, payload->valuestring, strlen(payload->valuestring), NULL);
//kk_tsl_service_property_set(topic->valuestring, payload->valuestring, strlen(payload->valuestring), NULL);
}
else
if
(
msgType
==
MSG_OTA_UPGRADE
){
}
else
if
(
msgType
==
MSG_OTA_UPGRADE
){
...
@@ -1654,18 +1654,18 @@ int iot_linkkit_subdev_query_id(char product_key[IOTX_PRODUCT_KEY_LEN + 1], char
...
@@ -1654,18 +1654,18 @@ int iot_linkkit_subdev_query_id(char product_key[IOTX_PRODUCT_KEY_LEN + 1], char
#endif /* #ifdef DEVICE_MODEL_GATEWAY */
#endif /* #ifdef DEVICE_MODEL_GATEWAY */
int
kk_mid_subdev_add
(
char
product
_key
[
PRODUCT_KEY_MAXLEN
],
char
device_name
[
DEVICE_NAME_MAXLEN
],
char
device_secret
[
DEVICE_SECRET_MAXLEN
],
char
device_m
ac
[
DEVICE_MAC_MAXLEN
]){
int
kk_mid_subdev_add
(
char
product
Type
[
PRODUCT_TYPE_MAXLEN
],
char
productCode
[
PRODUCT_CODE_MAXLEN
],
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
char
fatherM
ac
[
DEVICE_MAC_MAXLEN
]){
int
res
=
0
;
int
res
=
0
;
int
devid
=
0
;
int
devid
=
0
;
res
=
dm_mgr_subdev_create
(
product
_key
,
device_name
,
device_secret
,
device_m
ac
,
&
devid
);
res
=
dm_mgr_subdev_create
(
product
Type
,
productCode
,
deviceCode
,
fatherM
ac
,
&
devid
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
ERROR_PRINT
(
"subdev create Failed
\n
"
);
ERROR_PRINT
(
"subdev create Failed
\n
"
);
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
INFO_PRINT
(
"subdev open susseed, devid = %d
\n
"
,
devid
);
INFO_PRINT
(
"subdev open susseed, devid = %d
\n
"
,
devid
);
res
=
kk_subDev_insert_db
(
0
,
product
_key
,
device_name
,
device_secret
,
device_mac
);
res
=
kk_subDev_insert_db
(
0
,
product
Type
,
productCode
,
deviceCode
,
fatherMac
,
"1.1.0"
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
...
...
midware/midware/dm/kk_sub_db.c
View file @
c02ee8a2
...
@@ -49,7 +49,7 @@ static int kk_subDev_db_Init(void)
...
@@ -49,7 +49,7 @@ static int kk_subDev_db_Init(void)
}
}
INFO_PRINT
(
"sub db Database opened
\n
"
);
INFO_PRINT
(
"sub db Database opened
\n
"
);
{
{
const
char
*
pSubDevTable
=
"CREATE TABLE IF NOT EXISTS SubDeviceInfo(idx INTEGER,isOnline INTEGER,product
_type varchar(33), device_name varchar(33), device_secret varchar(33),device_mac varchar(17
))"
;
const
char
*
pSubDevTable
=
"CREATE TABLE IF NOT EXISTS SubDeviceInfo(idx INTEGER,isOnline INTEGER,product
Type varchar(33),productCode varchar(33),deviceCode varchar(33),fatherMac varchar(17),version varchar(33
))"
;
char
*
pcErr
;
char
*
pcErr
;
...
@@ -91,9 +91,10 @@ static int _kk_load_subDevice(void)
...
@@ -91,9 +91,10 @@ static int _kk_load_subDevice(void)
else
{
else
{
ctx
->
subDevNum
++
;
ctx
->
subDevNum
++
;
}
}
iotx_dm_subscribe
(
devId
);
kk_dm_ota_report_version
(
devId
,
"1.0.0"
);
//todo
usleep
(
100000
);
usleep
(
100000
);
iotx_dm_subscribe
(
devId
);
kk_dm_ota_report_version
(
devId
,
sqlite3_column_text
(
stmt
,
6
));
//version
//usleep(100000);
}
}
sqlite3_finalize
(
stmt
);
sqlite3_finalize
(
stmt
);
_kk_subDb_unlock
();
_kk_subDb_unlock
();
...
@@ -130,7 +131,7 @@ static int _kk_check_subDev_exist(const char* device_mac)
...
@@ -130,7 +131,7 @@ static int _kk_check_subDev_exist(const char* device_mac)
sqlite3_prepare_v2
(
ctx
->
pDb
,
searchCmd
,
strlen
(
searchCmd
),
&
stmt
,
NULL
);
sqlite3_prepare_v2
(
ctx
->
pDb
,
searchCmd
,
strlen
(
searchCmd
),
&
stmt
,
NULL
);
INFO_PRINT
(
"total_column = %d
\n
"
,
sqlite3_column_count
(
stmt
));
INFO_PRINT
(
"total_column = %d
\n
"
,
sqlite3_column_count
(
stmt
));
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pmac
=
sqlite3_column_text
(
stmt
,
5
);
pmac
=
sqlite3_column_text
(
stmt
,
4
);
if
(
!
strcmp
(
device_mac
,
pmac
))
if
(
!
strcmp
(
device_mac
,
pmac
))
{
{
isExist
=
1
;
isExist
=
1
;
...
@@ -146,23 +147,23 @@ static int _kk_check_subDev_exist(const char* device_mac)
...
@@ -146,23 +147,23 @@ static int _kk_check_subDev_exist(const char* device_mac)
}
}
int
kk_subDev_insert_db
(
int
isOnline
,
char
product
_type
[
PRODUCT_KEY_MAXLEN
],
char
device_name
[
DEVICE_NAM
E_MAXLEN
],
\
int
kk_subDev_insert_db
(
int
isOnline
,
char
product
Type
[
PRODUCT_TYPE_MAXLEN
],
char
productCode
[
PRODUCT_COD
E_MAXLEN
],
\
char
device
_secret
[
DEVICE_SECRET_MAXLEN
],
char
device_mac
[
DEVICE_MAC
_MAXLEN
])
char
device
Code
[
DEVICE_CODE_MAXLEN
],
char
fatherMac
[
DEVICE_MAC_MAXLEN
],
char
version
[
DEVICE_VERSION
_MAXLEN
])
{
{
const
char
*
insertCmd
=
"insert into SubDeviceInfo (idx,isOnline, product
_type, device_name,device_secret,device_mac) values ('%d','%d', '%s',
'%s','%s','%s');"
;
const
char
*
insertCmd
=
"insert into SubDeviceInfo (idx,isOnline, product
Type,productCode,deviceCode,fatherMac,version) values ('%d','%d', '%s', '%s',
'%s','%s','%s');"
;
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
char
*
zErrMsg
=
0
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
if
(
_kk_check_subDev_exist
((
const
char
*
)
device
_mac
)
==
1
)
if
(
_kk_check_subDev_exist
((
const
char
*
)
device
Code
)
==
1
)
{
{
WARNING_PRINT
(
"[%s][%d] DATA ALREADY EXIST!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
WARNING_PRINT
(
"[%s][%d] DATA ALREADY EXIST!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
_kk_subDb_lock
();
_kk_subDb_lock
();
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
ctx
->
subDevNum
,
isOnline
,
product
_type
,
device_name
,
device_secret
,
device_mac
);
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
ctx
->
subDevNum
,
isOnline
,
product
Type
,
productCode
,
deviceCode
,
fatherMac
,
version
);
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
rc
!=
SQLITE_OK
){
if
(
rc
!=
SQLITE_OK
){
...
@@ -176,16 +177,16 @@ int kk_subDev_insert_db(int isOnline,char product_type[PRODUCT_KEY_MAXLEN],char
...
@@ -176,16 +177,16 @@ int kk_subDev_insert_db(int isOnline,char product_type[PRODUCT_KEY_MAXLEN],char
_kk_subDb_unlock
();
_kk_subDb_unlock
();
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_subDev_delete_byMac
(
char
device
_mac
[
DEVICE_MAC
_MAXLEN
])
int
kk_subDev_delete_byMac
(
char
device
Code
[
DEVICE_CODE
_MAXLEN
])
{
{
const
char
*
deleteCmd
=
"delete from SubDeviceInfo where device
Mac
= %s;"
;
const
char
*
deleteCmd
=
"delete from SubDeviceInfo where device
Code
= %s;"
;
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
char
*
zErrMsg
=
0
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
_kk_subDb_lock
();
_kk_subDb_lock
();
sqlCmd
=
sqlite3_mprintf
(
deleteCmd
,
device
_mac
);
sqlCmd
=
sqlite3_mprintf
(
deleteCmd
,
device
Code
);
INFO_PRINT
(
"Table delete data sqlCmd:%s
\n
"
,
sqlCmd
);
INFO_PRINT
(
"Table delete data sqlCmd:%s
\n
"
,
sqlCmd
);
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
...
...
midware/midware/dm/kk_sub_db.h
View file @
c02ee8a2
...
@@ -4,15 +4,15 @@
...
@@ -4,15 +4,15 @@
typedef
struct
{
typedef
struct
{
int
isOnline
;
int
isOnline
;
int
index
;
int
index
;
char
device_mac
[
DEVICE_MAC
_MAXLEN
];
char
productType
[
PRODUCT_TYPE
_MAXLEN
];
char
product
_id
[
PRODUCT_KEY
_MAXLEN
];
char
product
Code
[
PRODUCT_CODE
_MAXLEN
];
char
device
_sn
[
DEVICE_SN
_MAXLEN
];
char
device
Code
[
DEVICE_CODE
_MAXLEN
];
char
device_id
[
DEVICE_NAME
_MAXLEN
];
char
fatherMac
[
DEVICE_MAC
_MAXLEN
];
}
kk_dm_subdev_t
;
}
kk_dm_subdev_t
;
int
kk_subDb_init
(
void
);
int
kk_subDb_init
(
void
);
int
kk_subDev_insert_db
(
int
isOnline
,
char
device_mac
[
DEVICE_MAC_MAXLEN
],
char
product_Id
[
PRODUCT_KEY
_MAXLEN
],
\
int
kk_subDev_insert_db
(
int
isOnline
,
char
productType
[
PRODUCT_TYPE_MAXLEN
],
char
productCode
[
PRODUCT_CODE
_MAXLEN
],
\
char
device_SN
[
DEVICE_SN_MAXLEN
],
char
device_Id
[
DEVICE_NAME
_MAXLEN
]);
char
deviceCode
[
DEVICE_CODE_MAXLEN
],
char
fatherMac
[
DEVICE_MAC_MAXLEN
],
char
version
[
DEVICE_VERSION
_MAXLEN
]);
int
kk_subDev_delete_byMac
(
char
device_mac
[
DEVICE_MAC_MAXLEN
]);
int
kk_subDev_delete_byMac
(
char
device_mac
[
DEVICE_MAC_MAXLEN
]);
int
kk_subDev_update_online
(
int
isOnline
,
const
char
*
device_mac
);
int
kk_subDev_update_online
(
int
isOnline
,
const
char
*
device_mac
);
...
...
midware/midware/dm/kk_wlist_mng.c
View file @
c02ee8a2
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
typedef
struct
{
typedef
struct
{
void
*
mutex
;
void
*
mutex
;
int
isOpened
;
int
isOpened
;
int
isInited
;
int
wlistNum
;
int
wlistNum
;
sqlite3
*
pDb
;
sqlite3
*
pDb
;
}
kk_wlist_ctx_t
;
}
kk_wlist_ctx_t
;
...
@@ -102,8 +103,8 @@ static int _kk_check_exist(const char* device_mac)
...
@@ -102,8 +103,8 @@ static int _kk_check_exist(const char* device_mac)
}
}
static
int
kk_wlist_insert_db
(
int
index
,
char
device_mac
[
DEVICE_MAC_MAXLEN
],
char
product_Id
[
PRODUCT_
KEY
_MAXLEN
],
\
static
int
kk_wlist_insert_db
(
int
index
,
char
device_mac
[
DEVICE_MAC_MAXLEN
],
char
product_Id
[
PRODUCT_
CODE
_MAXLEN
],
\
char
device_SN
[
DEVICE_SN_MAXLEN
],
char
device_Id
[
DEVICE_
NAM
E_MAXLEN
])
char
device_SN
[
DEVICE_SN_MAXLEN
],
char
device_Id
[
DEVICE_
COD
E_MAXLEN
])
{
{
const
char
*
insertCmd
=
"insert into WhiteList (idx, deviceMac, productId,deviceSN,deviceId) values ('%d', '%s', '%s','%s','%s');"
;
const
char
*
insertCmd
=
"insert into WhiteList (idx, deviceMac, productId,deviceSN,deviceId) values ('%d', '%s', '%s','%s','%s');"
;
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
...
@@ -155,12 +156,20 @@ int kk_wlist_status_open(int isOpen)
...
@@ -155,12 +156,20 @@ int kk_wlist_status_open(int isOpen)
{
{
int
res
=
0
;
int
res
=
0
;
kk_wlist_ctx_t
*
ctx
=
_kk_wlist_get_ctx
();
kk_wlist_ctx_t
*
ctx
=
_kk_wlist_get_ctx
();
if
(
ctx
->
isOpened
)
{
printf
(
"[%s][%d] ALREADY OPENED
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
return
SUCCESS_RETURN
;
}
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
0
,
KK_TSL_GATAWAY_WHITELIST_IDENTIFIER
,
&
isOpen
,
NULL
);
res
=
kk_tsl_set_value
(
kk_tsl_set_property_value
,
0
,
KK_TSL_GATAWAY_WHITELIST_IDENTIFIER
,
&
isOpen
,
NULL
);
if
(
res
!=
SUCCESS_RETURN
){
if
(
res
!=
SUCCESS_RETURN
){
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
ERROR_PRINT
(
"[%s][%d] res:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
res
);
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
ctx
->
isOpened
=
1
;
ctx
->
isOpened
=
isOpen
;
if
(
ctx
->
isOpened
){
kk_wlist_init
();
}
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_load_wlist
(
void
)
int
kk_load_wlist
(
void
)
...
@@ -195,6 +204,10 @@ int kk_wlist_init(void)
...
@@ -195,6 +204,10 @@ int kk_wlist_init(void)
int
res
=
0
;
int
res
=
0
;
kk_wlist_ctx_t
*
ctx
=
_kk_wlist_get_ctx
();
kk_wlist_ctx_t
*
ctx
=
_kk_wlist_get_ctx
();
if
(
ctx
->
isInited
)
{
return
SUCCESS_RETURN
;
}
/* Create Mutex */
/* Create Mutex */
ctx
->
mutex
=
HAL_MutexCreate
();
ctx
->
mutex
=
HAL_MutexCreate
();
if
(
ctx
->
mutex
==
NULL
)
{
if
(
ctx
->
mutex
==
NULL
)
{
...
@@ -207,6 +220,7 @@ int kk_wlist_init(void)
...
@@ -207,6 +220,7 @@ int kk_wlist_init(void)
}
}
kk_load_wlist
();
kk_load_wlist
();
ctx
->
isInited
=
1
;
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_set_wlist_byIdx
(
int
idx
,
kk_wlist_dev_t
*
wlist_dev
)
int
kk_set_wlist_byIdx
(
int
idx
,
kk_wlist_dev_t
*
wlist_dev
)
...
...
midware/midware/dm/kk_wlist_mng.h
View file @
c02ee8a2
...
@@ -4,9 +4,9 @@
...
@@ -4,9 +4,9 @@
typedef
struct
{
typedef
struct
{
char
device_mac
[
DEVICE_MAC_MAXLEN
];
char
device_mac
[
DEVICE_MAC_MAXLEN
];
char
product_id
[
PRODUCT_
KEY
_MAXLEN
];
char
product_id
[
PRODUCT_
TYPE
_MAXLEN
];
char
device_sn
[
DEVICE_SN_MAXLEN
];
char
device_sn
[
DEVICE_SN_MAXLEN
];
char
device_id
[
DEVICE_
NAM
E_MAXLEN
];
char
device_id
[
DEVICE_
COD
E_MAXLEN
];
int
index
;
int
index
;
}
kk_wlist_dev_t
;
}
kk_wlist_dev_t
;
int
kk_wlist_init
(
void
);
int
kk_wlist_init
(
void
);
...
...
midware/midware/midware.c
View file @
c02ee8a2
...
@@ -45,7 +45,7 @@ void mid_cb(void* data, int len){
...
@@ -45,7 +45,7 @@ void mid_cb(void* data, int len){
info_root
=
cJSON_GetObjectItem
(
json
,
MSG_INFO_STR
);
info_root
=
cJSON_GetObjectItem
(
json
,
MSG_INFO_STR
);
info
=
cJSON_Parse
(
info_root
->
valuestring
);
info
=
cJSON_Parse
(
info_root
->
valuestring
);
product_type
=
cJSON_GetObjectItem
(
info
,
MSG_PRODUCT_TYPE_STR
);
product_type
=
cJSON_GetObjectItem
(
info
,
MSG_PRODUCT_TYPE_STR
);
device_name
=
cJSON_GetObjectItem
(
info
,
MSG_DEVICE_
NAM
E_STR
);
device_name
=
cJSON_GetObjectItem
(
info
,
MSG_DEVICE_
COD
E_STR
);
type
=
cJSON_GetObjectItem
(
info
,
MSG_TYPE_STR
);
type
=
cJSON_GetObjectItem
(
info
,
MSG_TYPE_STR
);
switch
(
atoi
(
type
->
valuestring
))
switch
(
atoi
(
type
->
valuestring
))
{
{
...
@@ -109,6 +109,7 @@ void kk_platMsg_handle(void* data){
...
@@ -109,6 +109,7 @@ void kk_platMsg_handle(void* data){
cJSON
*
jsonPay
;
cJSON
*
jsonPay
;
cJSON
*
proType
;
cJSON
*
proType
;
cJSON
*
proCode
;
cJSON
*
proCode
;
cJSON
*
devCode
;
cJSON
*
mac
;
cJSON
*
mac
;
json
=
cJSON_Parse
(
data
);
json
=
cJSON_Parse
(
data
);
...
@@ -123,9 +124,9 @@ void kk_platMsg_handle(void* data){
...
@@ -123,9 +124,9 @@ void kk_platMsg_handle(void* data){
jsonPay
=
cJSON_GetObjectItem
(
json
,
"params"
);
jsonPay
=
cJSON_GetObjectItem
(
json
,
"params"
);
proType
=
cJSON_GetObjectItem
(
jsonPay
,
"productType"
);
proType
=
cJSON_GetObjectItem
(
jsonPay
,
"productType"
);
proCode
=
cJSON_GetObjectItem
(
jsonPay
,
"productCode"
);
proCode
=
cJSON_GetObjectItem
(
jsonPay
,
"productCode"
);
devCode
=
cJSON_GetObjectItem
(
jsonPay
,
"deviceCode"
);
INFO_PRINT
(
"productType productCode mac: [%s][%s] [%s]
\n
"
,
proType
->
valuestring
,
proCode
->
valuestring
,
mac
->
valuestring
);
INFO_PRINT
(
"productType productCode mac: [%s][%s] [%s]
\n
"
,
proType
->
valuestring
,
proCode
->
valuestring
,
mac
->
valuestring
);
kk_mid_subdev_add
(
proType
->
valuestring
,
proCode
->
valuestring
,
""
,
mac
->
valuestring
);
kk_mid_subdev_add
(
proType
->
valuestring
,
proCode
->
valuestring
,
devCode
->
valuestring
,
mac
->
valuestring
);
}
else
if
(
method
!=
NULL
&&
mac
!=
NULL
){
}
else
if
(
method
!=
NULL
&&
mac
!=
NULL
){
INFO_PRINT
(
"save property and send to cloud
\n
"
);
INFO_PRINT
(
"save property and send to cloud
\n
"
);
...
@@ -276,7 +277,7 @@ int main(const int argc, const char **argv)
...
@@ -276,7 +277,7 @@ int main(const int argc, const char **argv)
kk_platMsg_dispatch
();
kk_platMsg_dispatch
();
/*if (ct == 0){
/*if (ct == 0){
ct =1;
ct =1;
void* buf = "{ \"msgId\": \"7\", \"version\": \"1.0\", \"mac\": \"588E81FFFED3834A\", \"method\": \"thing.topo.add\", \"params\": { \"AppVersion\": \"10\", \"device
Type\": \"1\", \"deviceCode\": \"2\", \"productType\": \"3\", \"productCode\": \"
4\" }}";
void* buf = "{ \"msgId\": \"7\", \"version\": \"1.0\", \"mac\": \"588E81FFFED3834A\", \"method\": \"thing.topo.add\", \"params\": { \"AppVersion\": \"10\", \"device
Code\": \"1212121212121212\", \"productType\": \"curtain\", \"productCode\": \"2
4\" }}";
kk_platMsg_handle(buf);
kk_platMsg_handle(buf);
//kk_set_tsl_by_productKey("a1OYuSallan","model.json");
//kk_set_tsl_by_productKey("a1OYuSallan","model.json");
//kk_mid_subdev_add("a1OYuSallan","allanWno8yDdsjCX15iq","","aabbccddeeff1122");
//kk_mid_subdev_add("a1OYuSallan","allanWno8yDdsjCX15iq","","aabbccddeeff1122");
...
...
midware/midware/utils/infra_defs.h
View file @
c02ee8a2
...
@@ -298,14 +298,14 @@ typedef enum IOT_RETURN_CODES {
...
@@ -298,14 +298,14 @@ typedef enum IOT_RETURN_CODES {
}
iotx_err_t
;
}
iotx_err_t
;
#endif
#endif
#if 0
typedef struct _iotx_dev_meta_info {
typedef struct _iotx_dev_meta_info {
char product_key[IOTX_PRODUCT_KEY_LEN + 1];
char product_key[IOTX_PRODUCT_KEY_LEN + 1];
char product_secret[IOTX_PRODUCT_SECRET_LEN + 1];
char product_secret[IOTX_PRODUCT_SECRET_LEN + 1];
char device_name[IOTX_DEVICE_NAME_LEN + 1];
char device_name[IOTX_DEVICE_NAME_LEN + 1];
char device_secret[IOTX_DEVICE_SECRET_LEN + 1];
char device_secret[IOTX_DEVICE_SECRET_LEN + 1];
} iotx_dev_meta_info_t;
} iotx_dev_meta_info_t;
#endif
typedef
struct
{
typedef
struct
{
const
char
*
region
;
const
char
*
region
;
uint16_t
port
;
uint16_t
port
;
...
...
midware/tsl/tsl_handle/kk_tsl_api.c
View file @
c02ee8a2
...
@@ -1207,12 +1207,12 @@ int kk_tsl_set_value(kk_tsl_set_t set, int devId, const char *identifier,
...
@@ -1207,12 +1207,12 @@ int kk_tsl_set_value(kk_tsl_set_t set, int devId, const char *identifier,
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_msg_uri_parse_pkdn
(
_IN_
char
*
uri
,
_IN_
int
uri_len
,
_IN_
int
start_deli
,
_IN_
int
end_deli
,
int
kk_msg_uri_parse_pkdn
(
_IN_
char
*
uri
,
_IN_
int
uri_len
,
_IN_
int
start_deli
,
_IN_
int
end_deli
,
_OU_
char
product
_key
[
PRODUCT_KEY_MAXLEN
],
_OU_
char
device_name
[
DEVICE_NAM
E_MAXLEN
])
_OU_
char
product
Type
[
PRODUCT_TYPE_MAXLEN
],
_OU_
char
deviceCode
[
DEVICE_COD
E_MAXLEN
])
{
{
int
res
=
0
,
start
=
0
,
end
=
0
,
slice
=
0
;
int
res
=
0
,
start
=
0
,
end
=
0
,
slice
=
0
;
if
(
uri
==
NULL
||
uri_len
<=
0
||
product
_key
==
NULL
||
device_nam
e
==
NULL
||
if
(
uri
==
NULL
||
uri_len
<=
0
||
product
Type
==
NULL
||
deviceCod
e
==
NULL
||
(
strlen
(
product
_key
)
>=
PRODUCT_KEY_MAXLEN
)
||
(
strlen
(
device_name
)
>=
DEVICE_NAM
E_MAXLEN
))
{
(
strlen
(
product
Type
)
>=
PRODUCT_TYPE_MAXLEN
)
||
(
strlen
(
deviceCode
)
>=
DEVICE_COD
E_MAXLEN
))
{
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
}
}
...
@@ -1234,8 +1234,8 @@ int kk_msg_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli,
...
@@ -1234,8 +1234,8 @@ int kk_msg_uri_parse_pkdn(_IN_ char *uri, _IN_ int uri_len, _IN_ int start_deli,
/* dm_log_debug("URI Product Key: %.*s, Device Name: %.*s", slice - start - 1, uri + start + 1, end - slice - 1,
/* dm_log_debug("URI Product Key: %.*s, Device Name: %.*s", slice - start - 1, uri + start + 1, end - slice - 1,
uri + slice + 1); */
uri + slice + 1); */
memcpy
(
product
_key
,
uri
+
start
+
1
,
slice
-
start
-
1
);
memcpy
(
product
Type
,
uri
+
start
+
1
,
slice
-
start
-
1
);
memcpy
(
device
_nam
e
,
uri
+
slice
+
1
,
end
-
slice
-
1
);
memcpy
(
device
Cod
e
,
uri
+
slice
+
1
,
end
-
slice
-
1
);
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
@@ -1287,8 +1287,8 @@ int kk_tsl_service_property_set(const char *topic, const char *payload, unsigned
...
@@ -1287,8 +1287,8 @@ int kk_tsl_service_property_set(const char *topic, const char *payload, unsigned
int
res
=
0
,
devid
=
0
;
int
res
=
0
,
devid
=
0
;
char
product
_key
[
PRODUCT_KEY
_MAXLEN
]
=
{
0
};
char
product
Type
[
PRODUCT_TYPE
_MAXLEN
]
=
{
0
};
char
device
_name
[
DEVICE_NAM
E_MAXLEN
]
=
{
0
};
char
device
Code
[
DEVICE_COD
E_MAXLEN
]
=
{
0
};
memset
(
&
request
,
0
,
sizeof
(
kk_msg_request_payload_t
));
memset
(
&
request
,
0
,
sizeof
(
kk_msg_request_payload_t
));
...
@@ -1300,11 +1300,11 @@ int kk_tsl_service_property_set(const char *topic, const char *payload, unsigned
...
@@ -1300,11 +1300,11 @@ int kk_tsl_service_property_set(const char *topic, const char *payload, unsigned
/* Request */
/* Request */
/* Request */
/* Request */
res
=
kk_msg_uri_parse_pkdn
((
char
*
)
topic
,
strlen
(
topic
),
2
+
KK_URI_OFFSET
,
4
+
KK_URI_OFFSET
,
product
_key
,
res
=
kk_msg_uri_parse_pkdn
((
char
*
)
topic
,
strlen
(
topic
),
2
+
KK_URI_OFFSET
,
4
+
KK_URI_OFFSET
,
product
Type
,
device
_nam
e
);
device
Cod
e
);
res
=
dm_mgr_search_device_by_pkdn
(
product
_key
,
device_nam
e
,
&
devid
);
res
=
dm_mgr_search_device_by_pkdn
(
product
Type
,
deviceCod
e
,
&
devid
);
if
(
res
<
SUCCESS_RETURN
)
{
if
(
res
<
SUCCESS_RETURN
)
{
return
res
;
return
res
;
}
}
...
...
midware/tsl/tsl_handle/kk_tsl_api.h
View file @
c02ee8a2
...
@@ -78,7 +78,7 @@ extern int kk_tsl_get_value(kk_tsl_get_t method_get, int devId, const char *iden
...
@@ -78,7 +78,7 @@ extern int kk_tsl_get_value(kk_tsl_get_t method_get, int devId, const char *iden
char
**
value_str
);
char
**
value_str
);
extern
int
kk_msg_uri_parse_pkdn
(
_IN_
char
*
uri
,
_IN_
int
uri_len
,
_IN_
int
start_deli
,
_IN_
int
end_deli
,
\
extern
int
kk_msg_uri_parse_pkdn
(
_IN_
char
*
uri
,
_IN_
int
uri_len
,
_IN_
int
start_deli
,
_IN_
int
end_deli
,
\
_OU_
char
product
_key
[
PRODUCT_KEY_MAXLEN
],
_OU_
char
device_name
[
DEVICE_NAM
E_MAXLEN
]);
_OU_
char
product
Type
[
PRODUCT_TYPE_MAXLEN
],
_OU_
char
deviceCode
[
DEVICE_COD
E_MAXLEN
]);
extern
int
kk_tsl_service_property_set
(
const
char
*
topic
,
const
char
*
payload
,
unsigned
int
payload_len
,
extern
int
kk_tsl_service_property_set
(
const
char
*
topic
,
const
char
*
payload
,
unsigned
int
payload_len
,
void
*
context
);
void
*
context
);
extern
int
kk_tsl_post_property
(
int
devId
,
const
char
*
property_identifier
);
extern
int
kk_tsl_post_property
(
int
devId
,
const
char
*
property_identifier
);
...
...
midware/tsl/tsl_handle/kk_tsl_common.h
View file @
c02ee8a2
...
@@ -12,11 +12,13 @@
...
@@ -12,11 +12,13 @@
#define _OU_
#define _OU_
#endif
#endif
#define PRODUCT_KEY_MAXLEN (32 + 1)
#define PRODUCT_TYPE_MAXLEN (32 + 1)
#define DEVICE_NAME_MAXLEN (32 + 1)
#define PRODUCT_CODE_MAXLEN (32 + 1)
#define DEVICE_SECRET_MAXLEN (64 + 1)
#define DEVICE_CODE_MAXLEN (32 + 1)
#define DEVICE_MAC_MAXLEN (16 + 1)
#define DEVICE_MAC_MAXLEN (16 + 1)
#define DEVICE_SN_MAXLEN (32 + 1)
#define DEVICE_SN_MAXLEN (32 + 1)
#define DEVICE_VERSION_MAXLEN (32 + 1)
#define DM_UTILS_UINT16_STRLEN (5)
#define DM_UTILS_UINT16_STRLEN (5)
#define DM_UTILS_UINT32_STRLEN (10)
#define DM_UTILS_UINT32_STRLEN (10)
...
...
midware/tsl/tsl_handle/kk_tsl_load.c
View file @
c02ee8a2
...
@@ -2,11 +2,15 @@
...
@@ -2,11 +2,15 @@
#include <string.h>
#include <string.h>
#include <stdio.h>
#include <stdio.h>
#include "kk_tsl_common.h"
#include "kk_tsl_common.h"
#include "kk_dm_mng.h"
#include "kk_log.h"
#include "kk_log.h"
#define TSL_PATH_FILE "/home/tsl/%s.json"
#define TSL_SUBDEVICE_PATH_FILE "/home/tsl/product_%s.json"
char
*
kk_load_json
(
const
char
*
product_type
)
#define TSL_GATEWAY_PATH_FILE "/home/tsl/gateway-%s.json"
#define TSL_CCU_PATH_FILE "/home/tsl/ccu-%s.json"
char
*
kk_load_json
(
const
char
*
productCode
,
int
type
)
{
{
FILE
*
fp
;
FILE
*
fp
;
char
*
buf
=
NULL
;
char
*
buf
=
NULL
;
...
@@ -14,13 +18,33 @@ char* kk_load_json(const char *product_type)
...
@@ -14,13 +18,33 @@ char* kk_load_json(const char *product_type)
int
path_len
=
0
;
int
path_len
=
0
;
unsigned
int
filesize
;
unsigned
int
filesize
;
path_len
=
strlen
(
TSL_PATH_FILE
)
+
strlen
(
product_type
)
+
1
;
if
(
type
==
KK_DM_DEVICE_CCU
){
path_len
=
strlen
(
TSL_CCU_PATH_FILE
)
+
strlen
(
productCode
)
+
1
;
}
else
if
(
type
==
KK_DM_DEVICE_GATEWAY
){
path_len
=
strlen
(
TSL_GATEWAY_PATH_FILE
)
+
strlen
(
productCode
)
+
1
;
}
else
{
path_len
=
strlen
(
TSL_SUBDEVICE_PATH_FILE
)
+
strlen
(
productCode
)
+
1
;
}
tslPath
=
malloc
(
path_len
);
tslPath
=
malloc
(
path_len
);
if
(
tslPath
==
NULL
){
if
(
tslPath
==
NULL
){
return
NULL
;
return
NULL
;
}
}
memset
(
tslPath
,
0x0
,
path_len
);
memset
(
tslPath
,
0x0
,
path_len
);
snprintf
(
tslPath
,
path_len
,
TSL_PATH_FILE
,
product_type
);
if
(
type
==
KK_DM_DEVICE_CCU
){
snprintf
(
tslPath
,
path_len
,
TSL_CCU_PATH_FILE
,
productCode
);
}
else
if
(
type
==
KK_DM_DEVICE_GATEWAY
){
snprintf
(
tslPath
,
path_len
,
TSL_GATEWAY_PATH_FILE
,
productCode
);
}
else
{
snprintf
(
tslPath
,
path_len
,
TSL_SUBDEVICE_PATH_FILE
,
productCode
);
}
INFO_PRINT
(
"
\n
[%s][%d]tslPath:%s!!!
\n
"
,
__FUNCTION__
,
__LINE__
,
tslPath
);
INFO_PRINT
(
"
\n
[%s][%d]tslPath:%s!!!
\n
"
,
__FUNCTION__
,
__LINE__
,
tslPath
);
if
(
!
(
fp
=
fopen
(
tslPath
,
"a+"
)))
if
(
!
(
fp
=
fopen
(
tslPath
,
"a+"
)))
{
{
...
...
midware/tsl/tsl_handle/kk_tsl_load.h
View file @
c02ee8a2
#ifndef __TSL_DATA_LOAD__
#ifndef __TSL_DATA_LOAD__
#define __TSL_DATA_LOAD__
#define __TSL_DATA_LOAD__
char
*
kk_load_json
(
const
char
*
product_type
);
char
*
kk_load_json
(
const
char
*
productCode
,
int
type
);
#endif
#endif
midware/tsl/tsl_handle/kk_utils.c
View file @
c02ee8a2
...
@@ -188,18 +188,18 @@ void kk_MutexDestroy(void *mutex)
...
@@ -188,18 +188,18 @@ void kk_MutexDestroy(void *mutex)
free
(
mutex
);
free
(
mutex
);
}
}
int
kk_utils_service_name
(
_IN_
const
char
*
prefix
,
_IN_
const
char
*
name
,
_IN_
char
product
_key
[
PRODUCT_KEY
_MAXLEN
],
int
kk_utils_service_name
(
_IN_
const
char
*
prefix
,
_IN_
const
char
*
name
,
_IN_
char
product
Type
[
PRODUCT_TYPE
_MAXLEN
],
_IN_
char
device
_name
[
DEVICE_NAM
E_MAXLEN
],
_OU_
char
**
service_name
)
_IN_
char
device
Code
[
DEVICE_COD
E_MAXLEN
],
_OU_
char
**
service_name
)
{
{
int
prefix_len
=
(
prefix
==
NULL
)
?
(
0
)
:
(
strlen
(
prefix
));
int
prefix_len
=
(
prefix
==
NULL
)
?
(
0
)
:
(
strlen
(
prefix
));
int
name_len
=
(
name
==
NULL
)
?
(
0
)
:
(
strlen
(
name
));
int
name_len
=
(
name
==
NULL
)
?
(
0
)
:
(
strlen
(
name
));
int
service_name_len
=
0
;
int
service_name_len
=
0
;
if
((
prefix
==
NULL
&&
name
==
NULL
)
||
product
_key
==
NULL
||
device_nam
e
==
NULL
||
if
((
prefix
==
NULL
&&
name
==
NULL
)
||
product
Type
==
NULL
||
deviceCod
e
==
NULL
||
service_name
==
NULL
||
*
service_name
!=
NULL
)
{
service_name
==
NULL
||
*
service_name
!=
NULL
)
{
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
}
}
service_name_len
=
prefix_len
+
name_len
+
strlen
(
product
_key
)
+
strlen
(
device_nam
e
)
+
1
;
service_name_len
=
prefix_len
+
name_len
+
strlen
(
product
Type
)
+
strlen
(
deviceCod
e
)
+
1
;
*
service_name
=
malloc
(
service_name_len
);
*
service_name
=
malloc
(
service_name_len
);
if
(
*
service_name
==
NULL
)
{
if
(
*
service_name
==
NULL
)
{
return
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
...
@@ -207,7 +207,7 @@ int kk_utils_service_name(_IN_ const char *prefix, _IN_ const char *name, _IN_ c
...
@@ -207,7 +207,7 @@ int kk_utils_service_name(_IN_ const char *prefix, _IN_ const char *name, _IN_ c
memset
(
*
service_name
,
0
,
service_name_len
);
memset
(
*
service_name
,
0
,
service_name_len
);
if
(
prefix
!=
NULL
)
{
if
(
prefix
!=
NULL
)
{
snprintf
(
*
service_name
,
service_name_len
,
prefix
,
product
_key
,
device_nam
e
);
snprintf
(
*
service_name
,
service_name_len
,
prefix
,
product
Type
,
deviceCod
e
);
}
}
if
(
name
!=
NULL
)
{
if
(
name
!=
NULL
)
{
...
...
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