fix wave save bugs
This commit is contained in:
parent
7de8c71652
commit
634b54f435
@ -917,37 +917,37 @@ std::string IpAddrInit() {
|
|||||||
std::string strip = "";
|
std::string strip = "";
|
||||||
strip = GetGwIp_(WLAN0);
|
strip = GetGwIp_(WLAN0);
|
||||||
if (strip.compare("0.0.0.0") != 0) {
|
if (strip.compare("0.0.0.0") != 0) {
|
||||||
zlog_info(zct, "[IpAddrInit] wlan0: %s", strip.c_str());
|
//zlog_info(zct, "[IpAddrInit] wlan0: %s", strip.c_str());
|
||||||
return strip;
|
return strip;
|
||||||
}
|
}
|
||||||
strip = GetGwIp_(WLAN2);
|
strip = GetGwIp_(WLAN2);
|
||||||
if (strip.compare("0.0.0.0") != 0) {
|
if (strip.compare("0.0.0.0") != 0) {
|
||||||
zlog_info(zct, "[IpAddrInit] wlan2: %s", strip.c_str());
|
//zlog_info(zct, "[IpAddrInit] wlan2: %s", strip.c_str());
|
||||||
return strip;
|
return strip;
|
||||||
}
|
}
|
||||||
strip = GetGwIp_(ETH1);
|
strip = GetGwIp_(ETH1);
|
||||||
if (strip.compare("0.0.0.0") != 0 && strip.compare("192.168.188.188") != 0) {
|
if (strip.compare("0.0.0.0") != 0 && strip.compare("192.168.188.188") != 0) {
|
||||||
zlog_info(zct, "[IpAddrInit] eth1: %s", strip.c_str());
|
//zlog_info(zct, "[IpAddrInit] eth1: %s", strip.c_str());
|
||||||
return strip;
|
return strip;
|
||||||
}
|
}
|
||||||
strip = GetGwIp_(ETH2);
|
strip = GetGwIp_(ETH2);
|
||||||
if (strip.compare("0.0.0.0") != 0 && strip.compare("192.168.188.188") != 0) {
|
if (strip.compare("0.0.0.0") != 0 && strip.compare("192.168.188.188") != 0) {
|
||||||
zlog_info(zct, "[IpAddrInit] eth2: %s", strip.c_str());
|
//zlog_info(zct, "[IpAddrInit] eth2: %s", strip.c_str());
|
||||||
return strip;
|
return strip;
|
||||||
}
|
}
|
||||||
strip = GetGwIp_(ETH0);
|
strip = GetGwIp_(ETH0);
|
||||||
if (strip.compare("0.0.0.0") != 0) {
|
if (strip.compare("0.0.0.0") != 0) {
|
||||||
zlog_info(zct, "[IpAddrInit] eth0: %s", strip.c_str());
|
//zlog_info(zct, "[IpAddrInit] eth0: %s", strip.c_str());
|
||||||
return strip;
|
return strip;
|
||||||
}
|
}
|
||||||
strip = GetGwIp_(USB0);
|
strip = GetGwIp_(USB0);
|
||||||
if (strip.compare("0.0.0.0") != 0) {
|
if (strip.compare("0.0.0.0") != 0) {
|
||||||
zlog_info(zct, "[IpAddrInit] usb0: %s", strip.c_str());
|
//zlog_info(zct, "[IpAddrInit] usb0: %s", strip.c_str());
|
||||||
return strip;
|
return strip;
|
||||||
}
|
}
|
||||||
strip = GetGwIp_(WWAN0);
|
strip = GetGwIp_(WWAN0);
|
||||||
if (strip.compare("0.0.0.0") != 0) {
|
if (strip.compare("0.0.0.0") != 0) {
|
||||||
zlog_info(zct, "[IpAddrInit] wwan0: %s", strip.c_str());
|
//zlog_info(zct, "[IpAddrInit] wwan0: %s", strip.c_str());
|
||||||
return strip;
|
return strip;
|
||||||
}
|
}
|
||||||
zlog_warn(zct, "[IpAddrInit] ip: %s", strip.c_str());
|
zlog_warn(zct, "[IpAddrInit] ip: %s", strip.c_str());
|
||||||
|
|||||||
@ -72,7 +72,17 @@ struct compressWaveChannel {
|
|||||||
CountZ = 0;
|
CountZ = 0;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
struct WaveChannel {
|
||||||
|
std::vector<float> WaveChannelX;
|
||||||
|
std::vector<float> WaveChannelY;
|
||||||
|
std::vector<float> WaveChannelZ;
|
||||||
|
std::string wave_timestamp;
|
||||||
|
WaveChannel() {
|
||||||
|
WaveChannelX.reserve(25600);
|
||||||
|
WaveChannelY.reserve(25600);
|
||||||
|
WaveChannelZ.reserve(48000);
|
||||||
|
}
|
||||||
|
};
|
||||||
struct DevDataOfGwid {
|
struct DevDataOfGwid {
|
||||||
std::string mDevdata;
|
std::string mDevdata;
|
||||||
std::string mDevid;
|
std::string mDevid;
|
||||||
|
|||||||
@ -101,8 +101,10 @@ struct Param_27 {
|
|||||||
int mMode;
|
int mMode;
|
||||||
std::string mCmdSerial;
|
std::string mCmdSerial;
|
||||||
std::string mDataNodeNo;
|
std::string mDataNodeNo;
|
||||||
|
std::string mShortAddr;
|
||||||
|
std::string mMeasurementID;
|
||||||
std::string mType;
|
std::string mType;
|
||||||
Param_27() : mMode(0), mCmdSerial(""), mDataNodeNo(""), mType(""){};
|
Param_27() : mMode(0), mCmdSerial(""), mDataNodeNo(""),mShortAddr(""),mMeasurementID(""), mType(""){};
|
||||||
};
|
};
|
||||||
|
|
||||||
struct Param_28 {
|
struct Param_28 {
|
||||||
|
|||||||
@ -7,6 +7,7 @@
|
|||||||
#include "platform/platform_init.hpp"
|
#include "platform/platform_init.hpp"
|
||||||
#include "utility/md5.h"
|
#include "utility/md5.h"
|
||||||
#include "utility/calculation.hpp"
|
#include "utility/calculation.hpp"
|
||||||
|
#include "scheduler/schedule.hpp"
|
||||||
|
|
||||||
extern zlog_category_t *zct;
|
extern zlog_category_t *zct;
|
||||||
|
|
||||||
@ -271,16 +272,25 @@ std::string JsonData::JsonCmd_Cgi_27(Param_27 ¶m) {
|
|||||||
if (param.mDataNodeNo.length() > 0 && param.mType == "DELETE") {
|
if (param.mDataNodeNo.length() > 0 && param.mType == "DELETE") {
|
||||||
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param.mDataNodeNo.c_str());
|
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param.mDataNodeNo.c_str());
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_SENSOR_INFO(TNAME), whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(T_SENSOR_INFO(TNAME), whereCon);
|
||||||
|
memset(whereCon,0,sizeof(whereCon));
|
||||||
|
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param.mMeasurementID.c_str());
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_DATA_INFO(TNAME), whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(T_DATA_INFO(TNAME), whereCon);
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_DATASTATIC_INFO(TNAME), whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(T_DATASTATIC_INFO(TNAME), whereCon);
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_DATANODE_TIME(TNAME), whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(T_DATANODE_TIME(TNAME), whereCon);
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_BATTERY_INFO(TNAME), whereCon);
|
sqlite_db_ctrl::instance().DeleteTableData(T_BATTERY_INFO(TNAME), whereCon);
|
||||||
|
sqlite_db_ctrl::instance().DeleteTableData(" t_battery_history ", whereCon);
|
||||||
|
memset(whereCon,0,sizeof(whereCon));
|
||||||
|
sprintf(whereCon, "channelID like'%s'", param.mDataNodeNo.c_str());
|
||||||
|
sqlite_db_ctrl::instance().DeleteTableData(" t_data_waveSend ", whereCon);
|
||||||
char szTableName[50] = {0x00};
|
char szTableName[50] = {0x00};
|
||||||
sprintf(szTableName, "DROP TABLE t_data_%s", param.mDataNodeNo.c_str());
|
sprintf(szTableName, "DROP TABLE t_data_%s", param.mDataNodeNo.c_str());
|
||||||
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
||||||
memset(szTableName, 0x00, sizeof(szTableName));
|
memset(szTableName, 0x00, sizeof(szTableName));
|
||||||
sprintf(szTableName, "DROP TABLE t_dataStatic_%s", param.mDataNodeNo.c_str());
|
sprintf(szTableName, "DROP TABLE t_dataStatic_%s", param.mDataNodeNo.c_str());
|
||||||
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
||||||
|
|
||||||
|
scheduler::instance().ClearScheduleCfg(atoi(param.mShortAddr.c_str()));
|
||||||
|
|
||||||
} else if (param.mDataNodeNo.length() > 0 && param.mType == "CORRECT") {
|
} else if (param.mDataNodeNo.length() > 0 && param.mType == "CORRECT") {
|
||||||
char updateSql[1024] = {0};
|
char updateSql[1024] = {0};
|
||||||
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param.mDataNodeNo.c_str());
|
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), param.mDataNodeNo.c_str());
|
||||||
|
|||||||
@ -618,9 +618,9 @@ std::string JsonData::JsonCmd_Cgi_60(Param_60 ¶m){
|
|||||||
jsonVal["message"] = "";
|
jsonVal["message"] = "";
|
||||||
char file_path[64]={0};
|
char file_path[64]={0};
|
||||||
char cmd[64]={0};
|
char cmd[64]={0};
|
||||||
sprintf(cmd,"mv /opt/%s /opt/DataNode/",param.fileName.c_str());
|
sprintf(cmd, "mv /opt/%s /opt/DataNode/",param.fileName.c_str());
|
||||||
system(cmd);
|
system(cmd);
|
||||||
sprintf(file_path,"/opt/DataNodeNo/%s",file_path);
|
sprintf(file_path, "/opt/DataNodeNo/%s",param.fileName.c_str());
|
||||||
FILE * pFile=NULL;
|
FILE * pFile=NULL;
|
||||||
size_t thisSize = 0;
|
size_t thisSize = 0;
|
||||||
char *buffer=NULL;
|
char *buffer=NULL;
|
||||||
|
|||||||
@ -14,7 +14,7 @@ int GlobalConfig::LinkStatus_G = 0;
|
|||||||
int GlobalConfig::LinkCount = 0;
|
int GlobalConfig::LinkCount = 0;
|
||||||
int GlobalConfig::net0Status = 1;
|
int GlobalConfig::net0Status = 1;
|
||||||
|
|
||||||
std::string GlobalConfig::Version = "3.2.5";
|
std::string GlobalConfig::Version = "5.0";
|
||||||
std::string GlobalConfig::MacAddr_G = "";
|
std::string GlobalConfig::MacAddr_G = "";
|
||||||
std::string GlobalConfig::MacAddr_G2 = "";
|
std::string GlobalConfig::MacAddr_G2 = "";
|
||||||
std::string GlobalConfig::IpAddr_G = "";
|
std::string GlobalConfig::IpAddr_G = "";
|
||||||
@ -29,6 +29,7 @@ int GlobalConfig::threadStatus = 1;
|
|||||||
int GlobalConfig::day = 0;
|
int GlobalConfig::day = 0;
|
||||||
|
|
||||||
extern std::map<std::string, compressWaveChannel> g_mapCompress;
|
extern std::map<std::string, compressWaveChannel> g_mapCompress;
|
||||||
|
extern std::map<std::string, WaveChannel> g_mapWaveChannel;
|
||||||
|
|
||||||
TopicList GlobalConfig::Topic_G;
|
TopicList GlobalConfig::Topic_G;
|
||||||
ZigbeeInfo GlobalConfig::ZigbeeInfo_G;
|
ZigbeeInfo GlobalConfig::ZigbeeInfo_G;
|
||||||
@ -98,10 +99,12 @@ void PlatformInit::Init() {
|
|||||||
zlog_error(zbt, "PlatFormInit exception happend.");
|
zlog_error(zbt, "PlatFormInit exception happend.");
|
||||||
std::string errorinfo = "系统初始化异常";
|
std::string errorinfo = "系统初始化异常";
|
||||||
}
|
}
|
||||||
vec_t vecResult = sqlite_db_ctrl::instance().GetDataMultiLineOfOneColumn(T_SENSOR_INFO(TNAME), " zigbeeShortAddr ", NULL);
|
array_t arrResult = sqlite_db_ctrl::instance().GetDataMultiLineTransaction(T_SENSOR_INFO(TNAME), " MeasurementID,zigbeeShortAddr ", NULL);
|
||||||
for (size_t i = 0; i < vecResult.size(); i++) {
|
for (size_t i = 0; i < arrResult.size(); i++) {
|
||||||
compressWaveChannel tempchannel;
|
compressWaveChannel tempchannel;
|
||||||
g_mapCompress.insert(std::make_pair(vecResult[0], tempchannel));
|
WaveChannel tempwavechannel;
|
||||||
|
g_mapCompress.insert(std::make_pair(arrResult[i][1], tempchannel));
|
||||||
|
g_mapWaveChannel.insert(std::make_pair(arrResult[i][0], tempwavechannel));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -75,7 +75,7 @@ void HeartRep() {
|
|||||||
GlobalConfig::serverStatus = 0;
|
GlobalConfig::serverStatus = 0;
|
||||||
gpio_set(GlobalConfig::GPIO_G.errorLed, 0);
|
gpio_set(GlobalConfig::GPIO_G.errorLed, 0);
|
||||||
}
|
}
|
||||||
sleep(10);
|
sleep(30);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -540,18 +540,27 @@ void Uart::DealDataNodeName(const char *pData) {
|
|||||||
if (vecRes.size() > 1) {
|
if (vecRes.size() > 1) {
|
||||||
for (size_t i = 0; i < vecRes.size(); i++) {
|
for (size_t i = 0; i < vecRes.size(); i++) {
|
||||||
if (vecRes[i][1] != "") {
|
if (vecRes[i][1] != "") {
|
||||||
char whereCon1[64] = {0};
|
memset(whereCon,0,sizeof(whereCon));
|
||||||
sprintf(whereCon1, " dataNodeNo='%s' ", vecRes[i][0].c_str());
|
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), vecRes[i][0].c_str());
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_SENSOR_INFO(TNAME), whereCon1);
|
sqlite_db_ctrl::instance().DeleteTableData(T_SENSOR_INFO(TNAME), whereCon);
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_DATA_INFO(TNAME), whereCon1);
|
memset(whereCon,0,sizeof(whereCon));
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_DATASTATIC_INFO(TNAME), whereCon1);
|
sprintf(whereCon, "%s= '%s'", T_SENSOR_INFO(DATANODENO), vecRes[i][1].c_str());
|
||||||
sqlite_db_ctrl::instance().DeleteTableData(T_DATANODE_TIME(TNAME), whereCon1);
|
sqlite_db_ctrl::instance().DeleteTableData(T_DATA_INFO(TNAME), whereCon);
|
||||||
|
sqlite_db_ctrl::instance().DeleteTableData(T_DATASTATIC_INFO(TNAME), whereCon);
|
||||||
|
sqlite_db_ctrl::instance().DeleteTableData(T_DATANODE_TIME(TNAME), whereCon);
|
||||||
|
sqlite_db_ctrl::instance().DeleteTableData(T_BATTERY_INFO(TNAME), whereCon);
|
||||||
|
sqlite_db_ctrl::instance().DeleteTableData(" t_battery_history ", whereCon);
|
||||||
|
memset(whereCon,0,sizeof(whereCon));
|
||||||
|
sprintf(whereCon, "channelID like'%s'", vecRes[i][1].c_str());
|
||||||
|
sqlite_db_ctrl::instance().DeleteTableData(" t_data_waveSend ", whereCon);
|
||||||
char szTableName[50] = {0x00};
|
char szTableName[50] = {0x00};
|
||||||
sprintf(szTableName, "DROP TABLE t_data_%s", vecRes[i][0].c_str());
|
sprintf(szTableName, "DROP TABLE t_data_%s", vecRes[i][1].c_str());
|
||||||
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
||||||
memset(szTableName, 0x00, sizeof(szTableName));
|
memset(szTableName, 0x00, sizeof(szTableName));
|
||||||
sprintf(szTableName, "DROP TABLE t_dataStatic_%s", vecRes[i][0].c_str());
|
sprintf(szTableName, "DROP TABLE t_dataStatic_%s", vecRes[i][1].c_str());
|
||||||
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
sqlite_db_ctrl::instance().CreateTable(szTableName);
|
||||||
|
scheduler::instance().ClearScheduleCfg(atoi(szShortAdd));
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -31,6 +31,16 @@ enum InteractiveCommand {
|
|||||||
WAVE_COMPRESS = 15, // 波形数据压缩
|
WAVE_COMPRESS = 15, // 波形数据压缩
|
||||||
UPGRADE_FIRMWARE = 16 //固件升级内容
|
UPGRADE_FIRMWARE = 16 //固件升级内容
|
||||||
};
|
};
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
kUpgradeSuccess = 0, // 成功
|
||||||
|
kUpgradeIndexError = 1, //包接收序号错误,要重试
|
||||||
|
kProductTypeMismatch = 2, // 包有问题,不再重试
|
||||||
|
kZigbeeHWMismatch = 3, // 包有问题,不再重试
|
||||||
|
kTransmitFileCrcError = 4, // 此返回值时,要重试
|
||||||
|
kRecvDataLenError = 5, // 此返回值时,要重试
|
||||||
|
kUpgradeDoneBefore = 6 // 当前就是这个版本,不需要升级了
|
||||||
|
} FirmFileCheckResult;
|
||||||
// 无线传感器请求任务
|
// 无线传感器请求任务
|
||||||
typedef struct {
|
typedef struct {
|
||||||
uint8_t cmd; // kAskTask
|
uint8_t cmd; // kAskTask
|
||||||
@ -138,6 +148,7 @@ typedef struct {
|
|||||||
uint8_t cmd;
|
uint8_t cmd;
|
||||||
uint8_t success; // 0:成功, 1:其它失败,需要重发
|
uint8_t success; // 0:成功, 1:其它失败,需要重发
|
||||||
} NormalResp;
|
} NormalResp;
|
||||||
|
|
||||||
class Uart {
|
class Uart {
|
||||||
public:
|
public:
|
||||||
Uart();
|
Uart();
|
||||||
|
|||||||
@ -18,6 +18,12 @@ std::vector<RecvData> g_VecWaveDataX;
|
|||||||
std::vector<RecvData> g_VecWaveDataY;
|
std::vector<RecvData> g_VecWaveDataY;
|
||||||
std::vector<RecvData> g_VecWaveDataZ;
|
std::vector<RecvData> g_VecWaveDataZ;
|
||||||
std::map<std::string, compressWaveChannel> g_mapCompress;
|
std::map<std::string, compressWaveChannel> g_mapCompress;
|
||||||
|
std::map<std::string, WaveChannel> g_mapWaveChannel;
|
||||||
|
|
||||||
|
unsigned char data[1024 * 30] = {0x00};
|
||||||
|
unsigned char outdata[1024 * 50] = {0x00};
|
||||||
|
unsigned char dealdata[1024 * 30] = {0x00};
|
||||||
|
char mqttData[512000] = {0};
|
||||||
|
|
||||||
void Uart::RecordBattery(std::string &strLongAddr, DataRecvStatic &dataStatic, std::string &nowTimetamp) {
|
void Uart::RecordBattery(std::string &strLongAddr, DataRecvStatic &dataStatic, std::string &nowTimetamp) {
|
||||||
char insertSql[1024] = {0};
|
char insertSql[1024] = {0};
|
||||||
@ -60,7 +66,6 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
|||||||
|
|
||||||
if (!bSendTimeStamp) {
|
if (!bSendTimeStamp) {
|
||||||
bSendTimeStamp = true;
|
bSendTimeStamp = true;
|
||||||
//modify_distaddr_info(0x9999, (char*)"", pRecvData->ShortAddr); //临时参数配置
|
|
||||||
mssleep(10000);
|
mssleep(10000);
|
||||||
|
|
||||||
zlog_info(zct, "Zigbee Signal !\n");
|
zlog_info(zct, "Zigbee Signal !\n");
|
||||||
@ -76,10 +81,6 @@ void Uart::DealDataNodeFeature(const char *pData, int flag) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// GlobalConfig::ZigbeeInfo_G.MyAddr = "9999";
|
|
||||||
// GlobalConfig::Zigbee_G.MyAddr = 0x9999;
|
|
||||||
// std::string strTime = GetLocalTimeWithMs();
|
|
||||||
|
|
||||||
m_strDestShortAddr = std::string(buf);
|
m_strDestShortAddr = std::string(buf);
|
||||||
|
|
||||||
|
|
||||||
@ -805,10 +806,11 @@ void Uart::DealWaveThread() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
std::vector<float> Uart::DealData(int iChannel, float coe, unsigned int sampleRate, int ACCSampleTime, std::string strProduct) {
|
std::vector<float> Uart::DealData(int iChannel, float coe, unsigned int sampleRate, int ACCSampleTime, std::string strProduct) {
|
||||||
|
|
||||||
|
memset(data,0,sizeof(data));
|
||||||
|
memset(dealdata,0,sizeof(dealdata));
|
||||||
|
memset(outdata,0,sizeof(outdata));
|
||||||
size_t waveCount = 0;
|
size_t waveCount = 0;
|
||||||
unsigned char data[1024 * 100] = {0x00};
|
|
||||||
unsigned char outdata[1024 * 100] = {0x00};
|
|
||||||
unsigned char dealdata[1024 * 100] = {0x00};
|
|
||||||
long unsigned int new_len = 0, deallen = 0;
|
long unsigned int new_len = 0, deallen = 0;
|
||||||
int compress = 0;
|
int compress = 0;
|
||||||
size_t count = 0;
|
size_t count = 0;
|
||||||
@ -1033,51 +1035,61 @@ void Uart::WriteDatFile(int sampleRate, std::string &strMeasurementID, int iChan
|
|||||||
GetTimeNet(localtimestamp, 1);
|
GetTimeNet(localtimestamp, 1);
|
||||||
std::string nowTimetamp = std::string(localtimestamp);
|
std::string nowTimetamp = std::string(localtimestamp);
|
||||||
std::string strChannelID = "";
|
std::string strChannelID = "";
|
||||||
switch (iChannel) {
|
|
||||||
case WAVE_X: {
|
|
||||||
strFileName = "/opt/data/" + strMeasurementID + "-X.dat";
|
|
||||||
strChannelID = strMeasurementID + "-X";
|
|
||||||
} break;
|
|
||||||
case WAVE_Y: {
|
|
||||||
strFileName = "/opt/data/" + strMeasurementID + "-Y.dat";
|
|
||||||
strChannelID = strMeasurementID + "-Y";
|
|
||||||
} break;
|
|
||||||
case WAVE_Z: {
|
|
||||||
strFileName = "/opt/data/" + strMeasurementID + "-Z.dat";
|
|
||||||
strChannelID = strMeasurementID + "-Z";
|
|
||||||
} break;
|
|
||||||
default: break;
|
|
||||||
}
|
|
||||||
if (access(strFileName.c_str(), 0) > 0) { //如果存在原始数据删除原来的,只保留一份
|
|
||||||
std::string strCmd = "rm " + strFileName;
|
|
||||||
system(strCmd.c_str());
|
|
||||||
}
|
|
||||||
|
|
||||||
FILE *fp = fopen(strFileName.c_str(), "w");
|
|
||||||
fwrite(localtimestamp, sizeof(localtimestamp), 1, fp);
|
|
||||||
zlog_info(zct, "fopen FIle vecData.size : %d", vecData.size());
|
|
||||||
float mean = Calculation::mean(vecData);
|
float mean = Calculation::mean(vecData);
|
||||||
float frTemp;
|
float frTemp;
|
||||||
char buf[33] = {0x00};
|
char buf[33] = {0x00};
|
||||||
std::string strWaveData = "";
|
std::string strWaveData = "";
|
||||||
|
WaveChannel wave_channel;
|
||||||
|
|
||||||
|
memset(mqttData,0,sizeof(mqttData));
|
||||||
|
switch (iChannel) {
|
||||||
|
case WAVE_X: {
|
||||||
|
strFileName = "/opt/data/" + strMeasurementID + "-X.dat";
|
||||||
|
strChannelID = strMeasurementID + "-X";
|
||||||
|
|
||||||
|
} break;
|
||||||
|
case WAVE_Y: {
|
||||||
|
strFileName = "/opt/data/" + strMeasurementID + "-Y.dat";
|
||||||
|
strChannelID = strMeasurementID + "-Y";
|
||||||
|
|
||||||
|
} break;
|
||||||
|
case WAVE_Z: {
|
||||||
|
strFileName = "/opt/data/" + strMeasurementID + "-Z.dat";
|
||||||
|
strChannelID = strMeasurementID + "-Z";
|
||||||
|
|
||||||
|
} break;
|
||||||
|
default: break;
|
||||||
|
}
|
||||||
|
FILE *fp = fopen(strFileName.c_str(), "w");
|
||||||
|
fwrite(localtimestamp,sizeof(localtimestamp),1,fp);
|
||||||
|
zlog_info(zct, " vecData.size : %d,start ", vecData.size());
|
||||||
|
int id = 0;
|
||||||
for (size_t i = 0; i < vecData.size(); i++) {
|
for (size_t i = 0; i < vecData.size(); i++) {
|
||||||
frTemp = vecData[i] - mean;
|
frTemp = vecData[i] - mean;
|
||||||
fwrite(&frTemp, sizeof(float), 1, fp);
|
|
||||||
memset(buf, 0x00, sizeof(buf));
|
memset(buf, 0x00, sizeof(buf));
|
||||||
sprintf(buf, "%.2f", frTemp);
|
sprintf(buf, "%.2f", frTemp);
|
||||||
std::string waveTemp(buf);
|
fwrite(&frTemp,sizeof(float),1,fp);
|
||||||
if (i == 0)
|
if (iChannel == WAVE_X){
|
||||||
strWaveData = waveTemp;
|
wave_channel.WaveChannelX[i] = frTemp;
|
||||||
else
|
}else if (iChannel == WAVE_Y){
|
||||||
strWaveData = strWaveData + "," + waveTemp;
|
wave_channel.WaveChannelY[i] = frTemp;
|
||||||
|
}else if (iChannel == WAVE_Z){
|
||||||
if (i % 100 == 0) {
|
wave_channel.WaveChannelZ[i] = frTemp;
|
||||||
mssleep(5000);
|
}
|
||||||
|
if (i != vecData.size() -1){
|
||||||
|
strncpy(mqttData + id ,buf,strlen(buf));
|
||||||
|
id = id + strlen(buf);
|
||||||
|
strncpy(mqttData + id,",",1);
|
||||||
|
id = id + 1;
|
||||||
|
}
|
||||||
|
else{
|
||||||
|
strncpy(mqttData + id ,buf,strlen(buf));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fclose(fp);
|
fclose(fp);
|
||||||
|
zlog_info(zct, "fopen FIle vecData.size : %d end ", vecData.size());
|
||||||
|
wave_channel.wave_timestamp = nowTimetamp;
|
||||||
|
g_mapWaveChannel[strMeasurementID] = wave_channel;
|
||||||
Json::Value valWaveData;
|
Json::Value valWaveData;
|
||||||
valWaveData["number"] = sampleRate;
|
valWaveData["number"] = sampleRate;
|
||||||
valWaveData["channelId"] = strChannelID;
|
valWaveData["channelId"] = strChannelID;
|
||||||
@ -1085,7 +1097,7 @@ void Uart::WriteDatFile(int sampleRate, std::string &strMeasurementID, int iChan
|
|||||||
valWaveData["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G;
|
valWaveData["dataNodeGatewayNo"] = GlobalConfig::MacAddr_G;
|
||||||
valWaveData["SensorEngineeringUnit"] = "";
|
valWaveData["SensorEngineeringUnit"] = "";
|
||||||
valWaveData["timeStamp"] = nowTimetamp;
|
valWaveData["timeStamp"] = nowTimetamp;
|
||||||
valWaveData["waveData"] = strWaveData;
|
valWaveData["waveData"] = mqttData;
|
||||||
valWaveData["mean"] = mean;
|
valWaveData["mean"] = mean;
|
||||||
Json::FastWriter WaveValue;
|
Json::FastWriter WaveValue;
|
||||||
std::string WaveData = WaveValue.write(valWaveData);
|
std::string WaveData = WaveValue.write(valWaveData);
|
||||||
|
|||||||
@ -67,6 +67,7 @@ bool Uart::ReadUpdatePackge(unsigned short shortAdd) {
|
|||||||
zlog_info(zct, "thisindex = %d", thisindex);
|
zlog_info(zct, "thisindex = %d", thisindex);
|
||||||
|
|
||||||
FILE* pFile = NULL;
|
FILE* pFile = NULL;
|
||||||
|
char* buffer = NULL;
|
||||||
int thisSize = 0;
|
int thisSize = 0;
|
||||||
DataNodeUpdateFile = "/opt/DataNode/" + strFileName;
|
DataNodeUpdateFile = "/opt/DataNode/" + strFileName;
|
||||||
zlog_info(zct, "strFileName = %s", DataNodeUpdateFile.c_str());
|
zlog_info(zct, "strFileName = %s", DataNodeUpdateFile.c_str());
|
||||||
@ -77,6 +78,9 @@ bool Uart::ReadUpdatePackge(unsigned short shortAdd) {
|
|||||||
while (fgetc(pFile) != EOF) {
|
while (fgetc(pFile) != EOF) {
|
||||||
++thisSize;
|
++thisSize;
|
||||||
}
|
}
|
||||||
|
rewind(pFile);
|
||||||
|
buffer = (char*)malloc(thisSize);
|
||||||
|
fread(buffer, sizeof(char), thisSize, pFile);
|
||||||
fclose(pFile);
|
fclose(pFile);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user