BaseDbCls.cs 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. using com.hnshituo.core.webapp.vo;
  2. using Common;
  3. using MeterPlugInLibrary;
  4. using System;
  5. using System.Collections.Generic;
  6. using System.IO;
  7. using System.Linq;
  8. using System.Reflection;
  9. using System.Text;
  10. using System.Threading.Tasks;
  11. namespace CarMonitor
  12. {
  13. /// <summary>
  14. /// 基础数据获取
  15. /// </summary>
  16. public class BaseDbCls
  17. {
  18. Log lg = Log.GetInstance();
  19. /// <summary>
  20. /// 将基础数据全部载入缓存中
  21. /// </summary>
  22. /// <returns></returns>
  23. public bool setBaseDb()
  24. {
  25. #region 初始化一次缓存类
  26. PbCacheMonitor.monitor = new MeterWorkMonitor();
  27. PbCacheMonitor.Load();
  28. #endregion
  29. #region 读取音频文件名称
  30. List<string> ls = new List<string>();
  31. DirectoryInfo folder = new DirectoryInfo(PbCacheMonitor.path + "\\Sound");
  32. foreach (FileInfo file in folder.GetFiles("*.wav"))
  33. {
  34. ls.Add(file.Name.Replace(".wav", ""));
  35. }
  36. PbCacheMonitor.voiceInfo = ls;
  37. #endregion
  38. #region 所有摄像头配置信息
  39. MeterBaseVideoinfoService mbvs = new MeterBaseVideoinfoService();
  40. RESTfulResult<List<MeterBaseVideoinfo>> rm = mbvs.doQueryWf(new MeterBaseVideoinfo { });
  41. if (rm.Succeed && rm.Data != null && rm.Data.Count > 0)
  42. {
  43. PbCacheMonitor.ltVideoInfo = rm.Data;
  44. }
  45. else
  46. {
  47. lg.WriteLog(1, "未找到摄像头配置信息MeterBaseVideoinfo");
  48. return false;
  49. }
  50. #endregion
  51. #region 所有计量点数据
  52. MeterBaseSpotInfoService service = new MeterBaseSpotInfoService();
  53. RESTfulResult<List<MeterBaseSpotInfo>> rms = service.doQueryWf(new MeterBaseSpotInfo { validFlag = "1" });
  54. if (rms.Succeed && rms.Data != null && rms.Data.Count > 0)
  55. {
  56. PbCacheMonitor.sportInfos = rms.Data;
  57. }
  58. else
  59. {
  60. lg.WriteLog(1, "MeterBaseSpotInfo");
  61. return false;
  62. }
  63. #endregion
  64. #region 秤体量程配置
  65. MeterBaseScaleRangeService rangeService = new MeterBaseScaleRangeService();
  66. RESTfulResult<List<MeterBaseScaleRange>> rmR = rangeService.doQueryWf(new MeterBaseScaleRange { });
  67. if (rmR.Succeed && rmR.Data != null && rmR.Data.Count > 0)
  68. {
  69. PbCacheMonitor.ltRange = rmR.Data;
  70. }
  71. else
  72. {
  73. lg.WriteLog(1, "未找到秤体量程配置信息MeterBaseScaleRange");
  74. return false;
  75. }
  76. #endregion
  77. return true;
  78. }
  79. public bool getDb()
  80. {
  81. #region 实时获取监控信息
  82. MeterWorkMonitorService monitorService = new MeterWorkMonitorService();
  83. RESTfulResult<List<MeterWorkMonitor>> rmMonitor = monitorService.doQueryAllWf(new MeterWorkMonitor { validFlag = "1" });
  84. if (rmMonitor.Succeed)
  85. {
  86. PbCacheMonitor.ltWorkMonitor = rmMonitor.Data;
  87. return true;
  88. }
  89. else
  90. {
  91. lg.WriteLog(4, "未找到秤体量程配置信息MeterBaseScaleRange");
  92. return false;
  93. }
  94. #endregion
  95. }
  96. public bool getSpot()
  97. {
  98. #region 获取摄像头数据用于截图
  99. if (PbCacheMonitor.ltVideoInfo != null && PbCacheMonitor.ltVideoInfo.Count > 0)
  100. {
  101. PbCacheMonitor.videoInfo = PbCacheMonitor.ltVideoInfo.Where(s => s.pointid == PbCacheMonitor.sportInfo.baseSpotNo).FirstOrDefault();
  102. List<MeterBaseVideoChild> videoChild = new List<MeterBaseVideoChild>();
  103. Type postType = PbCacheMonitor.videoInfo.GetType();
  104. PropertyInfo[] postTypeInfos = postType.GetProperties(); //返回为当前 Type 的所有公共属性,PropertyInfo[] PropertyInfo 的所有公共属性的 Type 对象数组
  105. foreach (PropertyInfo p in postTypeInfos)
  106. {
  107. if (p.Name.Contains("position"))
  108. {
  109. string str = (string)p.GetValue(PbCacheMonitor.videoInfo, null);
  110. if (str != "" && str != null)
  111. {
  112. videoChild.Add(
  113. new MeterBaseVideoChild
  114. {
  115. pointid = PbCacheMonitor.videoInfo.pointid,
  116. p_ip = str,
  117. p_rate = "0",//************解码率直接给定了,这里没取配置值*************
  118. vdo_port = PbCacheMonitor.videoInfo.vdoPort,
  119. vdo_pwd = PbCacheMonitor.videoInfo.vdoPwd,
  120. vdo_user = PbCacheMonitor.videoInfo.vdoUser
  121. }
  122. );
  123. }
  124. }
  125. }
  126. PbCacheMonitor.videoChild = videoChild;
  127. }
  128. #endregion
  129. return true;
  130. }
  131. }
  132. }