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
0580adb7
Commit
0580adb7
authored
Aug 04, 2020
by
whmaizmy
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【修改内容】增加物模型event事件上报功能
【提交人】陈伟灿
parent
96e4d3ac
Changes
6
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
276 additions
and
22 deletions
+276
-22
src/midware/dm/kk_dm_mng.c
src/midware/dm/kk_dm_mng.c
+38
-1
src/midware/dm/kk_dm_msg.c
src/midware/dm/kk_dm_msg.c
+1
-0
src/midware/dm/kk_dm_msg.h
src/midware/dm/kk_dm_msg.h
+1
-0
src/midware/tsl_handle/kk_tsl_api.c
src/midware/tsl_handle/kk_tsl_api.c
+196
-17
src/midware/tsl_handle/kk_tsl_func.c
src/midware/tsl_handle/kk_tsl_func.c
+2
-1
src/midware/tsl_handle/kk_tsl_parse.c
src/midware/tsl_handle/kk_tsl_parse.c
+38
-3
No files found.
src/midware/dm/kk_dm_mng.c
View file @
0580adb7
...
...
@@ -166,6 +166,7 @@ int dm_mgr_init(void)
int
devId
=
0
;
memset
(
ctx
,
0
,
sizeof
(
dm_mgr_ctx
));
//kk_tsl_api_init();
/* Create Mutex */
ctx
->
mutex
=
kk_MutexCreate
();
if
(
ctx
->
mutex
==
NULL
)
{
...
...
@@ -253,4 +254,40 @@ int dm_mgr_upstream_thing_property_post(_IN_ int devid, _IN_ char *payload, _IN_
res
=
dm_msg_request
(
&
request
);
return
res
;
}
int
dm_mgr_upstream_thing_event_post
(
_IN_
int
devid
,
_IN_
char
*
identifier
,
_IN_
int
identifier_len
,
_IN_
char
*
method
,
_IN_
char
*
payload
,
_IN_
int
payload_len
)
{
int
res
=
0
,
service_name_len
=
0
;
char
*
service_name
=
NULL
;
dm_msg_request_t
request
;
if
(
devid
<
0
||
identifier
==
NULL
||
identifier_len
<=
0
||
method
==
NULL
||
payload
==
NULL
||
payload_len
<=
0
)
{
return
INVALID_PARAMETER
;
}
service_name_len
=
strlen
(
DM_URI_THING_EVENT_POST
)
+
identifier_len
+
1
;
service_name
=
malloc
(
service_name_len
);
if
(
service_name
==
NULL
)
{
return
MEMORY_NOT_ENOUGH
;
}
memset
(
service_name
,
0
,
service_name_len
);
snprintf
(
service_name
,
service_name_len
,
DM_URI_THING_EVENT_POST
,
identifier_len
,
identifier
);
memset
(
&
request
,
0
,
sizeof
(
dm_msg_request_t
));
res
=
_dm_mgr_upstream_request_assemble
(
iotx_report_id
(),
devid
,
DM_URI_SYS_PREFIX
,
service_name
,
payload
,
payload_len
,
method
,
&
request
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
FAIL_RETURN
;
}
/* Callback */
//request.callback = dm_client_thing_event_post_reply;
/* Send Message To Cloud */
res
=
dm_msg_request
(
&
request
);
free
(
service_name
);
return
res
;
}
src/midware/dm/kk_dm_msg.c
View file @
0580adb7
...
...
@@ -10,6 +10,7 @@
const
char
DM_URI_SYS_PREFIX
[]
DM_READ_ONLY
=
"/sys/%s/%s/"
;
const
char
DM_URI_THING_EVENT_PROPERTY_POST
[]
DM_READ_ONLY
=
"thing/event/property/post"
;
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"
;
...
...
src/midware/dm/kk_dm_msg.h
View file @
0580adb7
...
...
@@ -57,6 +57,7 @@ typedef enum {
extern
const
char
DM_URI_SYS_PREFIX
[]
DM_READ_ONLY
;
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_EVENT_POST
[]
DM_READ_ONLY
;
#endif
src/midware/tsl_handle/kk_tsl_api.c
View file @
0580adb7
This diff is collapsed.
Click to expand it.
src/midware/tsl_handle/kk_tsl_func.c
View file @
0580adb7
...
...
@@ -749,12 +749,13 @@ int dm_tsl_get_event_output_data(_IN_ kk_tsl_t *shadow, _IN_ char *key, _IN_ int
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"
,
key_len
,
key
);
printf
(
"Key: %.*s
\n
"
,
key_len
,
key
);
res
=
_kk_tsl_event_search
(
shadow
,
key
,
offset
,
&
event
);
if
(
res
!=
SUCCESS_RETURN
)
{
...
...
src/midware/tsl_handle/kk_tsl_parse.c
View file @
0580adb7
...
...
@@ -1366,7 +1366,6 @@ static int _kk_tsl_data_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjs
{
int
res
=
0
;
lite_cjson_item_t
*
data_object
=
NULL
;
printf
(
"--------------------------->[%s][%d]data->i:%s
\n
"
,
__FUNCTION__
,
__LINE__
,
data
->
identifier
,
data
->
data_value
);
if
(
data
==
NULL
||
lite
==
NULL
)
{
return
INVALID_PARAMETER
;
}
...
...
@@ -1378,7 +1377,6 @@ static int _kk_tsl_data_insert_json_item(_IN_ kk_tsl_data_t *data, _IN_ lite_cjs
}
}
printf
(
"--------------------------->[%s][%d]data->type:%d
\n
"
,
__FUNCTION__
,
__LINE__
,
data
->
data_value
.
type
);
switch
(
data
->
data_value
.
type
)
{
case
KK_TSL_DATA_TYPE_INT
:
case
KK_TSL_DATA_TYPE_BOOL
:
...
...
@@ -1488,7 +1486,7 @@ int kk_tsl_assemble_property(_IN_ kk_tsl_t *shadow, _IN_ char *identifier, _IN_
}
if
(
index
==
shadow
->
property_number
)
{
printf
(
"Property Not Found: %.*s"
,
identifier_len
,
identifier
);
printf
(
"Property Not Found: %.*s
\n
"
,
identifier_len
,
identifier
);
return
FAIL_RETURN
;
}
...
...
@@ -1499,6 +1497,43 @@ int kk_tsl_assemble_property(_IN_ kk_tsl_t *shadow, _IN_ char *identifier, _IN_
return
SUCCESS_RETURN
;
}
int
kk_tsl_assemble_event_output
(
_IN_
kk_tsl_t
*
shadow
,
_IN_
char
*
identifier
,
_IN_
int
identifier_len
,
_IN_
lite_cjson_item_t
*
lite
)
{
int
res
=
0
,
index
=
0
;
kk_tsl_data_t
*
event_outputdata
=
NULL
;
kk_tsl_event_t
*
event
=
NULL
;
if
(
shadow
==
NULL
||
identifier
==
NULL
||
identifier_len
<=
0
||
lite
==
NULL
||
lite
->
type
!=
cJSON_Object
)
{
return
INVALID_PARAMETER
;
}
for
(
index
=
0
;
index
<
shadow
->
event_number
;
index
++
)
{
event
=
shadow
->
events
+
index
;
if
((
strlen
(
event
->
identifier
)
==
identifier_len
)
&&
(
memcmp
(
event
->
identifier
,
identifier
,
identifier_len
)
==
0
))
{
/* dm_log_debug("Event Found: %.*s",identifier_len,identifier); */
break
;
}
}
if
(
index
==
shadow
->
event_number
)
{
printf
(
"Event Not Found: %.*s
\n
"
,
identifier_len
,
identifier
);
return
FAIL_RETURN
;
}
for
(
index
=
0
;
index
<
event
->
output_data_number
;
index
++
)
{
event_outputdata
=
event
->
output_datas
+
index
;
res
=
_kk_tsl_data_insert_json_item
(
event_outputdata
,
lite
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
FAIL_RETURN
;
}
}
return
SUCCESS_RETURN
;
}
#if 0
int main(int argc, char* argv[])
...
...
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