#include "SendStruct.h" #include "spdlog/spdlog.h" #include "GlobalVariable.h" // ************************** StOneRoadVolumeInfo ************************** 【【 StOneRoadVolumeInfo::StOneRoadVolumeInfo() { bSilence = SILENCE_DEF_VALUE; bOverload = false; bReversed = false; m_bNoise = false; m_bNoiseWarning = false; m_nLeftDBOfRealTime = VOLUME_MIN_BD; m_nRightDBOfRealTime = VOLUME_MIN_BD; for(int i = 0; i < VOLUME_INFO_NUM; ++i) { aryLeftDB[i] = VOLUME_MIN_BD; aryRightDB[i] = VOLUME_MIN_BD; } } StOneRoadVolumeInfo& StOneRoadVolumeInfo::operator=(const StOneRoadVolumeInfo &obj) { bSilence = obj.bSilence; bOverload = obj.bOverload; bReversed = obj.bReversed; m_bNoise = obj.m_bNoise; m_bNoiseWarning = obj.m_bNoiseWarning; m_nLeftDBOfRealTime = obj.m_nLeftDBOfRealTime; m_nRightDBOfRealTime = obj.m_nRightDBOfRealTime; for(int i = 0; i < VOLUME_INFO_NUM; ++i) { aryLeftDB[i] = obj.aryLeftDB[i]; aryRightDB[i] = obj.aryRightDB[i]; } return *this; } StOneRoadVolumeInfo::StOneRoadVolumeInfo(const StOneRoadVolumeInfo& obj) { *this = obj; } void StOneRoadVolumeInfo::GetDBString(std::string &strLeftDB, std::string &strRightDB, const uint32_t nDBNum) const { int nOffset = 1; if (nDBNum > 0) { nOffset = VOLUME_INFO_NUM / nDBNum; } strLeftDB = ""; strRightDB = ""; std::string strLeft, strRight; for(int i = 0; i < VOLUME_INFO_NUM; i+=nOffset) { strLeft = fmt::format("{}", aryLeftDB[i]); if (!strLeftDB.empty()) { strLeftDB += ","; } strLeftDB += strLeft; strRight = fmt::format("{}", aryRightDB[i]); if (!strRightDB.empty()) { strRightDB += ","; } strRightDB += strRight; } } std::string StOneRoadVolumeInfo::GetString() { std::string strRet = fmt::format("{},{},{},{},{}", bSilence, bOverload, bReversed, m_nLeftDBOfRealTime, m_nRightDBOfRealTime); return strRet; } std::string StOneRoadVolumeInfo::GetStringNoise() { std::string strRet = fmt::format("{},{},{},{},{},{}", bSilence, bOverload, bReversed, m_nLeftDBOfRealTime, m_nRightDBOfRealTime, m_bNoise); return strRet; } std::string StOneRoadVolumeInfo::GetStringNoiseWarning() { // 后5位0是预留扩展用的,避免每次修改接口 std::string strRet = fmt::format("{},{},{},{},{},{},{},0,0,0,0,0", bSilence, bOverload, bReversed, m_nLeftDBOfRealTime, m_nRightDBOfRealTime, m_bNoise, m_bNoiseWarning); return strRet; } bool StOneRoadVolumeInfo::isHasAlarm() { if (bSilence || bOverload || bReversed || m_bNoise) { return true; } return false; } // ************************** StSendChannelVolumeInfo ************************** 【【 StSendChannelVolumeInfo::StSendChannelVolumeInfo(const StSendChannelVolumeInfo& obj) { *this = obj; } StSendChannelVolumeInfo& StSendChannelVolumeInfo::operator=(const StSendChannelVolumeInfo &obj) { bNotConsistencyWarning = obj.bNotConsistencyWarning; bConsistency = obj.bConsistency; road1VolumeInfo = obj.road1VolumeInfo; road2VolumeInfo = obj.road2VolumeInfo; m_tCurTime = obj.m_tCurTime; bAlarm = obj.bAlarm; dSimilarity = obj.dSimilarity; return *this; } std::string StSendChannelVolumeInfo::GetString() { std::string strRet = fmt::format("{};{};{};{};{};{},End", m_tCurTime, bConsistency, bNotConsistencyWarning, road1VolumeInfo.GetString(), road2VolumeInfo.GetString(),dSimilarity); return strRet; } std::string StSendChannelVolumeInfo::GetStringNoise() { std::string strRet = fmt::format("{};{};{};{};{};{};End", m_tCurTime, bConsistency, bNotConsistencyWarning, road1VolumeInfo.GetStringNoise(), road2VolumeInfo.GetStringNoise(), bAlarm); return strRet; } std::string StSendChannelVolumeInfo::GetStringNoiseWarning() { // 后5位0是预留扩展用的,避免每次修改接口;2023-11-03 dSimilarity用掉1位,还有4位备用 std::string strRet = fmt::format("{};{};{};{};{};{};{};0;0;0;0;End", m_tCurTime, bConsistency, bNotConsistencyWarning, road1VolumeInfo.GetStringNoiseWarning(), road2VolumeInfo.GetStringNoiseWarning(), bAlarm, dSimilarity); return strRet; } bool StSendChannelVolumeInfo::isHasAlarmExcept() { if (road1VolumeInfo.isHasAlarm() || road2VolumeInfo.isHasAlarm()) { return true; } return false; }