Commit 17c5ff55 authored by chen.weican's avatar chen.weican

【修改内容】子设备数据库添加isAuth和devType字段

【提交人】陈伟灿
parent 7af7906d
......@@ -7,6 +7,7 @@
#include "klist.h"
#include "cJSON.h"
#include "kk_dm_msg.h"
#include "kk_dm_mng.h"
#include "kk_dm_api.h"
#include "kk_tsl_api.h"
#include "com_api.h"
......@@ -1679,7 +1680,7 @@ int kk_mid_subdev_add(char productType[PRODUCT_TYPE_MAXLEN], char productCode[PR
}
INFO_PRINT("subdev open susseed, devid = %d\n", devid);
res = kk_subDev_insert_db(0,productType,productCode,deviceCode,fatherMac,"1.1.0");
res = kk_subDev_insert_db(KK_DM_DEVICE_SUBDEV,productCode,deviceCode,fatherMac,"1.1.0");
if (res != SUCCESS_RETURN) {
return FAIL_RETURN;
}
......
......@@ -49,7 +49,15 @@ static int kk_subDev_db_Init(void)
}
INFO_PRINT("sub db Database opened\n");
{
const char *pSubDevTable = "CREATE TABLE IF NOT EXISTS SubDeviceInfo(idx INTEGER,isOnline INTEGER,productType varchar(33),productCode varchar(33),deviceCode varchar(33),fatherMac varchar(17),version varchar(33))";
const char *pSubDevTable = "CREATE TABLE IF NOT EXISTS SubDeviceInfo( \
idx INTEGER, \
isOnline INTEGER, \
productCode varchar(33), \
deviceCode varchar(33), \
fatherMac varchar(17), \
version varchar(33), \
isAuth INTEGER, \
devType INTEGER)";
char *pcErr;
......@@ -82,8 +90,8 @@ static int _kk_load_subDevice(void)
INFO_PRINT("_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);
res = dm_mgr_subdev_create("",sqlite3_column_text(stmt, 2),sqlite3_column_text(stmt, 3),
sqlite3_column_text(stmt, 4),&devId);
if(res != SUCCESS_RETURN){
ERROR_PRINT("[%s][%d]dm_mgr_subdev_create FAIL!!!\n",__FUNCTION__,__LINE__);
......@@ -93,7 +101,7 @@ static int _kk_load_subDevice(void)
}
usleep(100000);
iotx_dm_subscribe(devId);
kk_dm_ota_report_version(devId,sqlite3_column_text(stmt, 6));//version
kk_dm_ota_report_version(devId,sqlite3_column_text(stmt, 5));//version
//usleep(100000);
}
sqlite3_finalize(stmt);
......@@ -120,7 +128,7 @@ int kk_subDb_init(void)
_kk_load_subDevice();
return SUCCESS_RETURN;
}
static int _kk_check_subDev_exist(const char* device_mac)
static int _kk_check_subDev_exist(const char* deviceCode)
{
int isExist = 0;
sqlite3_stmt *stmt;
......@@ -131,8 +139,8 @@ static int _kk_check_subDev_exist(const char* device_mac)
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){
pmac = sqlite3_column_text(stmt, 4);
if(!strcmp(device_mac,pmac))
pmac = sqlite3_column_text(stmt, 3);
if(!strcmp(deviceCode,pmac))
{
isExist = 1;
break;
......@@ -147,10 +155,11 @@ static int _kk_check_subDev_exist(const char* device_mac)
}
int kk_subDev_insert_db(int isOnline,char productType[PRODUCT_TYPE_MAXLEN],char productCode[PRODUCT_CODE_MAXLEN], \
int kk_subDev_insert_db(int devType,char productCode[PRODUCT_CODE_MAXLEN], \
char deviceCode[DEVICE_CODE_MAXLEN],char fatherMac[DEVICE_MAC_MAXLEN],char version[DEVICE_VERSION_MAXLEN])
{
const char *insertCmd = "insert into SubDeviceInfo (idx,isOnline, productType,productCode,deviceCode,fatherMac,version) values ('%d','%d', '%s', '%s','%s','%s','%s');";
const char *insertCmd = "insert into SubDeviceInfo (idx,isOnline,productCode,deviceCode,fatherMac,version,isAuth,devType) \
values ('%d','%d', '%s','%s','%s','%s','%d','%d');";
char *sqlCmd = NULL;
int rc = 0;
char *zErrMsg = 0;
......@@ -163,7 +172,7 @@ int kk_subDev_insert_db(int isOnline,char productType[PRODUCT_TYPE_MAXLEN],char
return SUCCESS_RETURN;
}
_kk_subDb_lock();
sqlCmd = sqlite3_mprintf(insertCmd,ctx->subDevNum,isOnline,productType,productCode,deviceCode,fatherMac,version);
sqlCmd = sqlite3_mprintf(insertCmd,ctx->subDevNum,0,productCode,deviceCode,fatherMac,version,0,devType);
rc = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg);
if( rc != SQLITE_OK ){
......@@ -210,7 +219,7 @@ int kk_subDev_update_online(int isOnline,const char *device_mac)
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);
sqlCmd = sqlite3_mprintf("UPDATE SubDeviceInfo SET isOnline=%d WHERE deviceCode=%s",isOnline,device_mac);
INFO_PRINT("kk_subDev_update_online sqlCmd:%s\n",sqlCmd);
rc = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg);
if( rc != SQLITE_OK ){
......@@ -223,5 +232,28 @@ int kk_subDev_update_online(int isOnline,const char *device_mac)
_kk_subDb_unlock();
return SUCCESS_RETURN;
}
int kk_subDev_update_auth(int isAuth,const char *deviceCode)
{
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 isAuth=%d WHERE deviceCode=%s",isAuth,deviceCode);
INFO_PRINT("kk_subDev_update_online sqlCmd:%s\n",sqlCmd);
rc = sqlite3_exec(ctx->pDb, sqlCmd, NULL, NULL, &zErrMsg);
if( rc != SQLITE_OK ){
ERROR_PRINT("SQL error: %s\n", zErrMsg);
sqlite3_free(zErrMsg);
}else{
INFO_PRINT("Table updata data successfully\n");
}
sqlite3_free(sqlCmd);
_kk_subDb_unlock();
return SUCCESS_RETURN;
}
......
#ifndef _KK_SUBDEV_DB_H_
#define _KK_SUBDEV_DB_H_
#include "kk_tsl_common.h"
typedef struct {
int isOnline;
int index;
char productType[PRODUCT_TYPE_MAXLEN];
char productCode[PRODUCT_CODE_MAXLEN];
char deviceCode[DEVICE_CODE_MAXLEN];
char fatherMac[DEVICE_MAC_MAXLEN];
} kk_dm_subdev_t;
int kk_subDb_init(void);
int kk_subDev_insert_db(int isOnline,char productType[PRODUCT_TYPE_MAXLEN],char productCode[PRODUCT_CODE_MAXLEN], \
char deviceCode[DEVICE_CODE_MAXLEN],char fatherMac[DEVICE_MAC_MAXLEN],char version[DEVICE_VERSION_MAXLEN]);
int kk_subDev_insert_db(int devType,char productCode[PRODUCT_CODE_MAXLEN], \
char deviceCode[DEVICE_CODE_MAXLEN],char fatherMac[DEVICE_MAC_MAXLEN],char version[DEVICE_VERSION_MAXLEN]);
int kk_subDev_delete_byMac(char device_mac[DEVICE_MAC_MAXLEN]);
int kk_subDev_update_online(int isOnline,const char *device_mac);
int kk_subDev_update_auth(int isAuth,const char *deviceCode);
#endif
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment