Main.cs 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. using System;
  2. using DevExpress.XtraBars;
  3. using UAS_DeviceMonitor.DataOperate;
  4. using System.Data;
  5. using System.Text;
  6. using UAS_DeviceMonitor.Entity;
  7. using UAS_DeviceMonitor.Device.Command;
  8. using UAS_DeviceMonitor.PublicMethod;
  9. using DevExpress.XtraEditors;
  10. using DevExpress.XtraGrid;
  11. using DevExpress.XtraGrid.Views.Grid;
  12. using System.Timers;
  13. using System.Threading;
  14. using System.Threading.Tasks;
  15. namespace UAS_DeviceMonitor
  16. {
  17. public partial class Main : DevExpress.XtraBars.Ribbon.RibbonForm
  18. {
  19. StringBuilder sql = new StringBuilder();
  20. public Main()
  21. {
  22. SystemInf.dh = new DataHelper();
  23. InitializeComponent();
  24. dpc_enableCheckEdit.QueryCheckStateByValue += CheckedEdit_QueryCheckStateByValue;
  25. CheckEditCommandSet.QueryCheckStateByValue += CheckedEdit_QueryCheckStateByValue;
  26. }
  27. private void Main_Load(object sender, EventArgs e)
  28. {
  29. //设备列表
  30. GridDeviceList.GetDataSQL = "select de_id,de_code,de_name,de_spec,de_indate,de_runstatus,de_address,de_wccode,de_vendcode,de_vendname from device".ToUpper();
  31. PageControlDeviceList.Gridcontrol = GridDeviceList;
  32. //轮询业务
  33. GridPolling.GetDataSQL = "select pl_id,pl_code,pl_name,pl_type,pl_dccode,pl_remark from polling".ToUpper();
  34. GridPolling.ID = "pl_id";
  35. GridPolling.TableName = "polling";
  36. GridPolling.InsertSQL = "insert into polling(pl_id,pl_code,pl_name,pl_type,pl_dccode,pl_remark) values(polling_seq.nextval,:pl_code,:pl_name,:pl_type,:pl_dccode,:pl_remark)";
  37. ButtonDeletePolling.Grid = GridPolling;
  38. ButtonSavePolling.Grid = GridPolling;
  39. ButtonAddPolling.Grid = GridPolling;
  40. //轮询配置界面
  41. GridPollingSetting.GetDataSQL = "SELECT DPC_ID,DPC_DECODE ,DPC_PLCODE ,DPC_PLNAME ,DPC_INTERVAL ,DPC_DCCODE ,DPC_FUNCTION , DPC_ENABLE,DPC_STATUS ,DPC_REMARK FROM DEVICEPOLLINGCONFIG";
  42. GridPollingSetting.ID = "DPC_ID";
  43. GridPollingSetting.TableName = "DEVICEPOLLINGCONFIG";
  44. GridPollingSetting.InsertSQL = "insert into DEVICEPOLLINGCONFIG(DPC_ID,DPC_DECODE ,DPC_PLCODE ,DPC_PLNAME ,DPC_INTERVAL ,DPC_DCCODE ,DPC_FUNCTION , DPC_ENABLE,DPC_STATUS ,DPC_REMARK) values(DEVICEPOLLINGCONFIG_seq.nextval,:DPC_DECODE ,:DPC_PLCODE ,:DPC_PLNAME ,:DPC_INTERVAL ,:DPC_DCCODE ,:DPC_FUNCTION , :DPC_ENABLE,:DPC_STATUS ,:DPC_REMARK)";
  45. ButtonSaveCommandSet.Grid = GridPollingSetting;
  46. ButtonNewCommandSet.Grid = GridPollingSetting;
  47. ButtonDeleteCommandSet.Grid = GridPollingSetting;
  48. //指令设置界面
  49. GridCommandSetting.GetDataSQL = "select 0 CHOOSE,dc_id,dc_code,dc_name,dc_command from devicecommand".ToUpper();
  50. GridCommandSetting.TableName = "devicecommand";
  51. GridCommandSetting.ID = "dc_id";
  52. GridCommandSetting.InsertSQL = "insert into devicecommand(dc_id,dc_code,dc_name,dc_command) values(devicecommand_seq.nextval,:dc_code,:dc_name,:dc_command)";
  53. ButtonSaveCommand.Grid = GridCommandSetting;
  54. ButtonDeleteCommand.Grid = GridCommandSetting;
  55. }
  56. #region 界面通用事件
  57. /// <summary>
  58. /// 选项卡切换不同XPage
  59. /// </summary>
  60. /// <param name="sender"></param>
  61. /// <param name="e"></param>
  62. private void ButtonItem_ItemClick(object sender, ItemClickEventArgs e)
  63. {
  64. HideXPage(e.Item.Tag.ToString());
  65. }
  66. /// <summary>
  67. /// 根据点击按钮的Tag显示对应的XPage
  68. /// </summary>
  69. /// <param name="PageName"></param>
  70. private void HideXPage(string PageName)
  71. {
  72. for (int i = 0; i < MainTabControl.TabPages.Count; i++)
  73. {
  74. if (MainTabControl.TabPages[i].Name == PageName)
  75. MainTabControl.TabPages[i].PageVisible = true;
  76. else
  77. MainTabControl.TabPages[i].PageVisible = false;
  78. }
  79. }
  80. /// <summary>
  81. /// 勾选Grid的CheckBox
  82. /// </summary>
  83. /// <param name="sender"></param>
  84. /// <param name="e"></param>
  85. private void CheckedEdit_QueryCheckStateByValue(object sender, DevExpress.XtraEditors.Controls.QueryCheckStateByValueEventArgs e)
  86. {
  87. string val = "";
  88. if (e.Value != null)
  89. {
  90. val = e.Value.ToString();
  91. }
  92. else
  93. {
  94. val = "FALSE";//默认为不选
  95. }
  96. switch (val.ToUpper())
  97. {
  98. case "TRUE":
  99. case "YES":
  100. case "1":
  101. e.CheckState = System.Windows.Forms.CheckState.Checked;
  102. break;
  103. case "FALSE":
  104. case "NO":
  105. case "0":
  106. e.CheckState = System.Windows.Forms.CheckState.Unchecked;
  107. break;
  108. default:
  109. e.CheckState = System.Windows.Forms.CheckState.Checked;
  110. break;
  111. }
  112. e.Handled = true;
  113. }
  114. #endregion
  115. #region PageCommandSet业务代码
  116. /// <summary>
  117. /// 新增指令弹窗
  118. /// </summary>
  119. /// <param name="sender"></param>
  120. /// <param name="e"></param>
  121. private void ButtonNewCommand_Click(object sender, EventArgs e)
  122. {
  123. FormNewCommand fncmd = new FormNewCommand(BaseUtil.GetComboxEditValue(Brand), Brand.Text);
  124. fncmd.ShowDialog();
  125. GridCommandSetting.RefreshData();
  126. }
  127. /// <summary>
  128. /// 判断指令编号不能重复
  129. /// </summary>
  130. /// <param name="sender"></param>
  131. /// <param name="e"></param>
  132. private void ButtonSaveCommand_Click(object sender, EventArgs e)
  133. {
  134. ButtonSaveCommand.DoSave();
  135. }
  136. /// <summary>
  137. /// 加载ComBox品牌数据
  138. /// </summary>
  139. /// <param name="sender"></param>
  140. /// <param name="e"></param>
  141. private void PageCommandSet_VisibleChanged(object sender, EventArgs e)
  142. {
  143. if (PageCommandSet.PageVisible)
  144. {
  145. DataTable dt = (DataTable)SystemInf.dh.ExecuteSql("select * from devicebrand", "select");
  146. BaseUtil.FillComBoxEditWidthDataTable(Brand, "db_name", "db_code", dt);
  147. GridCommandSetting.Condition = " where dc_brand='" + BaseUtil.GetComboxEditValue(Brand) + "'";
  148. }
  149. }
  150. private void Brand_SelectedIndexChanged(object sender, EventArgs e)
  151. {
  152. GridCommandSetting.Condition = " where dc_brand='" + BaseUtil.GetComboxEditValue(Brand) + "'";
  153. GridCommandSetting.RefreshData();
  154. }
  155. #endregion
  156. #region PagePollingSetting业务代码
  157. bool PollingSign = false;
  158. private void ButtonStartPolling_Click(object sender, EventArgs e)
  159. {
  160. PollingTask pt = new PollingTask();
  161. GridView grid = GridViewPollSetting;
  162. for (int i = 0; i < GridPollingSetting.RowCount; i++)
  163. {
  164. Polling pl = new Polling();
  165. pl.DeviceCode = GridViewPollSetting.GetRowCellValue(i, "DPC_DECODE").ToString();
  166. pl.Interval = int.Parse(GridViewPollSetting.GetRowCellValue(i, "DPC_INTERVAL").ToString());
  167. pl.Enable = GridViewPollSetting.GetRowCellValue(i, "DPC_ENABLE").ToString() != "0";
  168. if (pl.Enable)
  169. pt.AddTask(RunTask, pl);
  170. }
  171. PollingSign = true;
  172. pt.StartAllTask();
  173. }
  174. private void RunTask(object i)
  175. {
  176. while (PollingSign)
  177. {
  178. Polling pl = (Polling)i;
  179. int Interval = pl.Interval;
  180. string Decode = pl.DeviceCode;
  181. Thread.Sleep(Interval * 1000);
  182. SystemInf.dh.ExecuteSql("insert into DEVICEPOLLINGCONFIG(DPC_ID,DPC_DECODE ,DPC_PLCODE ,DPC_PLNAME ,DPC_INTERVAL ,DPC_DCCODE ,DPC_FUNCTION , DPC_ENABLE,DPC_STATUS ,DPC_REMARK) values(DEVICEPOLLINGCONFIG_seq.nextval,'" + Decode + "','','' ,'' ,'' ,'' , '','' ,'')", "insert");
  183. }
  184. }
  185. private void ButtonPausePolling_Click(object sender, EventArgs e)
  186. {
  187. PollingSign = false;
  188. }
  189. /// <summary>
  190. /// 设置GridView下拉框的值
  191. /// </summary>
  192. /// <param name="sender"></param>
  193. /// <param name="e"></param>
  194. private void PagePollingSetting_VisibleChanged(object sender, EventArgs e)
  195. {
  196. if (PagePollingSetting.PageVisible)
  197. {
  198. DataTable dt = (DataTable)SystemInf.dh.ExecuteSql("select dc_name,dc_code from devicecommand ", "select");
  199. PollingSetItemLookUpEdit.DataSource = dt;
  200. PollingSetItemLookUpEdit.DisplayMember = "DC_NAME";
  201. PollingSetItemLookUpEdit.ValueMember = "DC_CODE";
  202. }
  203. }
  204. #endregion
  205. }
  206. }