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
46b000c3
Commit
46b000c3
authored
Oct 16, 2020
by
chen.weican
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
【修改内容】增加场景addscene,updatescene以及deletescene的service调用,以及相关的event事件上报
【提交人】陈伟灿
parent
845cdbd6
Changes
10
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
1009 additions
and
30 deletions
+1009
-30
common/api/com_api.h
common/api/com_api.h
+32
-0
common/hal/HAL_OS_linux.c
common/hal/HAL_OS_linux.c
+6
-5
midware/midware/area/kk_area_handle.c
midware/midware/area/kk_area_handle.c
+36
-3
midware/midware/dm/kk_dm_msg.c
midware/midware/dm/kk_dm_msg.c
+40
-0
midware/midware/dm/kk_dm_msg.h
midware/midware/dm/kk_dm_msg.h
+3
-0
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+94
-18
midware/midware/midware.c
midware/midware/midware.c
+5
-1
midware/midware/scene/kk_scene_handle.c
midware/midware/scene/kk_scene_handle.c
+774
-0
midware/midware/scene/kk_scene_handle.h
midware/midware/scene/kk_scene_handle.h
+10
-0
midware/tsl/tsl_handle/kk_tsl_load.c
midware/tsl/tsl_handle/kk_tsl_load.c
+9
-3
No files found.
common/api/com_api.h
View file @
46b000c3
...
...
@@ -92,6 +92,38 @@ typedef enum {
#define MSG_KEYDELETE_NOTIFICATION "KeyDeletedNotification"
#define MSG_KEYMODIFY_NOTIFICATION "KeyModifyNotification"
/************************SCENE RELATION*************************/
#define MSG_SCENE_ARGS "args"
#define MSG_SCENE_NAME "name"
#define MSG_SCENE_SCENCTYPE "sceneType"
#define MSG_SCENE_ENABLE "enable"
#define MSG_SCENE_TRIGGERS "triggers"
#define MSG_SCENE_ITEMS "items"
#define MSG_SCENE_TYPE "type"
#define MSG_SCENE_EPNUM "epNum"
#define MSG_SCENE_PROPERTYNAME "propertyName"
#define MSG_SCENE_COMPARETYPE "compareType"
#define MSG_SCENE_COMPAREVALUE "compareValue"
#define MSG_SCENE_CONDITIONS "conditions"
#define MSG_SCENE_STARTTIME "startTime"
#define MSG_SCENE_ENDTIME "endTime"
#define MSG_SCENE_CROSSDAY "crossDay"
#define MSG_SCENE_REPEATDAYS "repeat_days"
#define MSG_SCENE_ACTIONS "actions"
#define MSG_SCENE_PROPERTYVALUE "propertyValue"
#define MSG_SCENE_DELAY "delay"
#define MSG_SCENE_SCENEID "sceneId"
#define MSG_SCENE_ADDNOTIFICATION_SCENEID "addSceneNotification.sceneId"
#define MSG_SCENE_ADDNOTIFICATION "addSceneNotification"
#define MSG_SCENE_UPDATENOTIFICATION_SCENEID "updateSceneNotification.sceneId"
#define MSG_SCENE_UPDATENOTIFICATION "updateSceneNotification"
#define MSG_SCENE_DELETENOTIFICATION_SCENEID "deleteSceneNotification.sceneId"
#define MSG_SCENE_DELETENOTIFICATION "deleteSceneNotification"
typedef
void
ipc_cb
(
void
*
data
,
int
len
,
char
*
chalMark
);
...
...
common/hal/HAL_OS_linux.c
View file @
46b000c3
...
...
@@ -123,13 +123,14 @@ uint64_t HAL_GetTime(void)
}
uint64_t
HAL_GetTimeMs
(
void
)
uint64_t
HAL_GetTimeMs
(
char
*
outStr
)
{
uint64_t
time_ms
;
struct
time
spec
ts
;
struct
time
val
tv
;
clock_gettime
(
CLOCK_REALTIME
,
&
ts
);
time_ms
=
((
uint64_t
)
ts
.
tv_sec
*
(
uint64_t
)
1000
)
+
(
ts
.
tv_nsec
/
1000
/
1000
);
gettimeofday
(
&
tv
,
NULL
);
time_ms
=
((
uint64_t
)
tv
.
tv_sec
*
(
uint64_t
)
1000
)
+
(
tv
.
tv_usec
/
1000
);
sprintf
(
outStr
,
"%lld"
,
time_ms
);
return
time_ms
;
}
...
...
midware/midware/area/kk_area_handle.c
View file @
46b000c3
...
...
@@ -173,6 +173,32 @@ int kk_room_delete(const char *roomId)
return
SUCCESS_RETURN
;
}
static
int
_kk_check_dev_exist
(
const
char
*
deviceCode
)
{
int
isExist
=
0
;
sqlite3_stmt
*
stmt
;
char
*
pDeviceCode
=
NULL
;
char
*
pKeyId
=
NULL
;
kk_area_ctx_t
*
ctx
=
_kk_area_get_ctx
();
const
char
*
searchCmd
=
"select * from AreaDevInfo;"
;
_kk_area_lock
();
sqlite3_prepare_v2
(
ctx
->
pDb
,
searchCmd
,
strlen
(
searchCmd
),
&
stmt
,
NULL
);
//INFO_PRINT("total_column = %d\n", sqlite3_column_count(stmt));
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pDeviceCode
=
sqlite3_column_text
(
stmt
,
DB_DEV_DEVICECODE
);
if
(
!
strcmp
(
deviceCode
,
pDeviceCode
))
{
isExist
=
1
;
break
;
}
}
//INFO_PRINT("\n");
sqlite3_finalize
(
stmt
);
_kk_area_unlock
();
return
isExist
;
}
int
kk_room_dev_add
(
const
char
*
roomId
,
const
char
*
deviceCode
,
const
char
*
epNum
)
{
int
res
=
0
;
...
...
@@ -180,11 +206,18 @@ int kk_room_dev_add(const char *roomId,const char *deviceCode,const char *epNum)
char
*
sqlCmd
=
NULL
;
char
*
zErrMsg
=
0
;
if
(
_kk_check_dev_exist
(
deviceCode
)){
sqlCmd
=
sqlite3_mprintf
(
"UPDATE AreaDevInfo SET roomId='%s', epNum='%s' \
WHERE deviceCode= '%s'"
,
deviceCode
);
}
else
{
const
char
*
insertCmd
=
"insert into AreaDevInfo (roomId, deviceCode, epNum) \
values ('%s','%s','%s');"
;
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
roomId
,
deviceCode
,
epNum
);
}
_kk_area_lock
();
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
roomId
,
deviceCode
,
epNum
);
res
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
res
!=
SQLITE_OK
){
ERROR_PRINT
(
"SQL error: %s
\n
"
,
zErrMsg
);
...
...
midware/midware/dm/kk_dm_msg.c
View file @
46b000c3
...
...
@@ -777,6 +777,46 @@ int dm_msg_thing_event_post(const char *deviceCode, const char *identifier)
}
return
SUCCESS_RETURN
;
}
int
dm_msg_scene_event_post
(
const
char
*
deviceCode
,
const
char
*
identifier
,
kk_tsl_t
*
dev_shadow
)
{
int
res
=
0
;
int
nums
=
0
;
int
idx
=
0
;
char
*
payload
=
NULL
;
dm_mgr_dev_node_t
*
node
=
NULL
;
void
*
event
=
NULL
;
char
*
method
=
NULL
;
if
(
deviceCode
==
NULL
){
return
FAIL_RETURN
;
}
res
=
dm_mgr_get_device_by_devicecode
(
deviceCode
,
&
node
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
FAIL_RETURN
;
}
payload
=
kk_tsl_get_post_event_str
(
dev_shadow
,
identifier
,
strlen
(
identifier
));
if
(
payload
!=
NULL
){
res
=
kk_tsl_get_event_by_identifier
(
dev_shadow
,
identifier
,
&
event
);
if
(
res
!=
SUCCESS_RETURN
)
{
free
(
payload
);
return
FAIL_RETURN
;
}
res
=
kk_tsl_get_event_method
(
event
,
&
method
);
if
(
res
!=
SUCCESS_RETURN
)
{
free
(
payload
);
return
FAIL_RETURN
;
}
dm_mgr_upstream_thing_event_post
(
node
->
devid
,
identifier
,
strlen
(
identifier
),
method
,
payload
,
strlen
(
payload
));
free
(
method
);
method
=
NULL
;
free
(
payload
);
payload
=
NULL
;
}
return
SUCCESS_RETURN
;
}
int
dm_msg_thing_service_post
(
const
char
*
deviceCode
,
const
char
*
identifier
)
{
int
res
=
0
;
...
...
midware/midware/dm/kk_dm_msg.h
View file @
46b000c3
...
...
@@ -69,6 +69,9 @@ const char DM_MSG_INFO[] DM_READ_ONLY;
#define KK_THING_SERVICE_ADDKEY "/thing/service/AddKey"
#define KK_THING_SERVICE_DELETEKEY "/thing/service/DeleteKey"
#define KK_THING_SERVICE_MODIFYKEY "/thing/service/ModifyKey"
#define KK_THING_SERVICE_ADDSCENC "/thing/service/addScene"
#define KK_THING_SERVICE_DELETESCENC "/thing/service/deleteScene"
#define KK_THING_SERVICE_UPDATESCENC "/thing/service/updateScene"
#define KK_THING_EVENT_MESSAGE "/thing/event/"
#define KK_THING_EVENT_POST "/post"
...
...
midware/midware/dm/kk_linkkit.c
View file @
46b000c3
This diff is collapsed.
Click to expand it.
midware/midware/midware.c
View file @
46b000c3
...
...
@@ -36,7 +36,10 @@ char * g_filerToPlatTable[] =
{
KK_THING_SERVICE_GETCOUNTDOWN
},
{
KK_THING_SERVICE_ADDKEY
},
{
KK_THING_SERVICE_DELETEKEY
},
{
KK_THING_SERVICE_MODIFYKEY
}
{
KK_THING_SERVICE_MODIFYKEY
},
{
KK_THING_SERVICE_ADDSCENC
},
{
KK_THING_SERVICE_UPDATESCENC
},
{
KK_THING_SERVICE_DELETESCENC
},
};
static
int
_kk_filter_to_plat
(
const
char
*
msgtype
)
{
...
...
@@ -774,6 +777,7 @@ int main(const int argc, const char **argv)
kk_subDb_init
();
kk_heartbeat_init
();
kk_area_init
();
kk_scene_init
();
mid_ctx
->
g_mid_dispatch_thread_running
=
1
;
res
=
pthread_create
(
&
mid_ctx
->
g_mid_dispatch_thread
,
NULL
,
mid_dispatch_yield
,
NULL
);
if
(
res
<
0
)
{
...
...
midware/midware/scene/kk_scene_handle.c
0 → 100644
View file @
46b000c3
This diff is collapsed.
Click to expand it.
midware/midware/scene/kk_scene_handle.h
0 → 100644
View file @
46b000c3
#ifndef __KK_SCENE_H__
#define __KK_SCENE_H__
#include "kk_tsl_common.h"
int
kk_scene_init
(
void
);
#endif
midware/tsl/tsl_handle/kk_tsl_load.c
View file @
46b000c3
...
...
@@ -7,6 +7,7 @@
#define TSL_SUBDEVICE_PATH_FILE "/usr/kk/tsl/product_%s.json"
#define TSL_GATEWAY_PATH_FILE "/usr/kk/tsl/gateway-%s.json"
#define TSL_CCU_PATH_FILE "/usr/kk/tsl/ccu-%s.json"
#define TSL_SCENE_PATH_FILE "/usr/kk/tsl/ccu_%s_scene.json"
char
*
kk_load_json
(
const
char
*
productCode
,
int
type
)
{
...
...
@@ -22,10 +23,12 @@ char* kk_load_json(const char *productCode,int type)
else
if
(
type
==
KK_DM_DEVICE_GATEWAY
){
path_len
=
strlen
(
TSL_GATEWAY_PATH_FILE
)
+
strlen
(
productCode
)
+
1
;
}
else
{
else
if
(
type
==
KK_DM_DEVICE_SUBDEV
)
{
path_len
=
strlen
(
TSL_SUBDEVICE_PATH_FILE
)
+
strlen
(
productCode
)
+
1
;
}
else
{
path_len
=
strlen
(
TSL_SCENE_PATH_FILE
)
+
strlen
(
productCode
)
+
1
;
}
tslPath
=
malloc
(
path_len
);
if
(
tslPath
==
NULL
){
return
NULL
;
...
...
@@ -38,9 +41,12 @@ char* kk_load_json(const char *productCode,int type)
else
if
(
type
==
KK_DM_DEVICE_GATEWAY
){
snprintf
(
tslPath
,
path_len
,
TSL_GATEWAY_PATH_FILE
,
productCode
);
}
else
{
else
if
(
type
==
KK_DM_DEVICE_SUBDEV
)
{
snprintf
(
tslPath
,
path_len
,
TSL_SUBDEVICE_PATH_FILE
,
productCode
);
}
else
{
snprintf
(
tslPath
,
path_len
,
TSL_SCENE_PATH_FILE
,
productCode
);
}
INFO_PRINT
(
"
\n
[%s][%d]tslPath:%s!!!
\n
"
,
__FUNCTION__
,
__LINE__
,
tslPath
);
...
...
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