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
47872e3f
Commit
47872e3f
authored
Aug 11, 2020
by
尹佳钦
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://172.17.3.10:17001/chenweican/k-sdk
parents
8d64d301
681bb385
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
323 additions
and
91 deletions
+323
-91
common/hal/HAL_OS_linux.c
common/hal/HAL_OS_linux.c
+3
-3
midware/midware/dm/kk_dm_mng.c
midware/midware/dm/kk_dm_mng.c
+9
-6
midware/midware/dm/kk_dm_queue.c
midware/midware/dm/kk_dm_queue.c
+1
-1
midware/midware/dm/kk_linkkit.c
midware/midware/dm/kk_linkkit.c
+7
-2
midware/midware/dm/kk_sub_db.c
midware/midware/dm/kk_sub_db.c
+222
-0
midware/midware/dm/kk_sub_db.h
midware/midware/dm/kk_sub_db.h
+20
-0
midware/midware/dm/kk_wlist_mng.c
midware/midware/dm/kk_wlist_mng.c
+6
-25
midware/midware/midware.c
midware/midware/midware.c
+55
-54
No files found.
common/hal/HAL_OS_linux.c
View file @
47872e3f
...
@@ -30,9 +30,9 @@
...
@@ -30,9 +30,9 @@
#include "kk_product.h"
#include "kk_product.h"
//#include "iot_import.h"
//#include "iot_import.h"
char
g_product_type
[
PRODUCT_TYPE_LEN
];
char
g_product_type
[
PRODUCT_TYPE_LEN
]
=
{
0
}
;
char
g_product_code
[
PRODUCT_CODE_LEN
];
char
g_product_code
[
PRODUCT_CODE_LEN
]
=
{
0
}
;
char
g_device_code
[
DEVICE_CODE_LEN
];
char
g_device_code
[
DEVICE_CODE_LEN
]
=
{
0
}
;
#define PLATFORM_WAIT_INFINITE (~0)
#define PLATFORM_WAIT_INFINITE (~0)
...
...
midware/midware/dm/kk_dm_mng.c
View file @
47872e3f
...
@@ -221,10 +221,13 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA
...
@@ -221,10 +221,13 @@ int dm_mgr_device_create(_IN_ int dev_type, _IN_ char product_key[PRODUCT_KEY_MA
memset
(
name
,
0x0
,
sizeof
(
name
));
memset
(
name
,
0x0
,
sizeof
(
name
));
kk_get_tsl_by_productKey
(
product_key
,
name
);
kk_get_tsl_by_productKey
(
product_key
,
name
);
tsl_str
=
kk_load_json
(
name
);
tsl_str
=
kk_load_json
(
name
);
res
=
kk_tsl_create
(
tsl_str
,
strlen
(
tsl_str
),
&
node
->
dev_shadow
);
if
(
tsl_str
!=
NULL
)
free
(
tsl_str
);
{
if
(
res
!=
0
){
res
=
kk_tsl_create
(
tsl_str
,
strlen
(
tsl_str
),
&
node
->
dev_shadow
);
return
FAIL_RETURN
;
free
(
tsl_str
);
if
(
res
!=
0
){
return
FAIL_RETURN
;
}
}
}
INIT_LIST_HEAD
(
&
node
->
linked_list
);
INIT_LIST_HEAD
(
&
node
->
linked_list
);
...
@@ -267,8 +270,8 @@ int dm_mgr_search_mac_by_topic(_IN_ char* topic, _OU_ char mac[DEVI
...
@@ -267,8 +270,8 @@ int dm_mgr_search_mac_by_topic(_IN_ char* topic, _OU_ char mac[DEVI
int
res
=
0
;
int
res
=
0
;
dm_mgr_dev_node_t
*
node
=
NULL
;
dm_mgr_dev_node_t
*
node
=
NULL
;
char
product_key
[
PRODUCT_KEY_MAXLEN
];
char
product_key
[
PRODUCT_KEY_MAXLEN
]
=
{
0
}
;
char
device_name
[
DEVICE_NAME_MAXLEN
];
char
device_name
[
DEVICE_NAME_MAXLEN
]
=
{
0
}
;
if
(
topic
==
NULL
)
{
if
(
topic
==
NULL
)
{
return
INVALID_PARAMETER
;
return
INVALID_PARAMETER
;
...
...
midware/midware/dm/kk_dm_queue.c
View file @
47872e3f
...
@@ -144,7 +144,7 @@ int dm_queue_msg_insert(void *data)
...
@@ -144,7 +144,7 @@ int dm_queue_msg_insert(void *data)
node
=
malloc
(
sizeof
(
dm_queue_msg_node_t
));
node
=
malloc
(
sizeof
(
dm_queue_msg_node_t
));
if
(
node
==
NULL
)
{
if
(
node
==
NULL
)
{
_dm_queue_unlock
();
_dm_queue_unlock
();
return
DM_
MEMORY_NOT_ENOUGH
;
return
MEMORY_NOT_ENOUGH
;
}
}
memset
(
node
,
0
,
sizeof
(
dm_queue_msg_node_t
));
memset
(
node
,
0
,
sizeof
(
dm_queue_msg_node_t
));
...
...
midware/midware/dm/kk_linkkit.c
View file @
47872e3f
...
@@ -1743,6 +1743,7 @@ int iot_linkkit_subdev_query_id(char product_key[IOTX_PRODUCT_KEY_LEN + 1], char
...
@@ -1743,6 +1743,7 @@ int iot_linkkit_subdev_query_id(char product_key[IOTX_PRODUCT_KEY_LEN + 1], char
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_mac
[
DEVICE_MAC_MAXLEN
]){
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_mac
[
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_mac
,
&
devid
);
res
=
dm_mgr_subdev_create
(
product_key
,
device_name
,
device_secret
,
device_mac
,
&
devid
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
printf
(
"subdev create Failed
\n
"
);
printf
(
"subdev create Failed
\n
"
);
...
@@ -1750,7 +1751,11 @@ int kk_mid_subdev_add(char product_key[PRODUCT_KEY_MAXLEN], char device_name[DEV
...
@@ -1750,7 +1751,11 @@ int kk_mid_subdev_add(char product_key[PRODUCT_KEY_MAXLEN], char device_name[DEV
}
}
printf
(
"subdev open susseed, devid = %d
\n
"
,
devid
);
printf
(
"subdev open susseed, devid = %d
\n
"
,
devid
);
res
=
kk_subDev_insert_db
(
0
,
device_mac
,
product_key
,
device_secret
,
device_name
);
if
(
res
!=
SUCCESS_RETURN
)
{
return
FAIL_RETURN
;
}
_iotx_linkkit_mutex_lock
();
res
=
_iotx_linkkit_slave_connect
(
devid
);
res
=
_iotx_linkkit_slave_connect
(
devid
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
_iotx_linkkit_mutex_unlock
();
_iotx_linkkit_mutex_unlock
();
...
@@ -1762,7 +1767,7 @@ int kk_mid_subdev_add(char product_key[PRODUCT_KEY_MAXLEN], char device_name[DEV
...
@@ -1762,7 +1767,7 @@ int kk_mid_subdev_add(char product_key[PRODUCT_KEY_MAXLEN], char device_name[DEV
_iotx_linkkit_mutex_unlock
();
_iotx_linkkit_mutex_unlock
();
return
FAIL_RETURN
;
return
FAIL_RETURN
;
}
}
_iotx_linkkit_mutex_unlock
();
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
...
midware/midware/dm/kk_sub_db.c
0 → 100644
View file @
47872e3f
#include <stdio.h>
#include "kk_tsl_api.h"
#include "kk_sub_db.h"
#include "sqlite3.h"
#define KK_SUB_DB_FILE "subDevice.db"
typedef
struct
{
void
*
mutex
;
int
subDevNum
;
sqlite3
*
pDb
;
}
kk_subDb_ctx_t
;
static
kk_subDb_ctx_t
s_kk_subDb_ctx
=
{
NULL
,
0
,
NULL
};
static
kk_subDb_ctx_t
*
_kk_subDb_get_ctx
(
void
)
{
return
&
s_kk_subDb_ctx
;
}
static
void
_kk_subDb_lock
(
void
)
{
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
if
(
ctx
->
mutex
)
{
HAL_MutexLock
(
ctx
->
mutex
);
}
}
static
void
_kk_subDb_unlock
(
void
)
{
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
if
(
ctx
->
mutex
)
{
HAL_MutexUnlock
(
ctx
->
mutex
);
}
}
static
int
kk_subDev_db_Init
(
void
)
{
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
//eUtils_LockLock(&sLock);
_kk_subDb_lock
();
if
(
sqlite3_open_v2
(
KK_SUB_DB_FILE
,
&
ctx
->
pDb
,
SQLITE_OPEN_READWRITE
|
SQLITE_OPEN_CREATE
|
SQLITE_OPEN_FULLMUTEX
,
NULL
)
!=
SQLITE_OK
)
{
printf
(
"Error initialising linkage database (%s)"
,
sqlite3_errmsg
(
ctx
->
pDb
));
_kk_subDb_unlock
();
return
FAIL_RETURN
;
}
printf
(
"sub db Database opened
\n
"
);
{
const
char
*
pSubDevTable
=
"CREATE TABLE IF NOT EXISTS SubDeviceInfo(idx INTEGER,isOnline INTEGER,deviceMac varchar(17),productId varchar(33), deviceSN varchar(33), deviceId varchar(33))"
;
char
*
pcErr
;
// DBG_vPrintf(DBG_SQL, "Execute SQL: '%s'\n", pConditionTableDef);
if
(
sqlite3_exec
(
ctx
->
pDb
,
pSubDevTable
,
NULL
,
NULL
,
&
pcErr
)
!=
SQLITE_OK
)
{
printf
(
"Error creating table (%s)
\n
"
,
pcErr
);
sqlite3_free
(
pcErr
);
//eUtils_LockUnlock(&sLock);
_kk_subDb_unlock
();
return
FAIL_RETURN
;
}
}
//eUtils_LockUnlock(&sLock);
_kk_subDb_unlock
();
return
SUCCESS_RETURN
;
}
static
int
_kk_load_subDevice
(
void
)
{
const
char
*
searchCmd
=
"select * from SubDeviceInfo;"
;
sqlite3_stmt
*
stmt
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
int
devId
;
int
res
=
0
;
_kk_subDb_lock
();
sqlite3_prepare_v2
(
ctx
->
pDb
,
searchCmd
,
strlen
(
searchCmd
),
&
stmt
,
NULL
);
printf
(
"_kk_load_subDevice total_column = %d
\n
"
,
sqlite3_column_count
(
stmt
));
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
res
=
dm_mgr_subdev_create
(
sqlite3_column_text
(
stmt
,
2
),
sqlite3_column_text
(
stmt
,
3
),
sqlite3_column_text
(
stmt
,
4
),
sqlite3_column_text
(
stmt
,
5
),
&
devId
);
if
(
res
!=
SUCCESS_RETURN
){
printf
(
"[%s][%d]dm_mgr_subdev_create FAIL!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
}
else
{
ctx
->
subDevNum
++
;
}
iotx_dm_subscribe
(
devId
);
usleep
(
100000
);
}
sqlite3_finalize
(
stmt
);
_kk_subDb_unlock
();
return
SUCCESS_RETURN
;
}
int
kk_subDb_init
(
void
)
{
int
res
=
0
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
/* Create Mutex */
ctx
->
mutex
=
HAL_MutexCreate
();
if
(
ctx
->
mutex
==
NULL
)
{
return
FAIL_RETURN
;
}
res
=
kk_subDev_db_Init
();
if
(
res
!=
SUCCESS_RETURN
){
printf
(
"[%s][%d]kk_wlist_db_Init FAIL!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
}
_kk_load_subDevice
();
return
SUCCESS_RETURN
;
}
static
int
_kk_check_subDev_exist
(
const
char
*
device_mac
)
{
int
isExist
=
0
;
sqlite3_stmt
*
stmt
;
char
*
pmac
=
NULL
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
const
char
*
searchCmd
=
"select * from SubDeviceInfo;"
;
_kk_subDb_lock
();
sqlite3_prepare_v2
(
ctx
->
pDb
,
searchCmd
,
strlen
(
searchCmd
),
&
stmt
,
NULL
);
printf
(
"total_column = %d
\n
"
,
sqlite3_column_count
(
stmt
));
while
(
sqlite3_step
(
stmt
)
==
SQLITE_ROW
){
pmac
=
sqlite3_column_text
(
stmt
,
1
);
if
(
!
strcmp
(
device_mac
,
pmac
))
{
isExist
=
1
;
break
;
}
}
printf
(
"
\n
"
);
sqlite3_finalize
(
stmt
);
_kk_subDb_unlock
();
return
isExist
;
}
int
kk_subDev_insert_db
(
int
isOnline
,
char
device_mac
[
DEVICE_MAC_MAXLEN
],
char
product_Id
[
PRODUCT_KEY_MAXLEN
],
\
char
device_SN
[
DEVICE_SN_MAXLEN
],
char
device_Id
[
DEVICE_NAME_MAXLEN
])
{
const
char
*
insertCmd
=
"insert into SubDeviceInfo (idx,isOnline, deviceMac, productId,deviceSN,deviceId) values ('%d','%d', '%s', '%s','%s','%s');"
;
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
if
(
_kk_check_subDev_exist
((
const
char
*
)
device_mac
)
==
1
)
{
printf
(
"[%s][%d] DATA ALREADY EXIST!!!
\n
"
,
__FUNCTION__
,
__LINE__
);
return
SUCCESS_RETURN
;
}
_kk_subDb_lock
();
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
ctx
->
subDevNum
,
isOnline
,
device_mac
,
product_Id
,
device_SN
,
device_Id
);
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
rc
!=
SQLITE_OK
){
printf
(
"SQL error: %s
\n
"
,
zErrMsg
);
sqlite3_free
(
zErrMsg
);
}
else
{
printf
(
"Table insert data successfully
\n
"
);
}
sqlite3_free
(
sqlCmd
);
ctx
->
subDevNum
++
;
_kk_subDb_unlock
();
return
SUCCESS_RETURN
;
}
int
kk_subDev_delete_byMac
(
char
device_mac
[
DEVICE_MAC_MAXLEN
])
{
const
char
*
deleteCmd
=
"delete from SubDeviceInfo where deviceMac = %s;"
;
char
*
sqlCmd
=
NULL
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
_kk_subDb_lock
();
sqlCmd
=
sqlite3_mprintf
(
deleteCmd
,
device_mac
);
printf
(
"Table delete data sqlCmd:%s
\n
"
,
sqlCmd
);
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
rc
!=
SQLITE_OK
){
printf
(
"SQL error: %s
\n
"
,
zErrMsg
);
sqlite3_free
(
zErrMsg
);
}
else
{
printf
(
"Table delete data successfully
\n
"
);
}
sqlite3_free
(
sqlCmd
);
_kk_subDb_unlock
();
return
SUCCESS_RETURN
;
}
int
kk_subDev_update_online
(
int
isOnline
,
const
char
*
device_mac
)
{
char
*
sqlCmd
=
NULL
;
int
len
=
0
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
kk_subDb_ctx_t
*
ctx
=
_kk_subDb_get_ctx
();
_kk_subDb_lock
();
sqlCmd
=
sqlite3_mprintf
(
"UPDATE SubDeviceInfo SET isOnline=%d WHERE device_mac=%s"
,
isOnline
,
device_mac
);
printf
(
"kk_subDev_update_online sqlCmd:%s
\n
"
,
sqlCmd
);
rc
=
sqlite3_exec
(
ctx
->
pDb
,
sqlCmd
,
NULL
,
NULL
,
&
zErrMsg
);
if
(
rc
!=
SQLITE_OK
){
printf
(
"SQL error: %s
\n
"
,
zErrMsg
);
sqlite3_free
(
zErrMsg
);
}
else
{
printf
(
"Table updata data successfully
\n
"
);
}
sqlite3_free
(
sqlCmd
);
_kk_subDb_unlock
();
return
SUCCESS_RETURN
;
}
midware/midware/dm/kk_sub_db.h
0 → 100644
View file @
47872e3f
#ifndef _KK_SUBDEV_DB_H_
#define _KK_SUBDEV_DB_H_
#include "kk_tsl_common.h"
typedef
struct
{
int
isOnline
;
int
index
;
char
device_mac
[
DEVICE_MAC_MAXLEN
];
char
product_id
[
PRODUCT_KEY_MAXLEN
];
char
device_sn
[
DEVICE_SN_MAXLEN
];
char
device_id
[
DEVICE_NAME_MAXLEN
];
}
kk_dm_subdev_t
;
int
kk_subDb_init
(
void
);
int
kk_subDev_insert_db
(
int
isOnline
,
char
device_mac
[
DEVICE_MAC_MAXLEN
],
char
product_Id
[
PRODUCT_KEY_MAXLEN
],
\
char
device_SN
[
DEVICE_SN_MAXLEN
],
char
device_Id
[
DEVICE_NAME_MAXLEN
]);
int
kk_subDev_delete_byMac
(
char
device_mac
[
DEVICE_MAC_MAXLEN
]);
int
kk_subDev_update_online
(
int
isOnline
,
const
char
*
device_mac
);
#endif
midware/midware/dm/kk_wlist_mng.c
View file @
47872e3f
...
@@ -71,7 +71,6 @@ static int kk_wlist_db_Init(void)
...
@@ -71,7 +71,6 @@ static int kk_wlist_db_Init(void)
}
}
}
}
printf
(
"linkag Database initialised
\n
"
);
//eUtils_LockUnlock(&sLock);
//eUtils_LockUnlock(&sLock);
_kk_wlist_unlock
();
_kk_wlist_unlock
();
...
@@ -106,21 +105,13 @@ static int kk_wlist_insert_db(int index,char device_mac[DEVICE_MAC_MAXLEN],char
...
@@ -106,21 +105,13 @@ static int kk_wlist_insert_db(int index,char device_mac[DEVICE_MAC_MAXLEN],char
{
{
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
;
int
len
=
0
;
int
rc
=
0
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
char
*
zErrMsg
=
0
;
kk_wlist_ctx_t
*
ctx
=
_kk_wlist_get_ctx
();
kk_wlist_ctx_t
*
ctx
=
_kk_wlist_get_ctx
();
_kk_wlist_lock
();
_kk_wlist_lock
();
len
=
strlen
(
insertCmd
)
+
DEVICE_MAC_MAXLEN
+
DEVICE_SN_MAXLEN
+
PRODUCT_KEY_MAXLEN
+
DEVICE_NAME_MAXLEN
;
sqlCmd
=
(
char
*
)
malloc
(
len
);
sqlCmd
=
sqlite3_mprintf
(
insertCmd
,
index
,
device_mac
,
product_Id
,
device_SN
,
device_Id
);
if
(
sqlCmd
==
NULL
)
{
_kk_wlist_unlock
();
return
MEMORY_NOT_ENOUGH
;
}
memset
(
sqlCmd
,
0x0
,
len
);
sprintf
(
sqlCmd
,
insertCmd
,
index
,
device_mac
,
product_Id
,
device_SN
,
device_Id
);
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
){
...
@@ -129,8 +120,7 @@ static int kk_wlist_insert_db(int index,char device_mac[DEVICE_MAC_MAXLEN],char
...
@@ -129,8 +120,7 @@ static int kk_wlist_insert_db(int index,char device_mac[DEVICE_MAC_MAXLEN],char
}
else
{
}
else
{
printf
(
"Table insert data successfully
\n
"
);
printf
(
"Table insert data successfully
\n
"
);
}
}
free
(
sqlCmd
);
sqlite3_free
(
sqlCmd
);
sqlCmd
=
NULL
;
_kk_wlist_unlock
();
_kk_wlist_unlock
();
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
@@ -139,21 +129,12 @@ static int _kk_wlist_delete_db_byMac(char device_mac[DEVICE_MAC_MAXLEN])
...
@@ -139,21 +129,12 @@ static int _kk_wlist_delete_db_byMac(char device_mac[DEVICE_MAC_MAXLEN])
{
{
const
char
*
deleteCmd
=
"delete from WhiteList where deviceMac = %s;"
;
const
char
*
deleteCmd
=
"delete from WhiteList where deviceMac = %s;"
;
char
*
sqlCmd
=
NULL
;
char
*
sqlCmd
=
NULL
;
int
len
=
0
;
int
rc
=
0
;
int
rc
=
0
;
char
*
zErrMsg
=
0
;
char
*
zErrMsg
=
0
;
kk_wlist_ctx_t
*
ctx
=
_kk_wlist_get_ctx
();
kk_wlist_ctx_t
*
ctx
=
_kk_wlist_get_ctx
();
_kk_wlist_lock
();
_kk_wlist_lock
();
len
=
strlen
(
deleteCmd
)
+
DEVICE_MAC_MAXLEN
;
sqlCmd
=
sqlite3_mprintf
(
deleteCmd
,
device_mac
);
sqlCmd
=
(
char
*
)
malloc
(
len
);
if
(
sqlCmd
==
NULL
)
{
_kk_wlist_unlock
();
return
MEMORY_NOT_ENOUGH
;
}
memset
(
sqlCmd
,
0x0
,
len
);
sprintf
(
sqlCmd
,
deleteCmd
,
device_mac
);
printf
(
"Table delete data sqlCmd:%s
\n
"
,
sqlCmd
);
printf
(
"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
);
if
(
rc
!=
SQLITE_OK
){
if
(
rc
!=
SQLITE_OK
){
...
@@ -162,8 +143,8 @@ static int _kk_wlist_delete_db_byMac(char device_mac[DEVICE_MAC_MAXLEN])
...
@@ -162,8 +143,8 @@ static int _kk_wlist_delete_db_byMac(char device_mac[DEVICE_MAC_MAXLEN])
}
else
{
}
else
{
printf
(
"Table delete data successfully
\n
"
);
printf
(
"Table delete data successfully
\n
"
);
}
}
free
(
sqlCmd
);
sqlite3_
free
(
sqlCmd
);
sqlCmd
=
NULL
;
_kk_wlist_unlock
();
_kk_wlist_unlock
();
return
SUCCESS_RETURN
;
return
SUCCESS_RETURN
;
}
}
...
...
midware/midware/midware.c
View file @
47872e3f
...
@@ -20,10 +20,23 @@
...
@@ -20,10 +20,23 @@
void
mid_cb
(
void
*
data
,
int
len
){
void
mid_cb
(
void
*
data
,
int
len
){
if
(
data
!=
NULL
){
if
(
data
!=
NULL
){
printf
(
"app2mid_cb: %s RECEIVED
\r\n
"
,
data
);
char
*
out
;
cJSON
*
json
,
*
topic
,
*
payload
;
char
*
out
;
cJSON
*
json
;
cJSON
*
topic
;
cJSON
*
payload
;
int
res
;
int
res
;
void
*
buf
=
malloc
(
len
);
memcpy
(
buf
,
data
,
len
);
res
=
dm_queue_msg_insert
((
void
*
)
buf
);
if
(
res
!=
SUCCESS_RETURN
)
{
free
(
buf
);
//return FAIL_RETURN;
}
json
=
cJSON_Parse
(
data
);
json
=
cJSON_Parse
(
data
);
if
(
!
json
)
{
if
(
!
json
)
{
printf
(
"Error before: [%s]
\n
"
,
"cJSON_Parse"
);
printf
(
"Error before: [%s]
\n
"
,
"cJSON_Parse"
);
...
@@ -31,31 +44,28 @@ void mid_cb(void* data, int len){
...
@@ -31,31 +44,28 @@ void mid_cb(void* data, int len){
else
else
{
{
topic
=
cJSON_GetObjectItem
(
json
,
"topic"
);
topic
=
cJSON_GetObjectItem
(
json
,
"topic"
);
payload
=
cJSON_GetObjectItem
(
json
,
"payload"
);
if
(
topic
!=
NULL
&&
(
strstr
(
topic
->
valuestring
,
"register_reply"
)
!=
NULL
||
printf
(
"mid_cb topic: [%s] ,payload= %s
\n
"
,
topic
->
valuestring
,
payload
->
valuestring
);
strstr
(
topic
->
valuestring
,
"add_reply"
)
!=
NULL
||
if
(
strcmp
(
payload
->
valuestring
,
"addsub"
)
==
0
){
strstr
(
topic
->
valuestring
,
"login_reply"
)
!=
NULL
||
//kk_mid_subdev_add("a1OYuSallan","allanWno8yDdsjCX15iq","");
strstr
(
topic
->
valuestring
,
"offline_reply"
)
!=
NULL
))
}
else
{
{
void
*
buf
=
malloc
(
len
);
printf
(
"This topic don't send to platform: %s
\r\n
"
,
topic
->
valuestring
);
memcpy
(
buf
,
data
,
len
);
return
;
int
res
=
dm_queue_msg_insert
((
void
*
)
buf
);
if
(
res
!=
SUCCESS_RETURN
)
{
free
(
buf
);
//return FAIL_RETURN;
}
//kk_tsl_service_property_set(topic->valuestring, payload->valuestring, strlen(payload->valuestring), NULL);
}
}
char
mac
[
DEVICE_MAC_MAXLEN
];
payload
=
cJSON_GetObjectItem
(
json
,
"payload"
);
char
mac
[
DEVICE_MAC_MAXLEN
]
=
{
0
};
res
=
dm_mgr_search_mac_by_topic
(
topic
->
valuestring
,
mac
);
res
=
dm_mgr_search_mac_by_topic
(
topic
->
valuestring
,
mac
);
if
(
res
!=
SUCCESS_RETURN
)
{
if
(
res
!=
SUCCESS_RETURN
)
{
return
;
return
;
}
}
printf
(
"dm_mgr_search_mac_by_topic mac: %s
\r\n
"
,
mac
);
cJSON
*
jsonplay
=
cJSON_Parse
(
payload
->
valuestring
);
cJSON
*
jsonplay
=
cJSON_Parse
(
payload
->
valuestring
);
cJSON_AddStringToObject
(
jsonplay
,
"mac"
,
mac
);
cJSON_AddStringToObject
(
jsonplay
,
"mac"
,
mac
);
void
*
out
=
cJSON_Print
(
jsonplay
);
void
*
out
=
cJSON_Print
(
jsonplay
);
printf
(
"dm_mgr_search_mac_by_topic out: %s
\r\n
"
,
out
);
kk_ipc_send
(
IPC_MID2PLAT
,
out
,
strlen
(
out
));
kk_ipc_send
(
IPC_MID2PLAT
,
out
,
strlen
(
out
));
free
(
out
);
free
(
out
);
cJSON_Delete
(
jsonplay
);
cJSON_Delete
(
jsonplay
);
...
@@ -69,7 +79,7 @@ void mid_cb(void* data, int len){
...
@@ -69,7 +79,7 @@ void mid_cb(void* data, int len){
void
mid2p_cb
(
void
*
data
,
int
len
){
void
mid2p_cb
(
void
*
data
,
int
len
){
if
(
data
!=
NULL
){
if
(
data
!=
NULL
){
printf
(
"mid2plat_cb: %s RECEIVED
\r\n
"
,
data
);
//
printf("mid2plat_cb: %s RECEIVED \r\n", data);
void
*
buf
=
malloc
(
len
);
void
*
buf
=
malloc
(
len
);
memcpy
(
buf
,
data
,
len
);
memcpy
(
buf
,
data
,
len
);
int
res
=
dm_queue_msg_insert2
((
void
*
)
buf
);
int
res
=
dm_queue_msg_insert2
((
void
*
)
buf
);
...
@@ -86,7 +96,13 @@ void kk_platMsg_handle(void* data){
...
@@ -86,7 +96,13 @@ void kk_platMsg_handle(void* data){
char
*
out
;
char
*
out
;
int
res
=
0
;
int
res
=
0
;
cJSON
*
json
,
*
method
,
*
params
;
cJSON
*
json
;
cJSON
*
method
;
cJSON
*
params
;
cJSON
*
jsonPay
;
cJSON
*
proType
;
cJSON
*
proCode
;
cJSON
*
mac
;
json
=
cJSON_Parse
(
data
);
json
=
cJSON_Parse
(
data
);
if
(
!
json
)
{
if
(
!
json
)
{
...
@@ -94,32 +110,23 @@ void kk_platMsg_handle(void* data){
...
@@ -94,32 +110,23 @@ void kk_platMsg_handle(void* data){
}
}
else
{
else
{
method
=
cJSON_GetObjectItem
(
json
,
"method"
);
method
=
cJSON_GetObjectItem
(
json
,
"method"
);
mac
=
cJSON_GetObjectItem
(
json
,
"mac"
);
if
(
method
!=
NULL
&&
strcmp
(
method
->
valuestring
,
"thing.topo.add"
)
==
0
){
if
(
method
!=
NULL
&&
strcmp
(
method
->
valuestring
,
"thing.topo.add"
)
==
0
){
cJSON
*
jsonPay
,
*
proType
,
*
proCode
,
*
mac
;
params
=
cJSON_GetObjectItem
(
json
,
"params"
);
jsonPay
=
cJSON_GetObjectItem
(
json
,
"params"
);
jsonPay
=
cJSON_Parse
(
params
->
valuestring
);
proType
=
cJSON_GetObjectItem
(
jsonPay
,
"productType"
);
proCode
=
cJSON_GetObjectItem
(
jsonPay
,
"productCode"
);
if
(
!
jsonPay
)
{
printf
(
"productType productCode mac: [%s][%s] [%s]
\n
"
,
proType
->
valuestring
,
proCode
->
valuestring
,
mac
->
valuestring
);
printf
(
"Error before: [%s]
\n
"
,
"cJSON_Parse"
);
kk_set_tsl_by_productKey
(
proType
->
valuestring
,
"model.json"
);
}
else
{
kk_mid_subdev_add
(
proType
->
valuestring
,
proCode
->
valuestring
,
""
,
mac
->
valuestring
);
proType
=
cJSON_GetObjectItem
(
jsonPay
,
"productType"
);
proCode
=
cJSON_GetObjectItem
(
jsonPay
,
"productCode"
);
mac
=
cJSON_GetObjectItem
(
jsonPay
,
"mac"
);
printf
(
"productType productCode : [%s][%s]
\n
"
,
proType
,
proCode
);
kk_set_tsl_by_productKey
(
proCode
->
valuestring
,
"model.json"
);
kk_mid_subdev_add
(
proType
->
valuestring
,
proCode
->
valuestring
,
""
,
mac
->
valuestring
);
cJSON_Delete
(
jsonPay
);
}
}
else
if
(
method
!=
NULL
&&
strcmp
(
method
->
valuestring
,
"thing.event.property.post"
)
==
0
){
}
else
if
(
method
!=
NULL
&&
mac
!=
NULL
){
cJSON
*
mac
;
printf
(
"save property and send to cloud
\n
"
);
mac
=
cJSON_GetObjectItem
(
json
,
"mac"
);
kk_tsl_property_set_byMac
(
mac
->
valuestring
,
data
,
strlen
(
data
)
+
1
);
//kk_tsl_service_property_set(topic->valuestring, data, strlen(data), NULL);
}
else
{
}
else
{
printf
(
"kk_platMsg_handle data: [%s]
\n
"
,
data
);
printf
(
"kk_platMsg_handle data:
don't handle it
[%s]
\n
"
,
data
);
//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);
}
}
...
@@ -275,25 +282,19 @@ int main(const int argc, const char **argv)
...
@@ -275,25 +282,19 @@ int main(const int argc, const char **argv)
IOT_Linkkit_Close
(
mid_ctx
->
master_devid
);
IOT_Linkkit_Close
(
mid_ctx
->
master_devid
);
return
-
1
;
return
-
1
;
}
}
char
buf
[
100
]
=
{
0
};
int
ct
=
0
;
int
ct
=
0
;
for
(;;)
{
for
(;;)
{
usleep
(
4000000
);
usleep
(
200000
);
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
\"
,
\"
deviceType
\"
:
\"
1
\"
,
\"
deviceCode
\"
:
\"
2
\"
,
\"
productType
\"
:
\"
3
\"
,
\"
productCode
\"
:
\"
4
\"
}}"
;
kk_set_tsl_by_productKey
(
"a1OYuSallan"
,
"model.json"
);
kk_platMsg_handle
(
buf
);
kk_mid_subdev_add
(
"a1OYuSallan"
,
"allanWno8yDdsjCX15iq"
,
""
,
"aabbccddeeff1122"
);
//kk_set_tsl_by_productKey("a1OYuSallan","model.json");
//kk_mid_subdev_add("a1OYuSallan","allanWno8yDdsjCX15iq","","aabbccddeeff1122");
}
}
/*memset(buf, 0, 100);
sprintf(buf , "send data app time = %d\n", getSysTime());
printf("M2A: %s", buf);
kk_ipc_send(IPC_MID2APP, buf, strlen(buf)+1);
memset(buf, 0, 100);
sprintf(buf, "send data to plat time = %d\n", getSysTime());
printf("M2P: %s", buf);
kk_ipc_send(IPC_MID2PLAT, buf, strlen(buf) + 1);*/
}
}
}
}
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