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
9aa96c00
Commit
9aa96c00
authored
Sep 18, 2020
by
陈伟灿
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'cwc' into 'master'
Cwc See merge request chenweican/k-sdk!13
parents
4dcf5660
70cb1a92
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
139 additions
and
135 deletions
+139
-135
midware/midware/dm/kk_dm_heartbeat.c
midware/midware/dm/kk_dm_heartbeat.c
+128
-126
midware/midware/midware.c
midware/midware/midware.c
+3
-3
platform/zigbee/app/builder/Z3GatewayHost/ZB/kk_device_table_db.c
.../zigbee/app/builder/Z3GatewayHost/ZB/kk_device_table_db.c
+1
-1
process_check.sh
process_check.sh
+7
-5
No files found.
midware/midware/dm/kk_dm_heartbeat.c
View file @
9aa96c00
#include <string.h>
#include <string.h>
#include <stdlib.h>
#include <stdlib.h>
#include "klist.h"
#include "klist.h"
#include "kk_log.h"
#include "kk_log.h"
#include "kk_tsl_common.h"
#include "kk_tsl_common.h"
#include "kk_dm_mng.h"
#include "kk_dm_mng.h"
typedef
struct
{
typedef
struct
{
void
*
mutex
;
void
*
mutex
;
void
*
hearbeat_thread
;
void
*
hearbeat_thread
;
int
hearbeat_thread_running
;
int
hearbeat_thread_running
;
//struct list_head dev_list;
//struct list_head dev_list;
}
kk_heartbeat_ctx_t
;
}
kk_heartbeat_ctx_t
;
#if 0
#if 0
typedef struct {
typedef struct {
unsigned int timerstamp;
unsigned int timerstamp;
char deviceCode[DEVICE_CODE_MAXLEN];
char deviceCode[DEVICE_CODE_MAXLEN];
struct list_head linked_list;
struct list_head linked_list;
} kk_dev_heartbeat_node_t;
} kk_dev_heartbeat_node_t;
static int _kk_add_heartbeat_node(const char* deviceCode,unsigned int timestamp)
static int _kk_add_heartbeat_node(const char* deviceCode,unsigned int timestamp)
{
{
kk_heartbeat_ctx_t *ctx = _kk_heartbeat_get_ctx();
kk_heartbeat_ctx_t *ctx = _kk_heartbeat_get_ctx();
kk_dev_heartbeat_node_t *node = NULL;
kk_dev_heartbeat_node_t *node = NULL;
node = malloc(sizeof(kk_dev_heartbeat_node_t));
node = malloc(sizeof(kk_dev_heartbeat_node_t));
if (node == NULL) {
if (node == NULL) {
return MEMORY_NOT_ENOUGH;
return MEMORY_NOT_ENOUGH;
}
}
_kk_heartbeat_lock();
_kk_heartbeat_lock();
memset(node,0x0,sizeof(kk_dev_heartbeat_node_t));
memset(node,0x0,sizeof(kk_dev_heartbeat_node_t));
memcpy(node->deviceCode,deviceCode,strlen(deviceCode));
memcpy(node->deviceCode,deviceCode,strlen(deviceCode));
node->timerstamp = timestamp;
node->timerstamp = timestamp;
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);
_kk_heartbeat_unlock();
_kk_heartbeat_unlock();
return SUCCESS_RETURN;
return SUCCESS_RETURN;
}
}
int kk_heartbeat_update_time(const char deviceCode[DEVICE_CODE_MAXLEN],unsigned int timestamp)
int kk_heartbeat_update_time(const char deviceCode[DEVICE_CODE_MAXLEN],unsigned int timestamp)
{
{
kk_heartbeat_ctx_t *ctx = _kk_heartbeat_get_ctx();
kk_heartbeat_ctx_t *ctx = _kk_heartbeat_get_ctx();
kk_dev_heartbeat_node_t *search_node = NULL;
kk_dev_heartbeat_node_t *search_node = NULL;
_kk_heartbeat_lock();
_kk_heartbeat_lock();
list_for_each_entry(search_node, &ctx->dev_list, linked_list, kk_dev_heartbeat_node_t) {
list_for_each_entry(search_node, &ctx->dev_list, linked_list, kk_dev_heartbeat_node_t) {
if ( (strlen(search_node->deviceCode) == strlen(deviceCode)) &&
if ( (strlen(search_node->deviceCode) == strlen(deviceCode)) &&
(memcmp(search_node->deviceCode, deviceCode, strlen(deviceCode)) == 0)) {
(memcmp(search_node->deviceCode, deviceCode, strlen(deviceCode)) == 0)) {
search_node->timerstamp = timestamp;
search_node->timerstamp = timestamp;
_kk_heartbeat_unlock();
_kk_heartbeat_unlock();
return SUCCESS_RETURN;
return SUCCESS_RETURN;
}
}
}
}
_kk_add_heartbeat_node(deviceCode,timestamp);
_kk_add_heartbeat_node(deviceCode,timestamp);
_kk_heartbeat_unlock();
_kk_heartbeat_unlock();
return FAIL_RETURN;
return FAIL_RETURN;
}
}
#endif
#endif
static
kk_heartbeat_ctx_t
s_kk_heartbeat_ctx
=
{
0
};
static
kk_heartbeat_ctx_t
s_kk_heartbeat_ctx
=
{
0
};
static
kk_heartbeat_ctx_t
*
_kk_heartbeat_get_ctx
(
void
)
static
kk_heartbeat_ctx_t
*
_kk_heartbeat_get_ctx
(
void
)
{
{
return
&
s_kk_heartbeat_ctx
;
return
&
s_kk_heartbeat_ctx
;
}
}
static
void
_kk_heartbeat_lock
(
void
)
static
void
_kk_heartbeat_lock
(
void
)
{
{
kk_heartbeat_ctx_t
*
ctx
=
_kk_heartbeat_get_ctx
();
kk_heartbeat_ctx_t
*
ctx
=
_kk_heartbeat_get_ctx
();
if
(
ctx
->
mutex
)
{
if
(
ctx
->
mutex
)
{
HAL_MutexLock
(
ctx
->
mutex
);
HAL_MutexLock
(
ctx
->
mutex
);
}
}
}
}
static
void
_kk_heartbeat_unlock
(
void
)
static
void
_kk_heartbeat_unlock
(
void
)
{
{
kk_heartbeat_ctx_t
*
ctx
=
_kk_heartbeat_get_ctx
();
kk_heartbeat_ctx_t
*
ctx
=
_kk_heartbeat_get_ctx
();
if
(
ctx
->
mutex
)
{
if
(
ctx
->
mutex
)
{
HAL_MutexUnlock
(
ctx
->
mutex
);
HAL_MutexUnlock
(
ctx
->
mutex
);
}
}
}
}
uint64_t
s_start_time
=
0
;
void
*
kk_heartbeat_yield
(
void
*
args
)
{
void
*
kk_heartbeat_yield
(
void
*
args
)
kk_heartbeat_ctx_t
*
ctx
=
_kk_heartbeat_get_ctx
();
{
uint64_t
current_time
=
0
;
kk_heartbeat_ctx_t
*
ctx
=
_kk_heartbeat_get_ctx
();
dm_mgr_dev_node_t
*
search_node
=
NULL
;
uint64_t
current_time
=
0
;
while
(
ctx
->
hearbeat_thread_running
)
{
dm_mgr_dev_node_t
*
search_node
=
NULL
;
current_time
=
HAL_UptimeMs
();
while
(
ctx
->
hearbeat_thread_running
)
{
_kk_heartbeat_lock
();
current_time
=
HAL_UptimeMs
()
-
s_start_time
;
dm_mgr_check_heartbeat_timeout
(
current_time
);
_kk_heartbeat_lock
();
_kk_heartbeat_unlock
();
dm_mgr_check_heartbeat_timeout
(
current_time
);
sleep
(
30
);
_kk_heartbeat_unlock
();
}
sleep
(
30
);
return
NULL
;
}
}
return
NULL
;
}
int
kk_heartbeat_init
(
void
)
{
int
kk_heartbeat_init
(
void
)
int
res
=
0
;
{
kk_heartbeat_ctx_t
*
ctx
=
_kk_heartbeat_get_ctx
();
int
res
=
0
;
/* Create Mutex */
kk_heartbeat_ctx_t
*
ctx
=
_kk_heartbeat_get_ctx
();
ctx
->
mutex
=
HAL_MutexCreate
();
/* Create Mutex */
if
(
ctx
->
mutex
==
NULL
)
{
ctx
->
mutex
=
HAL_MutexCreate
();
return
FAIL_RETURN
;
if
(
ctx
->
mutex
==
NULL
)
{
}
return
FAIL_RETURN
;
/* Init Device Id*/
}
ctx
->
hearbeat_thread_running
=
1
;
/* Init Device Id*/
ctx
->
hearbeat_thread_running
=
1
;
res
=
pthread_create
(
&
ctx
->
hearbeat_thread
,
NULL
,
kk_heartbeat_yield
,
NULL
);
s_start_time
=
HAL_UptimeMs
();
if
(
res
<
0
)
{
ERROR_PRINT
(
"HAL_ThreadCreate ota Failed
\n
"
);
res
=
pthread_create
(
&
ctx
->
hearbeat_thread
,
NULL
,
kk_heartbeat_yield
,
NULL
);
//IOT_Linkkit_Close(mid_ctx->master_devid);
if
(
res
<
0
)
{
return
FAIL_RETURN
;
ERROR_PRINT
(
"HAL_ThreadCreate ota Failed
\n
"
);
}
//IOT_Linkkit_Close(mid_ctx->master_devid);
return
SUCCESS_RETURN
;
return
FAIL_RETURN
;
}
/* Init Device List */
return
SUCCESS_RETURN
;
// INIT_LIST_HEAD(&ctx->dev_list);
/* Init Device List */
}
// INIT_LIST_HEAD(&ctx->dev_list);
}
midware/midware/midware.c
View file @
9aa96c00
...
@@ -158,7 +158,7 @@ void gw2mid_cb(void* data, int len, char* chalMark){
...
@@ -158,7 +158,7 @@ void gw2mid_cb(void* data, int len, char* chalMark){
}
}
}
}
extern
uint64_t
s_start_time
;
void
kk_platMsg_handle
(
void
*
data
,
char
*
chalMark
){
void
kk_platMsg_handle
(
void
*
data
,
char
*
chalMark
){
char
*
out
;
char
*
out
;
...
@@ -197,10 +197,10 @@ void kk_platMsg_handle(void* data, char* chalMark){
...
@@ -197,10 +197,10 @@ void kk_platMsg_handle(void* data, char* chalMark){
}
}
if
(
chalMark
!=
NULL
){
if
(
chalMark
!=
NULL
){
dm_mgr_update_timestamp_by_devicecode
(
chalMark
,
HAL_UptimeMs
());
dm_mgr_update_timestamp_by_devicecode
(
chalMark
,
HAL_UptimeMs
()
-
s_start_time
);
}
}
dm_mgr_update_timestamp_by_devicecode
(
info_dcode
->
valuestring
,
HAL_UptimeMs
());
dm_mgr_update_timestamp_by_devicecode
(
info_dcode
->
valuestring
,
HAL_UptimeMs
()
-
s_start_time
);
if
(
strcmp
(
msgType
->
valuestring
,
KK_THING_TOPO_ADD_MSG
)
==
0
){
if
(
strcmp
(
msgType
->
valuestring
,
KK_THING_TOPO_ADD_MSG
)
==
0
){
proCode
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_PRODUCT_CODE_STR
);
proCode
=
cJSON_GetObjectItem
(
jsonPay
,
MSG_PRODUCT_CODE_STR
);
...
...
platform/zigbee/app/builder/Z3GatewayHost/ZB/kk_device_table_db.c
View file @
9aa96c00
...
@@ -209,7 +209,7 @@ void kk_device_table_delete(EmberEUI64 mac)
...
@@ -209,7 +209,7 @@ void kk_device_table_delete(EmberEUI64 mac)
if
(
MEMCOMPARE
(
ptr
->
mac
,
mac
,
sizeof
(
EmberEUI64
))
==
0
){
if
(
MEMCOMPARE
(
ptr
->
mac
,
mac
,
sizeof
(
EmberEUI64
))
==
0
){
if
(
ptr
->
next
==
NULL
){
if
(
ptr
->
next
==
NULL
){
free
(
ptr
);
free
(
ptr
);
kk_zb_device_table
=
NULL
;
ptr_temp
->
next
=
NULL
;
emberAfCorePrintln
(
"[KK device table]delete,now is empty !!!"
);
emberAfCorePrintln
(
"[KK device table]delete,now is empty !!!"
);
return
;
return
;
}
else
{
}
else
{
...
...
process_check.sh
View file @
9aa96c00
...
@@ -5,17 +5,19 @@ do
...
@@ -5,17 +5,19 @@ do
sleep
30
sleep
30
PIDS
=
`
ps|grep kk_midware |grep
-v
grep
|
awk
'{print $1}'
`
PIDS
=
`
ps|grep kk_midware |grep
-v
grep
|
awk
'{print $1}'
`
if
[
"
$PIDS
"
!=
""
]
;
then
if
[
"
$PIDS
"
!=
""
]
;
then
echo
"kk_midware is runing!"
echo
"kk_midware is runing!"
else
else
/home/kk/kk_midware
>
/dev/null 2>&1 &
/home/kk/kk_midware
>
/dev/null 2>&1 &
#运行进程
#运行进程
fi
fi
sleep
30
sleep
30
PIDS
=
`
ps|grep kcloud |grep
-v
grep
|
awk
'{print $1}'
`
PIDS
=
`
ps|grep kcloud |grep
-v
grep
|
awk
'{print $1}'
`
if
[
"
$PIDS
"
!=
""
]
;
then
if
[
"
$PIDS
"
!=
""
]
;
then
echo
"kcloud is runing!"
echo
"kcloud is runing!"
else
else
/home/kk/kcloud
>
/dev/null 2>&1 &
echo
"kcloud is not running ,now restart kk_midware and kcloud"
#运行进程
pgrep kk_midware | xargs
kill
-s
9
/home/kk/kk_midware
>
/dev/null 2>&1 &
/home/kk/kcloud
>
/dev/null 2>&1 &
fi
fi
done
done
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