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
a3d22f20
Commit
a3d22f20
authored
Aug 05, 2020
by
whmaizmy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【修改内容】1,增加kk_tsl_get_value接口;2,调整tsl文件load;3,上传mqtt测试服务器的url,name,PASSWORD
【提交人】陈伟灿
parent
97a82e1a
Changes
13
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
736 additions
and
25 deletions
+736
-25
application/kcloud/kcloud_config.h
application/kcloud/kcloud_config.h
+3
-3
application/kcloud/kcloud_data_handle.c
application/kcloud/kcloud_data_handle.c
+2
-2
application/kcloud/mqtt_api.c
application/kcloud/mqtt_api.c
+1
-1
midware/midware/dm/kk_dm_mng.c
midware/midware/dm/kk_dm_mng.c
+11
-11
midware/midware/dm/kk_dm_msg.c
midware/midware/dm/kk_dm_msg.c
+1
-0
midware/midware/dm/kk_dm_msg.h
midware/midware/dm/kk_dm_msg.h
+1
-0
midware/tsl/tsl_handle/kk_tsl_api.c
midware/tsl/tsl_handle/kk_tsl_api.c
+503
-1
midware/tsl/tsl_handle/kk_tsl_api.h
midware/tsl/tsl_handle/kk_tsl_api.h
+11
-0
midware/tsl/tsl_handle/kk_tsl_func.c
midware/tsl/tsl_handle/kk_tsl_func.c
+146
-0
midware/tsl/tsl_handle/kk_tsl_load.c
midware/tsl/tsl_handle/kk_tsl_load.c
+6
-5
midware/tsl/tsl_handle/kk_tsl_load.h
midware/tsl/tsl_handle/kk_tsl_load.h
+2
-2
midware/tsl/tsl_handle/kk_utils.c
midware/tsl/tsl_handle/kk_utils.c
+47
-0
midware/tsl/tsl_handle/kk_utils.h
midware/tsl/tsl_handle/kk_utils.h
+2
-0
No files found.
application/kcloud/kcloud_config.h
View file @
a3d22f20
...
@@ -2,15 +2,15 @@
...
@@ -2,15 +2,15 @@
#ifndef MQTT_CONF_H_
#ifndef MQTT_CONF_H_
#define MQTT_CONF_H_
#define MQTT_CONF_H_
#define ADDRESS "tcp://1
06.13.117.117:18
83"
#define ADDRESS "tcp://1
72.25.240.31:19
83"
#define CLIENTID "1234"
#define CLIENTID "1234"
#define TOPIC "/sys/a1OYuSBt23u/aIqEbWno8yDdsjCX15iq/thing/service/property/set"
#define TOPIC "/sys/a1OYuSBt23u/aIqEbWno8yDdsjCX15iq/thing/service/property/set"
#define PAYLOAD "Hello cwc World!"
#define PAYLOAD "Hello cwc World!"
#define QOS 2
#define QOS 2
#define TIMEOUT 10000L
#define TIMEOUT 10000L
#define USRNAME ""
#define USRNAME "
hangzhou_gateway
"
#define PASSWORD ""
#define PASSWORD "
2ca1442865ff4cb99870f60f2c646190
"
#define AUTO_CONN 1
#define AUTO_CONN 1
#define CONNECT_TIMEOUT 3
#define CONNECT_TIMEOUT 3
#endif
#endif
...
...
application/kcloud/kcloud_data_handle.c
View file @
a3d22f20
...
@@ -5,7 +5,7 @@
...
@@ -5,7 +5,7 @@
#include "com_api.h"
#include "com_api.h"
#include "cJSON.h"
#include "cJSON.h"
static
char
*
data_create
(
const
char
*
topic
,
const
char
*
data
)
static
char
*
_kk_
data_create
(
const
char
*
topic
,
const
char
*
data
)
{
{
cJSON
*
root
;
cJSON
*
root
;
char
*
out
;
char
*
out
;
...
@@ -46,7 +46,7 @@ void KK_Sendto_CloudData(void *data,int len)
...
@@ -46,7 +46,7 @@ void KK_Sendto_CloudData(void *data,int len)
void
KK_Sendto_DevData
(
const
char
*
topic
,
const
char
*
data
)
void
KK_Sendto_DevData
(
const
char
*
topic
,
const
char
*
data
)
{
{
char
*
send_data
=
data_create
(
topic
,
data
);
char
*
send_data
=
_kk_
data_create
(
topic
,
data
);
kk_ipc_send
(
IPC_APP2MID
,
send_data
,
strlen
(
send_data
)
+
1
);
kk_ipc_send
(
IPC_APP2MID
,
send_data
,
strlen
(
send_data
)
+
1
);
}
}
application/kcloud/mqtt_api.c
View file @
a3d22f20
...
@@ -118,7 +118,7 @@ static void mqttTraceCallback(enum MQTTASYNC_TRACE_LEVELS level, char *message)
...
@@ -118,7 +118,7 @@ static void mqttTraceCallback(enum MQTTASYNC_TRACE_LEVELS level, char *message)
}
}
static
void
onDeliveryComplete
(
void
*
context
,
MQTTAsync_token
token
)
static
void
onDeliveryComplete
(
void
*
context
,
MQTTAsync_token
token
)
{
{
INFO_PRINT
(
"onDeliveryComplete,token:%d
\n
"
,
token
);
//
INFO_PRINT("onDeliveryComplete,token:%d \n",token);
}
}
static
void
onConnectBuild
(
void
*
context
,
char
*
cause
)
static
void
onConnectBuild
(
void
*
context
,
char
*
cause
)
{
{
...
...
midware/midware/dm/kk_dm_mng.c
View file @
a3d22f20
...
@@ -83,6 +83,7 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA
...
@@ -83,6 +83,7 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA
dm_mgr_dev_node_t
*
node
=
NULL
;
dm_mgr_dev_node_t
*
node
=
NULL
;
char
*
tsl_str
=
NULL
;
char
*
tsl_str
=
NULL
;
int
idx
=
0
;
int
idx
=
0
;
char
name
[
TSL_PATH_MAXLEN
]
=
{
0
};
if
(
product_key
==
NULL
||
device_name
==
NULL
||
if
(
product_key
==
NULL
||
device_name
==
NULL
||
strlen
(
product_key
)
>=
PRODUCT_KEY_MAXLEN
||
strlen
(
product_key
)
>=
PRODUCT_KEY_MAXLEN
||
strlen
(
device_name
)
>=
DEVICE_NAME_MAXLEN
)
{
strlen
(
device_name
)
>=
DEVICE_NAME_MAXLEN
)
{
...
@@ -119,16 +120,15 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA
...
@@ -119,16 +120,15 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA
memcpy
(
node
->
device_secret
,
device_secret
,
strlen
(
device_secret
));
memcpy
(
node
->
device_secret
,
device_secret
,
strlen
(
device_secret
));
}
}
//node->dev_status = IOTX_DM_DEV_STATUS_AUTHORIZED;
//node->dev_status = IOTX_DM_DEV_STATUS_AUTHORIZED;
idx
=
kk_get_tslIdx_by_productKey
(
product_key
);
memset
(
name
,
0x0
,
sizeof
(
name
));
if
(
dev_type
==
KK_DM_DEVICE_SUBDEV
){
kk_get_tsl_by_productKey
(
product_key
,
name
);
tsl_str
=
load_json
(
idx
);
tsl_str
=
kk_load_json
(
name
);
res
=
kk_tsl_create
(
tsl_str
,
strlen
(
tsl_str
),
&
node
->
dev_shadow
);
res
=
kk_tsl_create
(
tsl_str
,
strlen
(
tsl_str
),
&
node
->
dev_shadow
);
free
(
tsl_str
);
free
(
tsl_str
);
if
(
res
!=
0
)
if
(
res
!=
0
){
{
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
}
INIT_LIST_HEAD
(
&
node
->
linked_list
);
INIT_LIST_HEAD
(
&
node
->
linked_list
);
list_add_tail
(
&
node
->
linked_list
,
&
ctx
->
dev_list
);
list_add_tail
(
&
node
->
linked_list
,
&
ctx
->
dev_list
);
...
@@ -188,7 +188,7 @@ int dm_mgr_init(void)
...
@@ -188,7 +188,7 @@ int dm_mgr_init(void)
memset
(
device_name
,
0x0
,
sizeof
(
device_name
));
memset
(
device_name
,
0x0
,
sizeof
(
device_name
));
memcpy
(
product_key
,
"a1OYuSBt23u"
,
strlen
(
"a1OYuSBt23u"
));
memcpy
(
product_key
,
"a1OYuSBt23u"
,
strlen
(
"a1OYuSBt23u"
));
memcpy
(
device_name
,
"aIqEbWno8yDdsjCX15iq"
,
strlen
(
"aIqEbWno8yDdsjCX15iq"
));
memcpy
(
device_name
,
"aIqEbWno8yDdsjCX15iq"
,
strlen
(
"aIqEbWno8yDdsjCX15iq"
));
kk_set_tsl_by_productKey
(
"a1OYuSBt23u"
,
"
model
.json"
);
kk_set_tsl_by_productKey
(
"a1OYuSBt23u"
,
"
ccu
.json"
);
//_dm_mgr_legacy_thing_created(IOTX_DM_LOCAL_NODE_DEVID);
//_dm_mgr_legacy_thing_created(IOTX_DM_LOCAL_NODE_DEVID);
res
=
dm_mgr_device_create
(
KK_DM_DEVICE_SUBDEV
,
product_key
,
device_name
,
device_secret
,
&
devId
);
res
=
dm_mgr_device_create
(
KK_DM_DEVICE_SUBDEV
,
product_key
,
device_name
,
device_secret
,
&
devId
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
...
@@ -245,7 +245,7 @@ int dm_mgr_upstream_thing_property_post(_IN_ int devid, _IN_ char *payload, _IN_
...
@@ -245,7 +245,7 @@ int dm_mgr_upstream_thing_property_post(_IN_ int devid, _IN_ char *payload, _IN_
memset
(
&
request
,
0
,
sizeof
(
dm_msg_request_t
));
memset
(
&
request
,
0
,
sizeof
(
dm_msg_request_t
));
res
=
_dm_mgr_upstream_request_assemble
(
iotx_report_id
(),
devid
,
DM_URI_SYS_PREFIX
,
DM_URI_THING_EVENT_PROPERTY_POST
,
res
=
_dm_mgr_upstream_request_assemble
(
iotx_report_id
(),
devid
,
DM_URI_SYS_PREFIX
,
DM_URI_THING_EVENT_PROPERTY_POST
,
payload
,
payload_len
,
"thing.event.property.post"
,
&
request
);
payload
,
payload_len
,
DM_URI_THING_EVENT_PROPERTY_POST_METHOD
,
&
request
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
...
...
midware/midware/dm/kk_dm_msg.c
View file @
a3d22f20
...
@@ -12,6 +12,7 @@ const char DM_URI_THING_EVENT_PROPERTY_POST[] DM_READ_ONLY = "thing/event/pro
...
@@ -12,6 +12,7 @@ const char DM_URI_THING_EVENT_PROPERTY_POST[] DM_READ_ONLY = "thing/event/pro
const
char
DM_URI_THING_SERVICE_PROPERTY_SET_REPLY
[]
DM_READ_ONLY
=
"thing/service/property/set_reply"
;
const
char
DM_URI_THING_SERVICE_PROPERTY_SET_REPLY
[]
DM_READ_ONLY
=
"thing/service/property/set_reply"
;
const
char
DM_URI_THING_EVENT_POST
[]
DM_READ_ONLY
=
"thing/event/%.*s/post"
;
const
char
DM_URI_THING_EVENT_POST
[]
DM_READ_ONLY
=
"thing/event/%.*s/post"
;
const
char
DM_URI_THING_SERVICE_RESPONSE
[]
DM_READ_ONLY
=
"thing/service/%.*s_reply"
;
const
char
DM_URI_THING_SERVICE_RESPONSE
[]
DM_READ_ONLY
=
"thing/service/%.*s_reply"
;
const
char
DM_URI_THING_EVENT_PROPERTY_POST_METHOD
[]
DM_READ_ONLY
=
"thing.event.property.post"
;
...
...
midware/midware/dm/kk_dm_msg.h
View file @
a3d22f20
...
@@ -59,6 +59,7 @@ extern const char DM_URI_THING_EVENT_PROPERTY_POST[] DM_READ_ONLY;
...
@@ -59,6 +59,7 @@ extern const char DM_URI_THING_EVENT_PROPERTY_POST[] DM_READ_ONLY;
const
char
DM_URI_THING_SERVICE_PROPERTY_SET_REPLY
[]
DM_READ_ONLY
;
const
char
DM_URI_THING_SERVICE_PROPERTY_SET_REPLY
[]
DM_READ_ONLY
;
const
char
DM_URI_THING_EVENT_POST
[]
DM_READ_ONLY
;
const
char
DM_URI_THING_EVENT_POST
[]
DM_READ_ONLY
;
const
char
DM_URI_THING_SERVICE_RESPONSE
[]
DM_READ_ONLY
;
const
char
DM_URI_THING_SERVICE_RESPONSE
[]
DM_READ_ONLY
;
const
char
DM_URI_THING_EVENT_PROPERTY_POST_METHOD
[]
DM_READ_ONLY
;
#endif
#endif
midware/tsl/tsl_handle/kk_tsl_api.c
View file @
a3d22f20
This diff is collapsed.
Click to expand it.
midware/tsl/tsl_handle/kk_tsl_api.h
View file @
a3d22f20
...
@@ -74,6 +74,13 @@ typedef enum {
...
@@ -74,6 +74,13 @@ typedef enum {
kk_tsl_set_service_output_value
,
kk_tsl_set_service_output_value
,
kk_tsl_set_number
,
kk_tsl_set_number
,
}
kk_tsl_set_t
;
}
kk_tsl_set_t
;
typedef
enum
{
kk_tsl_get_property_value
=
0
,
kk_tsl_get_event_output_value
,
kk_tsl_get_service_input_value
,
kk_tsl_get_service_output_value
,
kk_tsl_get_number
,
}
kk_tsl_get_t
;
typedef
struct
{
typedef
struct
{
void
*
mutex
;
void
*
mutex
;
...
@@ -84,6 +91,10 @@ extern int kk_tsl_api_init(void);
...
@@ -84,6 +91,10 @@ extern int kk_tsl_api_init(void);
extern
int
kk_tsl_set_value
(
kk_tsl_set_t
set
,
int
devId
,
const
char
*
identifier
,
\
extern
int
kk_tsl_set_value
(
kk_tsl_set_t
set
,
int
devId
,
const
char
*
identifier
,
\
const
void
*
value
,
\
const
void
*
value
,
\
const
char
*
value_str
);
const
char
*
value_str
);
extern
int
kk_tsl_get_value
(
kk_tsl_get_t
method_get
,
int
devId
,
const
char
*
identifier
,
\
void
*
value
,
\
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_NAME_MAXLEN
]);
_OU_
char
product_key
[
PRODUCT_KEY_MAXLEN
],
_OU_
char
device_name
[
DEVICE_NAME_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
,
...
...
midware/tsl/tsl_handle/kk_tsl_func.c
View file @
a3d22f20
...
@@ -984,6 +984,152 @@ int kk_tsl_get_data_type(_IN_ void *data, _OU_ kk_tsl_data_type_e *type)
...
@@ -984,6 +984,152 @@ int kk_tsl_get_data_type(_IN_ void *data, _OU_ kk_tsl_data_type_e *type)
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
static
int
_kk_tsl_data_array_get
(
_IN_
kk_tsl_data_value_t
*
data_value
,
_IN_
void
*
value
,
_IN_
int
index
)
{
kk_tsl_data_value_complex_t
*
complex_array
=
data_value
->
value
;
if
(
complex_array
==
NULL
||
index
<
0
||
index
>=
complex_array
->
size
)
{
return
FAIL_RETURN
;
}
if
(
g_iotx_data_type_mapping
[
complex_array
->
type
].
func_array_get
==
NULL
)
{
return
FAIL_RETURN
;
}
return
g_iotx_data_type_mapping
[
complex_array
->
type
].
func_array_get
(
data_value
,
value
,
index
);
}
static
int
_kk_tsl_data_get
(
_IN_
kk_tsl_data_value_t
*
data_value
,
_IN_
void
*
value
)
{
if
(
g_iotx_data_type_mapping
[
data_value
->
type
].
func_get
==
NULL
)
{
return
FAIL_RETURN
;
}
return
g_iotx_data_type_mapping
[
data_value
->
type
].
func_get
(
data_value
,
value
);
}
int
kk_tsl_get_property_value_ex
(
_IN_
kk_tsl_t
*
shadow
,
_IN_
char
*
key
,
_IN_
int
key_len
,
_OU_
void
*
value
)
{
int
res
=
0
,
array_index
=
0
;
kk_tsl_data_t
*
data
=
NULL
;
if
(
shadow
==
NULL
||
key
==
NULL
||
key_len
<=
0
)
{
return
INVALID_PARAMETER
;
}
res
=
_kk_tsl_property_search
(
shadow
,
key
,
key_len
,
&
data
,
&
array_index
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
FAIL_RETURN
;
}
printf
(
"Current Found Data: %s
\n
"
,
data
->
identifier
);
if
(
data
->
data_value
.
type
==
KK_TSL_DATA_TYPE_ARRAY
)
{
printf
(
"Current Found Data Index: %d
\n
"
,
array_index
);
res
=
_kk_tsl_data_array_get
(
&
data
->
data_value
,
value
,
array_index
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
TSL_PROPERTY_GET_FAILED
;
}
}
else
{
res
=
_kk_tsl_data_get
(
&
data
->
data_value
,
value
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
TSL_PROPERTY_GET_FAILED
;
}
}
return
SUCCESS_RETURN
;
}
int
kk_tsl_get_event_oput_value
(
_IN_
kk_tsl_t
*
shadow
,
_IN_
char
*
key
,
_IN_
int
key_len
,
_IN_
void
*
value
)
{
int
res
=
0
;
int
offset
=
0
,
array_index
=
0
;
char
*
pos
=
NULL
;
kk_tsl_event_t
*
event
=
NULL
;
kk_tsl_data_t
*
event_data
=
NULL
;
if
(
shadow
==
NULL
||
key
==
NULL
||
key_len
<=
0
)
{
return
INVALID_PARAMETER
;
}
res
=
kk_utils_memtok
(
key
,
key_len
,
KK_MSG_KEY_DELIMITER
,
1
,
&
offset
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
FAIL_RETURN
;
}
printf
(
"Key: %.*s
\n
"
,
key_len
,
key
);
res
=
_kk_tsl_event_search
(
shadow
,
key
,
offset
,
&
event
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
TSL_EVENT_NOT_EXIST
;
}
pos
=
key
+
offset
+
1
;
printf
(
"TSL Event Output Data Search, Event Data ID: %s"
,
pos
);
res
=
_kk_tsl_event_output_search
(
event
->
output_datas
,
event
->
output_data_number
,
pos
,
strlen
(
pos
),
&
event_data
,
&
array_index
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
TSL_EVENT_NOT_EXIST
;
}
if
(
event_data
->
data_value
.
type
==
KK_TSL_DATA_TYPE_ARRAY
)
{
res
=
_kk_tsl_data_array_get
(
&
event_data
->
data_value
,
value
,
array_index
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
TSL_EVENT_GET_FAILED
;
}
}
else
{
res
=
_kk_tsl_data_get
(
&
event_data
->
data_value
,
value
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
TSL_EVENT_GET_FAILED
;
}
}
return
SUCCESS_RETURN
;
}
int
kk_tsl_get_service_input_output_value
(
_IN_
kk_tsl_data_target_e
type
,
_IN_
kk_tsl_t
*
shadow
,
_IN_
char
*
key
,
_IN_
int
key_len
,
_IN_
void
*
value
)
{
int
res
=
0
;
int
offset
=
0
,
array_index
=
0
;
char
*
pos
=
NULL
;
kk_tsl_service_t
*
service
=
NULL
;
kk_tsl_data_t
*
service_data
=
NULL
;
if
(
shadow
==
NULL
||
key
==
NULL
||
key_len
<=
0
)
{
return
INVALID_PARAMETER
;
}
res
=
kk_utils_memtok
(
key
,
key_len
,
KK_MSG_KEY_DELIMITER
,
1
,
&
offset
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
FAIL_RETURN
;
}
printf
(
"key: %.*s
\n
"
,
key_len
,
key
);
res
=
_kk_tsl_service_search
(
shadow
,
key
,
offset
,
&
service
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
TSL_SERVICE_NOT_EXIST
;
}
pos
=
key
+
offset
+
1
;
printf
(
"TSL Service Input/Output Data Search, Event Data ID: %s"
,
pos
);
res
=
_kk_tsl_service_input_output_search
(
type
,
service
,
pos
,
strlen
(
pos
),
&
service_data
,
&
array_index
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
TSL_SERVICE_NOT_EXIST
;
}
if
(
service_data
->
data_value
.
type
==
KK_TSL_DATA_TYPE_ARRAY
)
{
res
=
_kk_tsl_data_array_get
(
&
service_data
->
data_value
,
value
,
array_index
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
TSL_SERVICE_GET_FAILED
;
}
}
else
{
res
=
_kk_tsl_data_get
(
&
service_data
->
data_value
,
value
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
TSL_SERVICE_GET_FAILED
;
}
}
return
SUCCESS_RETURN
;
}
midware/tsl/tsl_handle/kk_tsl_load.c
View file @
a3d22f20
...
@@ -28,7 +28,7 @@ int kk_set_tsl_by_productKey(const char* key,const char* name)
...
@@ -28,7 +28,7 @@ int kk_set_tsl_by_productKey(const char* key,const char* name)
s_tsl_num
++
;
s_tsl_num
++
;
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_get_tsl
Idx_by_productKey
(
const
char
*
key
)
int
kk_get_tsl
_by_productKey
(
const
char
*
key
,
char
*
name
)
{
{
int
index
=
0
;
int
index
=
0
;
if
(
key
==
NULL
)
if
(
key
==
NULL
)
...
@@ -41,7 +41,8 @@ int kk_get_tslIdx_by_productKey(const char* key)
...
@@ -41,7 +41,8 @@ int kk_get_tslIdx_by_productKey(const char* key)
if
((
strlen
(
key
)
==
strlen
(
s_tsl_list
[
index
].
product_key
))
&&
if
((
strlen
(
key
)
==
strlen
(
s_tsl_list
[
index
].
product_key
))
&&
(
memcmp
(
s_tsl_list
[
index
].
product_key
,
key
,
strlen
(
key
))
==
0
))
(
memcmp
(
s_tsl_list
[
index
].
product_key
,
key
,
strlen
(
key
))
==
0
))
{
{
return
index
;
memcpy
(
name
,
s_tsl_list
[
index
].
name
,
strlen
(
s_tsl_list
[
index
].
product_key
));
return
SUCCESS_RETURN
;
}
}
}
}
printf
(
"[%s][%d]Not exist!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
printf
(
"[%s][%d]Not exist!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
...
@@ -49,13 +50,13 @@ int kk_get_tslIdx_by_productKey(const char* key)
...
@@ -49,13 +50,13 @@ int kk_get_tslIdx_by_productKey(const char* key)
}
}
char
*
load_json
(
int
idx
)
char
*
kk_load_json
(
const
char
*
tslFile
)
{
{
FILE
*
fp
;
FILE
*
fp
;
char
*
buf
=
NULL
;
char
*
buf
=
NULL
;
unsigned
int
filesize
;
unsigned
int
filesize
;
printf
(
"[%s][%d]tslFile:%s!!!
\n
"
,
__FUNCTION__
,
__LINE__
,
tslFile
);
if
(
!
(
fp
=
fopen
(
s_tsl_list
[
idx
].
nam
e
,
"a+"
)))
if
(
!
(
fp
=
fopen
(
tslFil
e
,
"a+"
)))
{
{
printf
(
"can't open the file account.txt
\n
"
);
printf
(
"can't open the file account.txt
\n
"
);
return
-
1
;
return
-
1
;
...
...
midware/tsl/tsl_handle/kk_tsl_load.h
View file @
a3d22f20
#ifndef __TSL_DATA_LOAD__
#ifndef __TSL_DATA_LOAD__
#define __TSL_DATA_LOAD__
#define __TSL_DATA_LOAD__
extern
char
*
load_json
(
int
idx
);
extern
char
*
kk_load_json
(
const
char
*
tslFile
);
extern
int
kk_get_tsl
Idx_by_productKey
(
const
char
*
key
);
extern
int
kk_get_tsl
_by_productKey
(
const
char
*
key
,
char
*
name
);
extern
int
kk_set_tsl_by_productKey
(
const
char
*
key
,
const
char
*
name
);
extern
int
kk_set_tsl_by_productKey
(
const
char
*
key
,
const
char
*
name
);
#endif
#endif
midware/tsl/tsl_handle/kk_utils.c
View file @
a3d22f20
...
@@ -215,4 +215,51 @@ int kk_utils_service_name(_IN_ const char *prefix, _IN_ const char *name, _IN_ c
...
@@ -215,4 +215,51 @@ int kk_utils_service_name(_IN_ const char *prefix, _IN_ const char *name, _IN_ c
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
int
kk_utils_itoa_direct
(
_IN_
int
input
,
_OU_
char
**
output
)
{
int
res
=
0
;
char
temp_output
[
10
+
1
]
=
{
0
};
if
(
output
==
NULL
||
*
output
!=
NULL
)
{
return
INVALID_PARAMETER
;
}
res
=
snprintf
(
temp_output
,
10
,
"%d"
,
input
);
if
(
res
<
0
)
{
return
FAIL_RETURN
;
}
*
output
=
malloc
(
strlen
(
temp_output
)
+
1
);
if
(
*
output
==
NULL
)
{
return
MEMORY_NOT_ENOUGH
;
}
memset
(
*
output
,
0
,
strlen
(
temp_output
)
+
1
);
memcpy
(
*
output
,
temp_output
,
strlen
(
temp_output
));
return
SUCCESS_RETURN
;
}
int
kk_utils_ftoa_direct
(
_IN_
double
input
,
_OU_
char
**
output
)
{
int
res
=
0
;
char
temp_output
[
30
+
1
]
=
{
0
};
if
(
output
==
NULL
||
*
output
!=
NULL
)
{
return
INVALID_PARAMETER
;
}
res
=
snprintf
(
temp_output
,
30
,
"%f"
,
input
);
if
(
res
<
0
)
{
return
FAIL_RETURN
;
}
*
output
=
malloc
(
strlen
(
temp_output
)
+
1
);
if
(
*
output
==
NULL
)
{
return
MEMORY_NOT_ENOUGH
;
}
memset
(
*
output
,
0
,
strlen
(
temp_output
)
+
1
);
memcpy
(
*
output
,
temp_output
,
strlen
(
temp_output
));
return
SUCCESS_RETURN
;
}
midware/tsl/tsl_handle/kk_utils.h
View file @
a3d22f20
...
@@ -12,5 +12,7 @@ void *kk_MutexCreate(void);
...
@@ -12,5 +12,7 @@ void *kk_MutexCreate(void);
void
kk_MutexLock
(
void
*
mutex
);
void
kk_MutexLock
(
void
*
mutex
);
void
kk_MutexUnLock
(
void
*
mutex
);
void
kk_MutexUnLock
(
void
*
mutex
);
void
kk_MutexDestroy
(
void
*
mutex
);
void
kk_MutexDestroy
(
void
*
mutex
);
int
kk_utils_itoa_direct
(
_IN_
int
input
,
_OU_
char
**
output
);
#endif
#endif
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