diff --git a/platform/platform_init.cpp b/platform/platform_init.cpp index 88aeebf..f408a14 100644 --- a/platform/platform_init.cpp +++ b/platform/platform_init.cpp @@ -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 = ""; diff --git a/uart/uart_feature_parse.cpp b/uart/uart_feature_parse.cpp index e41619e..fe197e5 100644 --- a/uart/uart_feature_parse.cpp +++ b/uart/uart_feature_parse.cpp @@ -764,7 +764,7 @@ void Uart::DealWave() { std::string strMeasurementID = ""; std::string strFileName = ""; std::string strProduct = ""; - std::vector vecData; + std::vector 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().swap(vecDataX); + std::vector().swap(vecDataY); + std::vector().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().swap(vecData); sleep(1); }