add web
This commit is contained in:
parent
fb8ee6a00a
commit
972c23424f
@ -316,5 +316,11 @@ struct Param_59 {
|
|||||||
std::string straxis;
|
std::string straxis;
|
||||||
Param_59() : mMode(0),DataNodeNo(""),straxis(""){};
|
Param_59() : mMode(0),DataNodeNo(""),straxis(""){};
|
||||||
};
|
};
|
||||||
|
struct Param_60 {
|
||||||
|
std::string fileName;
|
||||||
|
int product;
|
||||||
|
std::vector<std::string> dataNodeNo;
|
||||||
|
Param_60() : fileName(""),product(0){};
|
||||||
|
};
|
||||||
|
|
||||||
#endif // PARAMETER_DEFINATION_HPP_
|
#endif // PARAMETER_DEFINATION_HPP_
|
||||||
|
|||||||
@ -37,7 +37,7 @@ void SqliteDB::SqliteInit(const char *pDbName) {
|
|||||||
|
|
||||||
//创建传感器信息存储表
|
//创建传感器信息存储表
|
||||||
memset(sql_exec, 0, 2048);
|
memset(sql_exec, 0, 2048);
|
||||||
sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);",
|
sprintf(sql_exec, "create table if not exists %s(%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s,%s);",
|
||||||
T_SENSOR_INFO(TNAME),
|
T_SENSOR_INFO(TNAME),
|
||||||
T_SENSOR_INFO(DATANODENO),
|
T_SENSOR_INFO(DATANODENO),
|
||||||
T_SENSOR_INFO(DATANODENAME),
|
T_SENSOR_INFO(DATANODENAME),
|
||||||
@ -82,7 +82,8 @@ void SqliteDB::SqliteInit(const char *pDbName) {
|
|||||||
T_SENSOR_INFO(RSSI),
|
T_SENSOR_INFO(RSSI),
|
||||||
"UpdateFlag",
|
"UpdateFlag",
|
||||||
"LooseValue",
|
"LooseValue",
|
||||||
"batteryPower");
|
"batteryPower",
|
||||||
|
"upgradeStatus");
|
||||||
CreateTable(sql_exec);
|
CreateTable(sql_exec);
|
||||||
|
|
||||||
int iRet = GetTableRows(" sqlite_master "," name = 't_sensor_info' and sql LIKE '%LooseValue%' ");
|
int iRet = GetTableRows(" sqlite_master "," name = 't_sensor_info' and sql LIKE '%LooseValue%' ");
|
||||||
@ -102,6 +103,10 @@ void SqliteDB::SqliteInit(const char *pDbName) {
|
|||||||
if(iRet == 0){
|
if(iRet == 0){
|
||||||
CreateTable("ALTER TABLE t_sensor_info ADD COLUMN 'NodeWaveSend'");
|
CreateTable("ALTER TABLE t_sensor_info ADD COLUMN 'NodeWaveSend'");
|
||||||
}
|
}
|
||||||
|
iRet = GetTableRows(" sqlite_master "," name = 't_sensor_info' and sql LIKE '%upgradeStatus%' ");
|
||||||
|
if(iRet == 0){
|
||||||
|
CreateTable("ALTER TABLE t_sensor_info ADD COLUMN 'upgradeStatus'");
|
||||||
|
}
|
||||||
|
|
||||||
memset(sql_exec, 0, 2048);
|
memset(sql_exec, 0, 2048);
|
||||||
sprintf(sql_exec,"update t_sensor_info set MeasurementID = dataNodeNo where MeasurementID IS NULL ;");
|
sprintf(sql_exec,"update t_sensor_info set MeasurementID = dataNodeNo where MeasurementID IS NULL ;");
|
||||||
@ -115,6 +120,11 @@ void SqliteDB::SqliteInit(const char *pDbName) {
|
|||||||
memset(sql_exec, 0, 2048);
|
memset(sql_exec, 0, 2048);
|
||||||
sprintf(sql_exec,"update t_sensor_info set NodeWaveSend = '0,0,0' where NodeWaveSend IS NULL ;");
|
sprintf(sql_exec,"update t_sensor_info set NodeWaveSend = '0,0,0' where NodeWaveSend IS NULL ;");
|
||||||
UpdateTableData(sql_exec);
|
UpdateTableData(sql_exec);
|
||||||
|
|
||||||
|
sprintf(sql_exec,"update t_sensor_info set upgradeStatus = '0' where upgradeStatus IS NULL ;");
|
||||||
|
UpdateTableData(sql_exec);
|
||||||
|
sprintf(sql_exec,"update t_sensor_info set upgradeStatus = '0' where upgradeStatus = '' ;");
|
||||||
|
UpdateTableData(sql_exec);
|
||||||
|
|
||||||
//创建传感器数据存储表
|
//创建传感器数据存储表
|
||||||
memset(sql_exec, 0, 2048);
|
memset(sql_exec, 0, 2048);
|
||||||
@ -230,6 +240,9 @@ void SqliteDB::SqliteInit(const char *pDbName) {
|
|||||||
T_BATTERY_INFO(BATTERYREMAIN),
|
T_BATTERY_INFO(BATTERYREMAIN),
|
||||||
T_BATTERY_INFO(TIMESTAMP));
|
T_BATTERY_INFO(TIMESTAMP));
|
||||||
CreateTable(sql_exec);
|
CreateTable(sql_exec);
|
||||||
|
|
||||||
|
execute_sql_file("/opt/configenv/firmware_upgrade.sql");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void SqliteDB::Createtable(const char *ptableName) {
|
void SqliteDB::Createtable(const char *ptableName) {
|
||||||
@ -688,7 +701,51 @@ int SqliteDB::UpdateTableDataOneColumn(const char *tablename, const char *column
|
|||||||
}
|
}
|
||||||
return iRet;
|
return iRet;
|
||||||
}
|
}
|
||||||
|
int callback(void *data, int argc, char **argv, char **azColName) {
|
||||||
|
// 如果需要处理查询结果,可以在此回调函数中进行操作
|
||||||
|
for (int i = 0; i < argc; i++) {
|
||||||
|
zlog_error(zct,"%s = %s", azColName[i], argv[i] ? argv[i] : "NULL");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
int SqliteDB::execute_sql_file(const char *filename) {
|
||||||
|
FILE *file = fopen(filename, "r");
|
||||||
|
if (file == NULL) {
|
||||||
|
zlog_error(zct,"无法打开 SQL 文件");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 获取文件大小
|
||||||
|
fseek(file, 0, SEEK_END);
|
||||||
|
long file_size = ftell(file);
|
||||||
|
fseek(file, 0, SEEK_SET);
|
||||||
|
|
||||||
|
// 为文件内容分配内存
|
||||||
|
char *sql = (char *)malloc(file_size + 1);
|
||||||
|
if (sql == NULL) {
|
||||||
|
zlog_error(zct,"内存分配失败");
|
||||||
|
fclose(file);
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
|
// 读取文件内容到内存
|
||||||
|
fread(sql, 1, file_size, file);
|
||||||
|
sql[file_size] = '\0'; // 确保字符串结尾
|
||||||
|
|
||||||
|
fclose(file);
|
||||||
|
|
||||||
|
// 执行 SQL 文件中的语句
|
||||||
|
char *err_msg = NULL;
|
||||||
|
if (sqlite3_exec(GetDbHandle(), sql, callback, 0, &err_msg) != SQLITE_OK) {
|
||||||
|
zlog_error(zct, "执行 SQL 错误: %s", err_msg);
|
||||||
|
sqlite3_free(err_msg);
|
||||||
|
free(sql);
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
free(sql);
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
int SqliteDB::InsertData(const char *tablename, const char *insertValues, int replace, bool expandable) {
|
int SqliteDB::InsertData(const char *tablename, const char *insertValues, int replace, bool expandable) {
|
||||||
char *msg;
|
char *msg;
|
||||||
int iRet = 0;
|
int iRet = 0;
|
||||||
|
|||||||
@ -59,6 +59,7 @@ public:
|
|||||||
int UpdateTableData(const char *tablename, const char *updateColumn, const char *whereCond);
|
int UpdateTableData(const char *tablename, const char *updateColumn, const char *whereCond);
|
||||||
int UpdateNodeNameData(const char *tablename, const char *updateColumn, const char *whereCond);
|
int UpdateNodeNameData(const char *tablename, const char *updateColumn, const char *whereCond);
|
||||||
int UpdateTableDataOneColumn(const char *tablename, const char *columnName, const char *columnValue, const char *whereColName = NULL, const char *whereColValue = NULL);
|
int UpdateTableDataOneColumn(const char *tablename, const char *columnName, const char *columnValue, const char *whereColName = NULL, const char *whereColValue = NULL);
|
||||||
|
int execute_sql_file(const char *filename);
|
||||||
int UpdateTableData(const char *directSql);
|
int UpdateTableData(const char *directSql);
|
||||||
int InsertData(const char *tablename, const char *insertValues, int replace = 0, bool expandalbe = false);
|
int InsertData(const char *tablename, const char *insertValues, int replace = 0, bool expandalbe = false);
|
||||||
int InsertData(const char *insertSql);
|
int InsertData(const char *insertSql);
|
||||||
|
|||||||
@ -65,6 +65,7 @@ public:
|
|||||||
std::string JsonCmd_Cgi_57(Param_57 ¶m);
|
std::string JsonCmd_Cgi_57(Param_57 ¶m);
|
||||||
std::string JsonCmd_Cgi_58(Param_58 ¶m);
|
std::string JsonCmd_Cgi_58(Param_58 ¶m);
|
||||||
std::string JsonCmd_Cgi_59(Param_59 ¶m);
|
std::string JsonCmd_Cgi_59(Param_59 ¶m);
|
||||||
|
std::string JsonCmd_Cgi_60(Param_60 ¶m);
|
||||||
std::string JsonCmd_Cgi_default();
|
std::string JsonCmd_Cgi_default();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|||||||
@ -109,6 +109,7 @@ std::string JsonData::JsonCmd_Cgi_26(Param_26 ¶m) {
|
|||||||
jsSensorData["MeasurementID"] = arrRes[j][44];
|
jsSensorData["MeasurementID"] = arrRes[j][44];
|
||||||
jsSensorData["battery"] = arrRes[j][43];
|
jsSensorData["battery"] = arrRes[j][43];
|
||||||
jsSensorData["nodeWaveSend"] = arrRes[j][45];
|
jsSensorData["nodeWaveSend"] = arrRes[j][45];
|
||||||
|
jsSensorData["upgradeStatus"] = arrRes[j][46];
|
||||||
jsArray.append(jsSensorData);
|
jsArray.append(jsSensorData);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
@ -513,9 +513,10 @@ std::string JsonData::JsonCmd_Cgi_58(Param_58 ¶m) {
|
|||||||
jsonVal["success"] = true;
|
jsonVal["success"] = true;
|
||||||
jsonVal["message"] = "";
|
jsonVal["message"] = "";
|
||||||
int ret = 0;
|
int ret = 0;
|
||||||
|
std::string error_msg = "";
|
||||||
if (param.mMode == 1)
|
if (param.mMode == 1)
|
||||||
{
|
{
|
||||||
ret = scheduler::instance().Config(param.featureInterVal,param.waveInterVal,param.featureInterTime,param.waveInterTime,param.maxSensorNum);
|
ret = scheduler::instance().Config(param.featureInterVal,param.waveInterVal,param.featureInterTime,param.waveInterTime,param.maxSensorNum,error_msg);
|
||||||
}else if (param.mMode == 0)
|
}else if (param.mMode == 0)
|
||||||
{
|
{
|
||||||
ret = scheduler::instance().GetScheduleConfig(param.featureInterVal,param.waveInterVal,param.featureInterTime,param.waveInterTime,param.maxSensorNum);
|
ret = scheduler::instance().GetScheduleConfig(param.featureInterVal,param.waveInterVal,param.featureInterTime,param.waveInterTime,param.maxSensorNum);
|
||||||
@ -529,8 +530,9 @@ std::string JsonData::JsonCmd_Cgi_58(Param_58 ¶m) {
|
|||||||
jsBody["maxSensorNum"] = param.maxSensorNum;
|
jsBody["maxSensorNum"] = param.maxSensorNum;
|
||||||
}else{
|
}else{
|
||||||
jsonVal["success"] = false;
|
jsonVal["success"] = false;
|
||||||
jsonVal["message"] = "保存失败!";
|
jsonVal["message"] = error_msg;
|
||||||
}
|
}
|
||||||
|
jsonVal["content"] = jsBody;
|
||||||
return show_value_.write(jsonVal);
|
return show_value_.write(jsonVal);
|
||||||
}
|
}
|
||||||
std::string JsonData::JsonCmd_Cgi_59(Param_59 ¶m) {
|
std::string JsonData::JsonCmd_Cgi_59(Param_59 ¶m) {
|
||||||
@ -546,7 +548,7 @@ std::string JsonData::JsonCmd_Cgi_59(Param_59 ¶m) {
|
|||||||
if (param.mMode == 1)
|
if (param.mMode == 1)
|
||||||
{
|
{
|
||||||
sprintf(table_name,"t_dataStatic_%s",param.DataNodeNo.c_str());
|
sprintf(table_name,"t_dataStatic_%s",param.DataNodeNo.c_str());
|
||||||
interval = 400;
|
interval = 10;
|
||||||
|
|
||||||
snprintf(sql, sizeof(sql),
|
snprintf(sql, sizeof(sql),
|
||||||
"WITH CTE AS ("
|
"WITH CTE AS ("
|
||||||
@ -564,7 +566,7 @@ std::string JsonData::JsonCmd_Cgi_59(Param_59 ¶m) {
|
|||||||
}else if (param.mMode == 2)
|
}else if (param.mMode == 2)
|
||||||
{
|
{
|
||||||
sprintf(table_name,"t_data_waveSend");
|
sprintf(table_name,"t_data_waveSend");
|
||||||
interval = 7300;
|
interval = 20;
|
||||||
snprintf(sql, sizeof(sql),
|
snprintf(sql, sizeof(sql),
|
||||||
"WITH CTE AS ("
|
"WITH CTE AS ("
|
||||||
" SELECT timestamp, "
|
" SELECT timestamp, "
|
||||||
@ -607,3 +609,53 @@ std::string JsonData::JsonCmd_Cgi_59(Param_59 ¶m) {
|
|||||||
return show_value_.write(jsonVal);
|
return show_value_.write(jsonVal);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
std::string JsonData::JsonCmd_Cgi_60(Param_60 ¶m){
|
||||||
|
Json::Value jsonVal;
|
||||||
|
jsonVal.clear();
|
||||||
|
Json::Value jsBody;
|
||||||
|
jsonVal[JSON_FIELD_CMD] = "60";
|
||||||
|
jsonVal["success"] = true;
|
||||||
|
jsonVal["message"] = "";
|
||||||
|
char file_path[64]={0};
|
||||||
|
char cmd[64]={0};
|
||||||
|
sprintf(cmd,"mv /opt/%s /opt/DataNode/",param.fileName.c_str());
|
||||||
|
system(cmd);
|
||||||
|
sprintf(file_path,"/opt/DataNodeNo/%s",file_path);
|
||||||
|
FILE * pFile=NULL;
|
||||||
|
size_t thisSize = 0;
|
||||||
|
char *buffer=NULL;
|
||||||
|
pFile = fopen (file_path,"rb");
|
||||||
|
if (pFile==NULL) zlog_error(zct,"Error opening file");
|
||||||
|
else
|
||||||
|
{
|
||||||
|
while (fgetc(pFile) != EOF) {
|
||||||
|
++thisSize;
|
||||||
|
}
|
||||||
|
rewind(pFile);
|
||||||
|
buffer = (char*)malloc(thisSize);
|
||||||
|
fread (buffer, sizeof (char), thisSize, pFile);
|
||||||
|
fclose (pFile);
|
||||||
|
}
|
||||||
|
char head[9]={0};
|
||||||
|
int packgeSize = 0;
|
||||||
|
memcpy(head,buffer,8);
|
||||||
|
packgeSize = BUILD_UINT32(buffer[8],buffer[9],buffer[10],buffer[11]);
|
||||||
|
zlog_info(zct,"head = %s\n",head);
|
||||||
|
zlog_info(zct,"packgeSize = %d\n",packgeSize);
|
||||||
|
unsigned char sum = 0x00;
|
||||||
|
for(size_t i = 13; i < thisSize;i++){
|
||||||
|
sum += buffer[i];
|
||||||
|
}
|
||||||
|
printf("sum = %x\n",sum % 256);
|
||||||
|
return show_value_.write(jsonVal);
|
||||||
|
char localtimestamp[32] = {0};
|
||||||
|
GetTimeNet(localtimestamp, 1);
|
||||||
|
for (size_t i = 0; i < param.dataNodeNo.size(); i++)
|
||||||
|
{
|
||||||
|
//char insertSql[1024] = {0};
|
||||||
|
|
||||||
|
//sprintf(insertSql, " '%s','%s','%d','%d','%d','%d','%d','%d','%d'",param.dataNodeNo[i].c_str(),localtimestamp);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|||||||
@ -48,7 +48,8 @@ enum WebCommand {
|
|||||||
kVelocityFreqDomain = 56,
|
kVelocityFreqDomain = 56,
|
||||||
kEnableZigbeePower = 57,
|
kEnableZigbeePower = 57,
|
||||||
kSchedulingConfiguration = 58,
|
kSchedulingConfiguration = 58,
|
||||||
kLostRecords = 59
|
kLostRecords = 59,
|
||||||
|
kTransducerUpgrade = 60
|
||||||
};
|
};
|
||||||
|
|
||||||
class LocalServer {
|
class LocalServer {
|
||||||
|
|||||||
@ -400,6 +400,21 @@ std::string LocalServer::HandleCgi_cmd(std::string &pData) {
|
|||||||
std::string data = jd.JsonCmd_Cgi_59(param);
|
std::string data = jd.JsonCmd_Cgi_59(param);
|
||||||
return data;
|
return data;
|
||||||
}break;
|
}break;
|
||||||
|
case kTransducerUpgrade:{
|
||||||
|
JsonData jd;
|
||||||
|
Param_60 param;
|
||||||
|
param.fileName = recvBody["fileName"].asString();
|
||||||
|
param.product = recvBody["product"].asInt();
|
||||||
|
Json::Value recvDataNodeNo = recvBody["DataNodeNo"];
|
||||||
|
if (recvDataNodeNo.size() > 0)
|
||||||
|
{
|
||||||
|
for (size_t i = 0; i < recvDataNodeNo.size(); i++) {
|
||||||
|
param.dataNodeNo.push_back(recvDataNodeNo[i].asString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
std::string data = jd.JsonCmd_Cgi_60(param);
|
||||||
|
return data;
|
||||||
|
}break;
|
||||||
default:
|
default:
|
||||||
JsonData jd;
|
JsonData jd;
|
||||||
std::string data = jd.JsonCmd_Cgi_default();
|
std::string data = jd.JsonCmd_Cgi_default();
|
||||||
|
|||||||
@ -45,12 +45,11 @@ int Uart::UartRecv(int fd, char srcshow, char *buffer) {
|
|||||||
ret = read_data(fd, buff, BUF_LENGTH, 10);
|
ret = read_data(fd, buff, BUF_LENGTH, 10);
|
||||||
if (ret <= 0) {
|
if (ret <= 0) {
|
||||||
timeoutflag++;
|
timeoutflag++;
|
||||||
if (timeoutflag > 300) {
|
if (timeoutflag > 100) {
|
||||||
DealReviveDuration(wave_shortAddr);
|
DealReviveDuration(wave_shortAddr);
|
||||||
zlog_info(zct, "===============0x9999 timeout= %d offSize = %d===============", timeoutflag, offSize);
|
zlog_info(zct, "===============0x9999 timeout= %d offSize = %d===============", timeoutflag, offSize);
|
||||||
zlog_info(zct, "0x9999 timeout %d===============Size = %d", timeoutflag, offSize);
|
zlog_info(zct, "0x9999 timeout %d===============Size = %d", timeoutflag, offSize);
|
||||||
FindRecvPackage(offSize, mUartRecvTmpBuf, head);
|
FindRecvPackage(offSize, mUartRecvTmpBuf, head);
|
||||||
GlobalConfig::Zigbee_G.MyAddr = 0x8888;
|
|
||||||
now_task = -1;
|
now_task = -1;
|
||||||
timeoutflag = 0;
|
timeoutflag = 0;
|
||||||
offSize = 0;
|
offSize = 0;
|
||||||
@ -275,11 +274,11 @@ int Uart::ZigbeeTest() {
|
|||||||
|
|
||||||
void Uart::WriteToUart(const char *strSend, int pLen) {
|
void Uart::WriteToUart(const char *strSend, int pLen) {
|
||||||
if (!bUpdate) {
|
if (!bUpdate) {
|
||||||
zlog_info(zct, "Write To Uart Start:");
|
printf( "Write To Uart Start:\n");
|
||||||
for (int i = 0; i < pLen; i++) {
|
for (int i = 0; i < pLen; i++) {
|
||||||
printf("%02X ", *(strSend + i) & 0xFF);
|
printf("%02X ", *(strSend + i) & 0xFF);
|
||||||
}
|
}
|
||||||
zlog_info(zct, "\nWrite To Uart End.");
|
printf( "\nWrite To Uart End.\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
write_data(fd, (char *)strSend, pLen);
|
write_data(fd, (char *)strSend, pLen);
|
||||||
@ -371,7 +370,6 @@ int Uart::DealAskTask(uint16_t ushortAdd){
|
|||||||
ModifyDistAddr(ushortAdd);
|
ModifyDistAddr(ushortAdd);
|
||||||
int next_duration = 0;
|
int next_duration = 0;
|
||||||
int taskID = scheduler::instance().StartSchedule(ushortAdd,next_duration);
|
int taskID = scheduler::instance().StartSchedule(ushortAdd,next_duration);
|
||||||
taskID = 4;
|
|
||||||
ScheduleTask scheduleTask;
|
ScheduleTask scheduleTask;
|
||||||
zlog_info(zct, "taskID = %d ", taskID);
|
zlog_info(zct, "taskID = %d ", taskID);
|
||||||
if (taskID == kScheduleEigenValue) //1.特征值
|
if (taskID == kScheduleEigenValue) //1.特征值
|
||||||
@ -428,7 +426,6 @@ int Uart::DealReviveDuration(uint16_t ushortAdd){
|
|||||||
|
|
||||||
ScheduleTask scheduleTask;
|
ScheduleTask scheduleTask;
|
||||||
uint16_t next_duration = scheduler::instance().GetNextDuration(ushortAdd);
|
uint16_t next_duration = scheduler::instance().GetNextDuration(ushortAdd);
|
||||||
next_duration = 60;
|
|
||||||
zlog_info(zct, "next_duration = %d ", next_duration);
|
zlog_info(zct, "next_duration = %d ", next_duration);
|
||||||
scheduleTask.cmd = REVIVE_DURATION;
|
scheduleTask.cmd = REVIVE_DURATION;
|
||||||
scheduleTask.shortAddr = ushortAdd;
|
scheduleTask.shortAddr = ushortAdd;
|
||||||
@ -958,7 +955,7 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
if ((mPackgeIndex == -1 || (unsigned int)UartRecvBuf[i + 6] == 0) && (!bUpdatePre && !bUpdateconfig)) {
|
if ((mPackgeIndex == -1 || (unsigned int)UartRecvBuf[i + 6] == 0) && (!bUpdatePre && !bUpdateconfig)) {
|
||||||
mPackgeIndex = UartRecvBuf[i + 6] & 0xFF;
|
mPackgeIndex = UartRecvBuf[i + 6] & 0xFF;
|
||||||
} else if ((unsigned int)mPackgeIndex == (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && (!bUpdatePre && !bUpdateconfig) && command != 2) {
|
} else if ((unsigned int)mPackgeIndex == (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && (!bUpdatePre && !bUpdateconfig) && command != 2) {
|
||||||
zlog_error(zct, "mPackgeIndex same index1:%d,index2:%02d ShortAddr :%s ", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str());
|
zlog_warn(zct, "mPackgeIndex same index1:%d,index2:%02d ShortAddr :%s ", mPackgeIndex, UartRecvBuf[i + 6] & 0xff, strShortAddr.c_str());
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
} else if ((unsigned int)mPackgeIndex + 1 != (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && (!bUpdatePre && !bUpdateconfig) && command != 2) {
|
} else if ((unsigned int)mPackgeIndex + 1 != (unsigned int)UartRecvBuf[i + 6] && mPackgeIndex != -1 && (!bUpdatePre && !bUpdateconfig) && command != 2) {
|
||||||
@ -975,16 +972,6 @@ int Uart::FindRecvPackage(int bytesRead, char *mUartRecvBuf, char *head) {
|
|||||||
strcat(tmp2, tmp);
|
strcat(tmp2, tmp);
|
||||||
}
|
}
|
||||||
zlog_error(zct, "error str = %s", tmp2);
|
zlog_error(zct, "error str = %s", tmp2);
|
||||||
GlobalConfig::Zigbee_G.MyAddr = 0x8888;
|
|
||||||
tcflush(fd, TCIOFLUSH);
|
|
||||||
sleep(1);
|
|
||||||
modify_LocalAddr(0x8888);
|
|
||||||
sleep(1);
|
|
||||||
bModifyAddr = true;
|
|
||||||
bSendTimeStamp = false;
|
|
||||||
GlobalConfig::EnterZigBeeWaveTransmittingFlag_G = NO_ENTER_TRANSMITTING_STATUS;
|
|
||||||
GlobalConfig::EnterZigBeeWaveTransmittingCnt_G = 0;
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -29,6 +29,7 @@ enum InteractiveCommand {
|
|||||||
SIGNAL_STRENGTH = 13, // 信号强度
|
SIGNAL_STRENGTH = 13, // 信号强度
|
||||||
DEVICE_EXCEPTION = 14, // 异常: 外设
|
DEVICE_EXCEPTION = 14, // 异常: 外设
|
||||||
WAVE_COMPRESS = 15, // 波形数据压缩
|
WAVE_COMPRESS = 15, // 波形数据压缩
|
||||||
|
UPGRADE_FIRMWARE = 16 //固件升级内容
|
||||||
};
|
};
|
||||||
// 无线传感器请求任务
|
// 无线传感器请求任务
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
|||||||
@ -177,6 +177,7 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
|||||||
// return;
|
// return;
|
||||||
// }
|
// }
|
||||||
memset(whereCon, 0x00, sizeof(whereCon));
|
memset(whereCon, 0x00, sizeof(whereCon));
|
||||||
|
sprintf(szTableNameData, "t_data_%s", strMeasurementID.c_str());
|
||||||
///////////////////////////////////////////////////////////// for V2.0.3 upgrade to V3.0
|
///////////////////////////////////////////////////////////// for V2.0.3 upgrade to V3.0
|
||||||
std::string strTmp = "";
|
std::string strTmp = "";
|
||||||
char sztmp[100] = {0x00};
|
char sztmp[100] = {0x00};
|
||||||
@ -231,6 +232,7 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
|||||||
int Count = sqlite_db_ctrl::instance().GetTableRows(szTableName, whereCon);
|
int Count = sqlite_db_ctrl::instance().GetTableRows(szTableName, whereCon);
|
||||||
if (Count == -1) {
|
if (Count == -1) {
|
||||||
sqlite_db_ctrl::instance().CreatedataStatictable(szTableName);
|
sqlite_db_ctrl::instance().CreatedataStatictable(szTableName);
|
||||||
|
sqlite_db_ctrl::instance().Createtable(szTableNameData);
|
||||||
}
|
}
|
||||||
zlog_info(zct, "strLongAddr = %s,strTime = %s", strLongAddr.c_str(), strTime.c_str());
|
zlog_info(zct, "strLongAddr = %s,strTime = %s", strLongAddr.c_str(), strTime.c_str());
|
||||||
long lTime = atol(nowTimetamp.c_str()) - atol(strTime.c_str());
|
long lTime = atol(nowTimetamp.c_str()) - atol(strTime.c_str());
|
||||||
@ -271,9 +273,7 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
|||||||
}
|
}
|
||||||
memset(szTableName, 0x00, sizeof(szTableName));
|
memset(szTableName, 0x00, sizeof(szTableName));
|
||||||
sprintf(szTableName, "t_data_%s", strLongAddr.c_str());
|
sprintf(szTableName, "t_data_%s", strLongAddr.c_str());
|
||||||
if (Count == -1) {
|
|
||||||
sqlite_db_ctrl::instance().Createtable(szTableName);
|
|
||||||
}
|
|
||||||
DataRecvDym dataDymX;
|
DataRecvDym dataDymX;
|
||||||
memset(buf, 0, sizeof(buf));
|
memset(buf, 0, sizeof(buf));
|
||||||
sprintf(buf, "%02x%02x", pRecvData->Data[9], pRecvData->Data[8]);
|
sprintf(buf, "%02x%02x", pRecvData->Data[9], pRecvData->Data[8]);
|
||||||
@ -817,7 +817,7 @@ std::vector<float> Uart::DealData(int iChannel, float coe, unsigned int sampleRa
|
|||||||
std::vector<float> vecData;
|
std::vector<float> vecData;
|
||||||
size_t j = 0;
|
size_t j = 0;
|
||||||
std::string strShortAddr = "";
|
std::string strShortAddr = "";
|
||||||
if (iChannel == 3) {
|
if (iChannel == WAVE_X) {
|
||||||
if (VecWaveDataX.size() > 0) {
|
if (VecWaveDataX.size() > 0) {
|
||||||
g_VecWaveDataX.assign(VecWaveDataX.begin(), VecWaveDataX.end());
|
g_VecWaveDataX.assign(VecWaveDataX.begin(), VecWaveDataX.end());
|
||||||
waveCount = VecWaveDataX.size();
|
waveCount = VecWaveDataX.size();
|
||||||
@ -833,7 +833,7 @@ std::vector<float> Uart::DealData(int iChannel, float coe, unsigned int sampleRa
|
|||||||
compress = g_mapCompress[strShortAddr].compressChannelX;
|
compress = g_mapCompress[strShortAddr].compressChannelX;
|
||||||
count = g_mapCompress[strShortAddr].CountX;
|
count = g_mapCompress[strShortAddr].CountX;
|
||||||
}
|
}
|
||||||
if (iChannel == 4) {
|
if (iChannel == WAVE_Y) {
|
||||||
if (VecWaveDataY.size() > 0) {
|
if (VecWaveDataY.size() > 0) {
|
||||||
g_VecWaveDataY.assign(VecWaveDataY.begin(), VecWaveDataY.end());
|
g_VecWaveDataY.assign(VecWaveDataY.begin(), VecWaveDataY.end());
|
||||||
waveCount = VecWaveDataY.size();
|
waveCount = VecWaveDataY.size();
|
||||||
@ -849,7 +849,7 @@ std::vector<float> Uart::DealData(int iChannel, float coe, unsigned int sampleRa
|
|||||||
compress = g_mapCompress[strShortAddr].compressChannelY;
|
compress = g_mapCompress[strShortAddr].compressChannelY;
|
||||||
count = g_mapCompress[strShortAddr].CountY;
|
count = g_mapCompress[strShortAddr].CountY;
|
||||||
}
|
}
|
||||||
if (iChannel == 5) {
|
if (iChannel == WAVE_Z) {
|
||||||
if (VecWaveDataZ.size() > 0) {
|
if (VecWaveDataZ.size() > 0) {
|
||||||
g_VecWaveDataZ.assign(VecWaveDataZ.begin(), VecWaveDataZ.end());
|
g_VecWaveDataZ.assign(VecWaveDataZ.begin(), VecWaveDataZ.end());
|
||||||
waveCount = VecWaveDataZ.size();
|
waveCount = VecWaveDataZ.size();
|
||||||
@ -896,27 +896,27 @@ std::vector<float> Uart::DealData(int iChannel, float coe, unsigned int sampleRa
|
|||||||
}
|
}
|
||||||
vecData.push_back(fTemp);
|
vecData.push_back(fTemp);
|
||||||
if (strProduct == "01") {
|
if (strProduct == "01") {
|
||||||
if (vecData.size() == sampleRate * ACCSampleTime && iChannel == 3) { //过滤数据包结尾空数据
|
if (vecData.size() == sampleRate * ACCSampleTime && iChannel == WAVE_X) { //过滤数据包结尾空数据
|
||||||
zlog_info(zct, "%d vecData.size() == %d,sampleRate * ACCSampleTime = %d", iChannel, vecData.size(), sampleRate * ACCSampleTime);
|
zlog_info(zct, "%d vecData.size() == %d,sampleRate * ACCSampleTime = %d", iChannel, vecData.size(), sampleRate * ACCSampleTime);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (vecData.size() == sampleRate * ACCSampleTime && iChannel == 4) { //过滤数据包结尾空数据
|
if (vecData.size() == sampleRate * ACCSampleTime && iChannel == WAVE_Y) { //过滤数据包结尾空数据
|
||||||
zlog_info(zct, "%d vecData.size() == %d,sampleRate * ACCSampleTime = %d", iChannel, vecData.size(), sampleRate * ACCSampleTime);
|
zlog_info(zct, "%d vecData.size() == %d,sampleRate * ACCSampleTime = %d", iChannel, vecData.size(), sampleRate * ACCSampleTime);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (vecData.size() == sampleRate * ACCSampleTime && iChannel == 5) { //过滤数据包结尾空数据
|
if (vecData.size() == sampleRate * ACCSampleTime && iChannel == WAVE_Z) { //过滤数据包结尾空数据
|
||||||
zlog_info(zct, "%d vecData.size() == %d,sampleRate * ACCSampleTime = %d", iChannel, vecData.size(), sampleRate * ACCSampleTime);
|
zlog_info(zct, "%d vecData.size() == %d,sampleRate * ACCSampleTime = %d", iChannel, vecData.size(), sampleRate * ACCSampleTime);
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
} else if (strProduct == "02") {
|
} else if (strProduct == "02") {
|
||||||
if (vecData.size() == 8192 && iChannel == 3) { //过滤数据包结尾空数据
|
if (vecData.size() == 8192 && iChannel == WAVE_X) { //过滤数据包结尾空数据
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (vecData.size() == 8192 && iChannel == 4) { //过滤数据包结尾空数据
|
if (vecData.size() == 8192 && iChannel == WAVE_Y) { //过滤数据包结尾空数据
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (vecData.size() == sampleRate * ACCSampleTime && iChannel == 5) { //过滤数据包结尾空数据
|
if (vecData.size() == sampleRate * ACCSampleTime && iChannel == WAVE_Z) { //过滤数据包结尾空数据
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -965,27 +965,27 @@ void Uart::DealWave() {
|
|||||||
n = (int)strtol(getrange, NULL, 32);
|
n = (int)strtol(getrange, NULL, 32);
|
||||||
if (m_waveCountX > 0 || VecWaveDataX.size() > 0) {
|
if (m_waveCountX > 0 || VecWaveDataX.size() > 0) {
|
||||||
zlog_info(zct, "m_waveCountX = %d,VecWaveData = %d", m_waveCountX, VecWaveDataX.size());
|
zlog_info(zct, "m_waveCountX = %d,VecWaveData = %d", m_waveCountX, VecWaveDataX.size());
|
||||||
coe = Calcoe(n, 3, strProduct, range);
|
coe = Calcoe(n, WAVE_X, strProduct, range);
|
||||||
vecData = DealData(3, coe, sampleRate, ACCSampleTime, strProduct);
|
vecData = DealData(WAVE_X, coe, sampleRate, ACCSampleTime, strProduct);
|
||||||
WriteDatFile(sampleRate, strMeasurementID, 3, vecData);
|
WriteDatFile(sampleRate, strMeasurementID, WAVE_X, vecData);
|
||||||
m_waveCountX = 0;
|
m_waveCountX = 0;
|
||||||
g_VecWaveDataX.clear();
|
g_VecWaveDataX.clear();
|
||||||
VecWaveDataX.clear();
|
VecWaveDataX.clear();
|
||||||
}
|
}
|
||||||
if (m_waveCountY > 0 || VecWaveDataY.size() > 0) {
|
if (m_waveCountY > 0 || VecWaveDataY.size() > 0) {
|
||||||
zlog_info(zct, "m_waveCountY = %d,VecWaveData = %d", m_waveCountY, VecWaveDataY.size());
|
zlog_info(zct, "m_waveCountY = %d,VecWaveData = %d", m_waveCountY, VecWaveDataY.size());
|
||||||
coe = Calcoe(n, 4, strProduct, range);
|
coe = Calcoe(n, WAVE_Y, strProduct, range);
|
||||||
vecData = DealData(4, coe, sampleRate, ACCSampleTime, strProduct);
|
vecData = DealData(WAVE_Y, coe, sampleRate, ACCSampleTime, strProduct);
|
||||||
WriteDatFile(sampleRate, strMeasurementID, 4, vecData);
|
WriteDatFile(sampleRate, strMeasurementID, WAVE_Y, vecData);
|
||||||
m_waveCountY = 0;
|
m_waveCountY = 0;
|
||||||
g_VecWaveDataY.clear();
|
g_VecWaveDataY.clear();
|
||||||
VecWaveDataY.clear();
|
VecWaveDataY.clear();
|
||||||
}
|
}
|
||||||
if (m_waveCountZ > 0 || VecWaveDataZ.size() > 0) {
|
if (m_waveCountZ > 0 || VecWaveDataZ.size() > 0) {
|
||||||
zlog_info(zct, "m_waveCountZ = %d,VecWaveDataZ = %d", m_waveCountZ, VecWaveDataZ.size());
|
zlog_info(zct, "m_waveCountZ = %d,VecWaveDataZ = %d", m_waveCountZ, VecWaveDataZ.size());
|
||||||
coe = Calcoe(n, 5, strProduct, range);
|
coe = Calcoe(n, WAVE_Z, strProduct, range);
|
||||||
vecData = DealData(5, coe, sampleRate, ACCSampleTime, strProduct);
|
vecData = DealData(WAVE_Z, coe, sampleRate, ACCSampleTime, strProduct);
|
||||||
WriteDatFile(sampleRate, strMeasurementID, 5, vecData);
|
WriteDatFile(sampleRate, strMeasurementID, WAVE_Z, vecData);
|
||||||
m_waveCountZ = 0;
|
m_waveCountZ = 0;
|
||||||
g_VecWaveDataZ.clear();
|
g_VecWaveDataZ.clear();
|
||||||
VecWaveDataZ.clear();
|
VecWaveDataZ.clear();
|
||||||
@ -1016,10 +1016,10 @@ float Uart::Calcoe(int ran, int iChannel, std::string &product, int range) {
|
|||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
} else if (product == "02") {
|
} else if (product == "02") {
|
||||||
if (iChannel == 3 || iChannel == 4) {
|
if (iChannel == WAVE_X || iChannel == WAVE_Y) {
|
||||||
coe = 0.00048828125;
|
coe = 0.00048828125;
|
||||||
}
|
}
|
||||||
if (iChannel == 5) {
|
if (iChannel == WAVE_Z) {
|
||||||
coe = 0.00172607421875;
|
coe = 0.00172607421875;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1034,15 +1034,15 @@ void Uart::WriteDatFile(int sampleRate, std::string &strMeasurementID, int iChan
|
|||||||
std::string nowTimetamp = std::string(localtimestamp);
|
std::string nowTimetamp = std::string(localtimestamp);
|
||||||
std::string strChannelID = "";
|
std::string strChannelID = "";
|
||||||
switch (iChannel) {
|
switch (iChannel) {
|
||||||
case 3: {
|
case WAVE_X: {
|
||||||
strFileName = "/opt/data/" + strMeasurementID + "-X.dat";
|
strFileName = "/opt/data/" + strMeasurementID + "-X.dat";
|
||||||
strChannelID = strMeasurementID + "-X";
|
strChannelID = strMeasurementID + "-X";
|
||||||
} break;
|
} break;
|
||||||
case 4: {
|
case WAVE_Y: {
|
||||||
strFileName = "/opt/data/" + strMeasurementID + "-Y.dat";
|
strFileName = "/opt/data/" + strMeasurementID + "-Y.dat";
|
||||||
strChannelID = strMeasurementID + "-Y";
|
strChannelID = strMeasurementID + "-Y";
|
||||||
} break;
|
} break;
|
||||||
case 5: {
|
case WAVE_Z: {
|
||||||
strFileName = "/opt/data/" + strMeasurementID + "-Z.dat";
|
strFileName = "/opt/data/" + strMeasurementID + "-Z.dat";
|
||||||
strChannelID = strMeasurementID + "-Z";
|
strChannelID = strMeasurementID + "-Z";
|
||||||
} break;
|
} break;
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user