TransmitterSwitchInfo.cpp 6.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287
  1. #include "TransmitterSwitchInfo.h"
  2. // #include "lhstylemanager.h"
  3. #include <QFile>
  4. #include <QEventLoop>
  5. /**
  6. * @brief 更新一个配置,不存在则添加
  7. *
  8. * @param data
  9. */
  10. void ConfigDataContainer::updateConfigData(const ConfigData& data)
  11. {
  12. if(m_mapConfigData.contains(data.key))
  13. {
  14. m_mapConfigData[data.key].value = data.value;
  15. m_mapConfigData[data.key].updateTime = data.updateTime;
  16. }else
  17. {
  18. /* 加入新的内容,添加说明 */
  19. m_mapConfigData.insert(data.key, data);
  20. if(KeyNotes.contains(data.key))
  21. {
  22. m_mapConfigData[data.key].notes = KeyNotes[data.key];
  23. }
  24. }
  25. }
  26. /* 获取一个配置 */
  27. ConfigData& ConfigDataContainer::getConfigData(int key)
  28. {
  29. if(m_mapConfigData.contains(key))
  30. {
  31. return m_mapConfigData[key];
  32. }
  33. return m_mapConfigData[0];
  34. }
  35. /* 查找一个配置是否在不在 */
  36. bool ConfigDataContainer::findConfigData(int key)
  37. {
  38. return m_mapConfigData.contains(key);
  39. }
  40. /* 删除一个配置 */
  41. void ConfigDataContainer::deleteConfigData(int key)
  42. {
  43. if(m_mapConfigData.contains(key))
  44. {
  45. m_mapConfigData.remove(key);
  46. }
  47. }
  48. ExecPlanItemInfo::ExecPlanItemInfo()
  49. {
  50. ExecType = -1;
  51. WeekDay = 0;
  52. // num = -1;
  53. date = QDate::fromString("1970-01-01","yyyy-MM-dd");
  54. execTime = QTime::fromString("00:00:00","hh:mm:ss");
  55. devName = "未定义";
  56. actionID = 0;
  57. actionName = "未定义";
  58. }
  59. ExecPlanItemInfo::ExecPlanItemInfo(const ExecPlanItemInfo& item)
  60. {
  61. ExecType = item.ExecType;
  62. WeekDay = item.WeekDay;
  63. date = item.date;
  64. execTime = item.execTime;
  65. actionID = item.actionID;
  66. devName = item.devName;
  67. actionName = item.actionName;
  68. }
  69. ExecPlanItemInfo& ExecPlanItemInfo::operator=(const ExecPlanItemInfo& item)
  70. {
  71. if(this == &item)
  72. return *this;
  73. ExecType = item.ExecType;
  74. WeekDay = item.WeekDay;
  75. // num = item.num;
  76. date = item.date;
  77. execTime = item.execTime;
  78. devName = item.devName;
  79. actionID = item.actionID;
  80. actionName = item.actionName;
  81. // dateType = item.dateType;
  82. // cfgDev = item.cfgDev;
  83. return *this;
  84. }
  85. DevTypeInfo::DevTypeInfo()
  86. {
  87. devTypeName = "";
  88. devAction.clear();
  89. devType_MB.clear();
  90. PTTypeCode = -1;
  91. }
  92. DevTypeInfo& DevTypeInfo::operator=(const DevTypeInfo& devInfo)
  93. {
  94. devTypeName = devInfo.devTypeName;
  95. devAction = devInfo.devAction;
  96. devType_MB = devInfo.devType_MB;
  97. PTTypeCode = devInfo.PTTypeCode;
  98. return *this;
  99. }
  100. MapDevType::MapDevType()
  101. {
  102. initDevType();
  103. }
  104. /* 添加支持的设备类型 */
  105. void MapDevType::initDevType()
  106. {
  107. /* 955发射机 */
  108. DevTypeInfo devInfo;
  109. devInfo.devTypeName = "衢州台发射机";
  110. devInfo.PTTypeCode = 955;
  111. devInfo.devAction[1] = "开机";
  112. devInfo.devAction[2] = "关机";
  113. devInfo.devType_MB.insert(enum_DeviceMB::Dev_Main,"主");
  114. devInfo.devType_MB.insert(enum_DeviceMB::Dev_Backup,"备");
  115. devInfo.devType_MB.insert(enum_DeviceMB::Dev_Contingency,"应急");
  116. m_mapDevType.insert(955, devInfo);
  117. /* 其他发射机 */
  118. }
  119. /* 获取某一个发射机类型 */
  120. DevTypeInfo MapDevType::getDevType(int PTTypeCode)
  121. {
  122. if(m_mapDevType.contains(PTTypeCode))
  123. {
  124. return m_mapDevType[PTTypeCode];
  125. }
  126. return DevTypeInfo();
  127. }
  128. DeviceInfo::DeviceInfo()
  129. {
  130. devName = "未定义";
  131. PTTypeCode = -1;
  132. DevType = DevTypeInfo();
  133. DTID = 0;
  134. DID = 0;
  135. ChannelID = 0;
  136. }
  137. DeviceInfo::DeviceInfo(const DeviceInfo& devInfo)
  138. {
  139. devName = devInfo.devName;
  140. PTTypeCode = devInfo.PTTypeCode;
  141. DevType = devInfo.DevType;
  142. DTID = devInfo.DTID;
  143. DID = devInfo.DID;
  144. MPID = devInfo.MPID;
  145. ChannelID = devInfo.ChannelID;
  146. }
  147. DeviceInfo& DeviceInfo::operator=(const DeviceInfo& devInfo)
  148. {
  149. devName = devInfo.devName;
  150. PTTypeCode = devInfo.PTTypeCode;
  151. DevType = devInfo.DevType;
  152. DTID = devInfo.DTID;
  153. DID = devInfo.DID;
  154. MPID = devInfo.MPID;
  155. ChannelID = devInfo.ChannelID;
  156. return *this;
  157. }
  158. MapDevice::MapDevice()
  159. {
  160. }
  161. /* 添加一个设备 */
  162. void MapDevice::addDevice(const DeviceInfo& devInfo)
  163. {
  164. /* 先查重 */
  165. if(m_mapDevice.contains(devInfo.devName))
  166. {
  167. return;
  168. }
  169. m_mapDevice.insert(devInfo.devName, devInfo);
  170. }
  171. /* 获取一个设备 */
  172. DeviceInfo MapDevice::getDevice(const QString& devName)
  173. {
  174. if(m_mapDevice.contains(devName))
  175. {
  176. return m_mapDevice[devName];
  177. }
  178. return DeviceInfo();
  179. }
  180. /* 查找一个设备 */
  181. bool MapDevice::findDevice(const QString& devName)
  182. {
  183. return m_mapDevice.contains(devName);
  184. }
  185. /* 根据设备名称获取设备动作 */
  186. bool MapDevice::getDevAction(const QString& devName, QMap<int, QString>& devAction)
  187. {
  188. if(m_mapDevice.contains(devName))
  189. {
  190. devAction = m_mapDevice[devName].DevType.devAction;
  191. return true;
  192. }
  193. return false;
  194. }
  195. /* 删除一个设备 */
  196. void MapDevice::deleteDevice(const QString& devName)
  197. {
  198. if(m_mapDevice.contains(devName))
  199. {
  200. m_mapDevice.remove(devName);
  201. }
  202. }
  203. ExecPlanGlobalConfig::ExecPlanGlobalConfig()
  204. {
  205. m_qssPath = ":/QSS/QSS";
  206. }
  207. /* 设置样式表路径 */
  208. // void ExecPlanGlobalConfig::setQSSPath(const QString& qssPath)
  209. // {
  210. // m_qssPath = qssPath;
  211. // }
  212. /* 获取样式表路径 */
  213. QString ExecPlanGlobalConfig::getQSSPath()
  214. {
  215. if(m_UIStyle == enum_UIStyle::UI_Light)
  216. {
  217. return m_qssPath + m_lightQSS;
  218. }
  219. else if(m_UIStyle == enum_UIStyle::UI_Dark)
  220. {
  221. return m_qssPath + m_darkQSS;
  222. }
  223. return QString();
  224. }
  225. /* 换肤,修改样式表 */
  226. void ExecPlanGlobalConfig::setUIStyle(enum_UIStyle style)
  227. {
  228. m_UIStyle = style;
  229. /* 打开文件OneItem的样式表,发送特殊换肤信号 */
  230. QFile file;
  231. QString qssOneItem = getQSSPath() + "/oneitem.qss";
  232. file.setFileName(qssOneItem);
  233. if(file.open(QIODevice::ReadOnly))
  234. {
  235. QString qss = file.readAll();
  236. file.close();
  237. emit signal_oneItemQssChanged(qss);
  238. }
  239. /* 发送普通换肤信号信号 */
  240. emit signal_qssChanged();
  241. /* 处理事件,让UI接收到换肤信号 */
  242. QEventLoop loop;
  243. loop.processEvents();
  244. }