SendStruct.h 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. #ifndef _SENDSTRUCT_H_
  2. #define _SENDSTRUCT_H_
  3. #include <string>
  4. #include <map>
  5. #include "GlobalVariable.h"
  6. #include "ChannelParam.h"
  7. /**
  8. * @brief 对比项信息结构体
  9. *
  10. */
  11. // struct StCompareItemInfo
  12. // {
  13. // int compareItemID; /* 对比项ID */
  14. // std::string compareItemName; /* 对比项名称 */
  15. // std::map<ERoadID, std::string> mapRoad; /* 录音通道 */
  16. // /* 静音检测条件 */
  17. // bool isSilentSwitch; /* 静音开关 */
  18. // int silentThreshold; /* 静音阈值,单位:DB */
  19. // int silentDuration; /* 静音持续时间,单位:秒 */
  20. // /* 过载检测条件 */
  21. // bool isOverloadSwitch; /* 过载开关 */
  22. // int overloadThreshold; /* 过载阈值,单位:DB */
  23. // int overloadDuration; /* 过载持续时间,单位:秒 */
  24. // };
  25. /**
  26. * @brief 单个通道的音量信息结构体
  27. *
  28. */
  29. struct StOneRoadVolumeInfo
  30. {
  31. int bSilence;
  32. int bOverload;
  33. int bReversed;
  34. int m_bNoise;
  35. // 噪音预警
  36. int m_bNoiseWarning;
  37. // 一个音量包有30个DB
  38. int aryLeftDB[VOLUME_INFO_NUM];
  39. int aryRightDB[VOLUME_INFO_NUM];
  40. // 实时计算音量信息 1000毫秒30个数据,100/3毫秒(更新一次)一个数据
  41. int m_nLeftDBOfRealTime;
  42. int m_nRightDBOfRealTime;
  43. StOneRoadVolumeInfo();
  44. StOneRoadVolumeInfo& operator=(const StOneRoadVolumeInfo &obj);
  45. StOneRoadVolumeInfo(const StOneRoadVolumeInfo& obj);
  46. std::string GetString();
  47. std::string GetStringNoise();
  48. std::string GetStringNoiseWarning();
  49. bool isHasAlarm();
  50. // nDBNum要返回多少个音量值
  51. void GetDBString(std::string &strLeftDB, std::string &strRightDB, const uint32_t nDBNum = 10) const;
  52. };
  53. /**
  54. * @brief 需要发送的总的结构体,带有频道信息
  55. *
  56. */
  57. struct StSendChannelVolumeInfo
  58. {
  59. int bConsistency; /* 一致性 */
  60. int bNotConsistencyWarning; /* 不一致预警 */
  61. StOneRoadVolumeInfo road1VolumeInfo; /* 通道1的音量信息 */
  62. StOneRoadVolumeInfo road2VolumeInfo; /* 通道2的音量信息 */
  63. int bAlarm; /* 客户端界面是否报警【噪音和不一致】 */
  64. double dSimilarity; /* 相似度,0-100之间 */
  65. long m_tCurTime; /* 当前时间戳,单位:毫秒 */
  66. StSendChannelVolumeInfo(): bConsistency(false), bNotConsistencyWarning(false), bAlarm(true), m_tCurTime(0) { }
  67. StSendChannelVolumeInfo(const StSendChannelVolumeInfo& obj);
  68. StSendChannelVolumeInfo& operator=(const StSendChannelVolumeInfo &obj);
  69. std::string GetString();
  70. std::string GetStringNoise();
  71. std::string GetStringNoiseWarning();
  72. // 除不一致报警外,有没有其他报警
  73. bool isHasAlarmExcept();
  74. };
  75. #endif /* _SENDSTRUCT_H_ */