Merge branch 'dg101_refine_schedule' of http://192.168.0.10:3000/pandx/WLG into dg101_refine_schedule

This commit is contained in:
pandx 2025-04-10 11:52:53 +08:00
commit ad4b206a0d
2 changed files with 53 additions and 37 deletions

View File

@ -14,7 +14,7 @@ int GlobalConfig::LinkStatus_G = 0;
int GlobalConfig::LinkCount = 0;
int GlobalConfig::net0Status = 1;
std::string GlobalConfig::Version = "5.5";
std::string GlobalConfig::Version = "5.6";
std::string GlobalConfig::MacAddr_G = "";
std::string GlobalConfig::MacAddr_G2 = "";
std::string GlobalConfig::IpAddr_G = "";

View File

@ -764,7 +764,7 @@ void Uart::DealWave() {
std::string strMeasurementID = "";
std::string strFileName = "";
std::string strProduct = "";
std::vector<float> vecData;
std::vector<float> vecDataX, vecDataY, vecDataZ;
if (wave_trans_) { //对每个传感器的每个通道进行遍历然后处理数据例如传感器1x轴的数据处理完后再去处理y轴的。传感器1的所有数据处理完后再处理传感器2的
char getzigbeeShortAddr[32] = {0};
sprintf(getzigbeeShortAddr, "zigbeeShortAddr='%02x%02x'", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF);
@ -774,6 +774,7 @@ void Uart::DealWave() {
wave_trans_ = false;
return;
}
strShortAddr = res[30];
strLongAddr = res[0];
strMeasurementID = res[44];
if (0 == strLongAddr.length()) {
@ -781,34 +782,7 @@ void Uart::DealWave() {
wave_trans_ = false;
return;
}
if (m_waveCountX > 0 || m_waveCountY > 0 || m_waveCountZ > 0){
char localtimestamp[32] = {0};
GetTimeNet(localtimestamp, 1);
char insertSql[100] = {0x00};
char whereCon[50] = {0x00};
sprintf(whereCon, "MeasurementID='%s'",strMeasurementID.c_str());
memset(whereCon, 0x00, sizeof(whereCon));
if (m_waveCountX > 0)
{
sprintf(insertSql, "'%s-X','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
}
if (m_waveCountY > 0)
{
sprintf(insertSql, "'%s-Y','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
}
if (m_waveCountZ > 0)
{
sprintf(insertSql, "'%s-Z','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
}
scheduler::instance().WaveSuccess(wave_shortAddr);
}else{
if(scheduler::instance().WaveError(wave_shortAddr) < 0){
zlog_error(zct, "wave size is 0,shortAddr %02x%02x", (wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF);
}
}
std::string ran = "";
int n = 0;
@ -828,8 +802,8 @@ void Uart::DealWave() {
if (m_waveCountX > 0 || VecWaveDataX.size() > 0) {
zlog_info(zct, "m_waveCountX = %d,VecWaveData = %d", m_waveCountX, VecWaveDataX.size());
coe = Calcoe(n, WAVE_X, strProduct, range);
vecData = DealData(WAVE_X, coe, sampleRate, ACCSampleTime, strProduct);
WriteDatFile(sampleRate, strMeasurementID, WAVE_X, vecData,strProduct,ACCSampleTime);
vecDataX = DealData(WAVE_X, coe, sampleRate, ACCSampleTime, strProduct);
WriteDatFile(sampleRate, strMeasurementID, WAVE_X, vecDataX,strProduct,ACCSampleTime);
m_waveCountX = 0;
g_VecWaveDataX.clear();
VecWaveDataX.clear();
@ -837,8 +811,8 @@ void Uart::DealWave() {
if (m_waveCountY > 0 || VecWaveDataY.size() > 0) {
zlog_info(zct, "m_waveCountY = %d,VecWaveData = %d", m_waveCountY, VecWaveDataY.size());
coe = Calcoe(n, WAVE_Y, strProduct, range);
vecData = DealData(WAVE_Y, coe, sampleRate, ACCSampleTime, strProduct);
WriteDatFile(sampleRate, strMeasurementID, WAVE_Y, vecData,strProduct,ACCSampleTime);
vecDataY = DealData(WAVE_Y, coe, sampleRate, ACCSampleTime, strProduct);
WriteDatFile(sampleRate, strMeasurementID, WAVE_Y, vecDataY,strProduct,ACCSampleTime);
m_waveCountY = 0;
g_VecWaveDataY.clear();
VecWaveDataY.clear();
@ -846,13 +820,56 @@ void Uart::DealWave() {
if (m_waveCountZ > 0 || VecWaveDataZ.size() > 0) {
zlog_info(zct, "m_waveCountZ = %d,VecWaveDataZ = %d", m_waveCountZ, VecWaveDataZ.size());
coe = Calcoe(n, WAVE_Z, strProduct, range);
vecData = DealData(WAVE_Z, coe, sampleRate, ACCSampleTime, strProduct);
WriteDatFile(sampleRate, strMeasurementID, WAVE_Z, vecData,strProduct,ACCSampleTime);
vecDataZ = DealData(WAVE_Z, coe, sampleRate, ACCSampleTime, strProduct);
WriteDatFile(sampleRate, strMeasurementID, WAVE_Z, vecDataZ,strProduct,ACCSampleTime);
m_waveCountZ = 0;
g_VecWaveDataZ.clear();
VecWaveDataZ.clear();
}
char localtimestamp[32] = {0};
GetTimeNet(localtimestamp, 1);
char insertSql[100] = {0x00};
char whereCon[50] = {0x00};
sprintf(whereCon, "MeasurementID='%s'",strMeasurementID.c_str());
memset(whereCon, 0x00, sizeof(whereCon));
if (vecDataX.size() > 0)
{
sprintf(insertSql, "'%s-X','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
}
if (vecDataY.size() > 0)
{
sprintf(insertSql, "'%s-Y','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
}
if (vecDataZ.size() > 0)
{
sprintf(insertSql, "'%s-Z','%02x%02x','%s',0,'1','%s' ", strMeasurementID.c_str(),(wave_shortAddr >> 8) & 0xFF,wave_shortAddr & 0xFF,localtimestamp,"");
sqlite_db_ctrl::instance().InsertData(" receive_wave_status ", insertSql);
}
zlog_warn(zct,"waveCountX = %d, waveCountY = %d, waveCountZ = %d", vecDataX.size() , vecDataY.size(), vecDataZ.size());
zlog_warn(zct,"CountX = %d, CountY = %d, CountZ = %d", g_mapCompress[strShortAddr].CountX , g_mapCompress[strShortAddr].CountY, g_mapCompress[strShortAddr].CountZ);
if ((vecDataX.size() <= 0 && g_mapCompress[strShortAddr].CountX > 0) ||
(vecDataY.size() <= 0 && g_mapCompress[strShortAddr].CountY > 0) ||
(vecDataZ.size() <= 0 && g_mapCompress[strShortAddr].CountZ > 0))
{
scheduler::instance().WaveError(wave_shortAddr);
}else if ((vecDataX.size() > 0 && g_mapCompress[strShortAddr].CountX > 0) ||
(vecDataY.size() > 0 && g_mapCompress[strShortAddr].CountY > 0) ||
(vecDataZ.size() > 0 && g_mapCompress[strShortAddr].CountZ > 0))
{
scheduler::instance().WaveSuccess(wave_shortAddr);
}
g_mapCompress[strShortAddr].CountX = 0;
g_mapCompress[strShortAddr].CountY = 0;
g_mapCompress[strShortAddr].CountZ = 0;
g_mapCompress[strShortAddr].compressChannelX = 0;
g_mapCompress[strShortAddr].compressChannelY = 0;
g_mapCompress[strShortAddr].compressChannelZ = 0;
std::vector<float>().swap(vecDataX);
std::vector<float>().swap(vecDataY);
std::vector<float>().swap(vecDataZ);
wave_trans_ = false;
}
}
@ -1074,7 +1091,6 @@ void Uart::WriteDatFile(int sampleRate, std::string &strMeasurementID, int iChan
JsonData jd;
jd.JsonCmd_32(strMeasurementID,0,1,strChannelID,"");
zlog_info(zct, "write data to filename %s", strFileName.c_str());
std::vector<float>().swap(vecData);
sleep(1);
}