| | |
| | | public partial class IBoxFormMonitor : DocumentPage |
| | | { |
| | | |
| | | private string startCode = "[&start&]"; |
| | | private string endCode = "[&end&]"; |
| | | private string paramCode = "[¶m&]"; |
| | | private string getbaseCode = "getbase"; |
| | | private string getrealrecordCode = "getrealrecord"; |
| | | private string gethistoryrecordCode = "gethistoryrecord"; |
| | | private string getalarmbydayCode = "getalarmbyday"; |
| | | private string getbysignalidofdayrangeCode = "getbysignalidofdayrange"; |
| | | |
| | | |
| | | //Stopwatch sw = new Stopwatch(); |
| | | //string swstr=string.Empty; |
| | |
| | | private List<DataGridMonitorViewModel> dataGridMonitorViewModels = new List<DataGridMonitorViewModel>(); |
| | | private List<PumpRunStatusViewModel> pumpRunStatusModels = new List<PumpRunStatusViewModel>(); |
| | | private List<PumpEnergyViewModel> pumpEnergyViewModels = new List<PumpEnergyViewModel>(); |
| | | |
| | | public void HideButton() |
| | | { |
| | | layoutControlItem10.Visibility = layoutControlItem3.Visibility = DevExpress.XtraLayout.Utils.LayoutVisibility.Never; |
| | | } |
| | | public IBoxFormMonitor() |
| | | { |
| | | this.PageTitle.Caption = "实时监测"; |
| | |
| | | _points.ShowInLegend = false; |
| | | _line.ShowInLegend = true; |
| | | |
| | | |
| | | // _line.LegendTextPattern = ""; |
| | | } |
| | | |
| | | //private void WebMessageReceived(object sender, CoreWebView2WebMessageReceivedEventArgs e) |
| | | //{ |
| | | // var j = JsonHelper.Json2Object<FixationReceivedViewModel>(e.WebMessageAsJson); |
| | | // var oper = new |
| | | // { |
| | | // oper = "setToken", |
| | | // dataValue = "" |
| | | // }; |
| | | // switch (j.Oper) |
| | | // { |
| | | // case "loadCompleted": |
| | | // break; |
| | | // } |
| | | //} |
| | | |
| | | private void TestData() |
| | | { |
| | | #region 测试数据 |
| | | |
| | | this.pumpRunStatusModels = new List<PumpRunStatusViewModel>(); |
| | | this.pumpRunStatusModels.Add(new PumpRunStatusViewModel() |
| | | { |
| | | ID = 1, |
| | | Name = "1#机组", |
| | | BootTimes = 50, |
| | | ContinutRunTime = 1000, |
| | | DateTime = DateTime.Now, |
| | | RunStatus = 1, |
| | | TotalRunTime = 1000, |
| | | }); |
| | | this.pumpRunStatusModels.Add(new PumpRunStatusViewModel() |
| | | { |
| | | ID = 2, |
| | | Name = "2#机组", |
| | | BootTimes = 100, |
| | | ContinutRunTime = 1300, |
| | | DateTime = DateTime.Now, |
| | | RunStatus = 0, |
| | | TotalRunTime = 1800, |
| | | }); |
| | | this.pumpRunStatusModels.Add(new PumpRunStatusViewModel() |
| | | { |
| | | ID = 3, |
| | | Name = "3#机组", |
| | | BootTimes = 400, |
| | | ContinutRunTime = 1500, |
| | | DateTime = DateTime.Now, |
| | | RunStatus = 1, |
| | | TotalRunTime = 2000, |
| | | }); |
| | | this.pumpRunStatusModels.Add(new PumpRunStatusViewModel() |
| | | { |
| | | ID = 4, |
| | | Name = "4#机组", |
| | | BootTimes = 100, |
| | | ContinutRunTime = 800, |
| | | DateTime = DateTime.Now, |
| | | RunStatus = 0, |
| | | TotalRunTime = 1300, |
| | | }); |
| | | this.Invoke(new Action(() => |
| | | { |
| | | this.pumpRunStatusViewModelBindingSource.DataSource = this.pumpRunStatusModels; |
| | | })); |
| | | |
| | | pumpEnergyViewModels = new List<PumpEnergyViewModel>(); |
| | | pumpEnergyViewModels.Add(new PumpEnergyViewModel() |
| | | { |
| | | Day = "2024-4-14", |
| | | Electricity = 4172, |
| | | Supply = 50510, |
| | | EnergyOfWater = (decimal)82.04 |
| | | }); |
| | | |
| | | pumpEnergyViewModels.Add(new PumpEnergyViewModel() |
| | | { |
| | | Day = "2024-4-15", |
| | | Electricity = 3308, |
| | | Supply = 32530, |
| | | EnergyOfWater = (decimal)80.14 |
| | | }); |
| | | |
| | | pumpEnergyViewModels.Add(new PumpEnergyViewModel() |
| | | { |
| | | Day = "2024-4-16", |
| | | Electricity = 3378, |
| | | Supply = 42630, |
| | | EnergyOfWater = (decimal)73.34 |
| | | }); |
| | | |
| | | pumpEnergyViewModels.Add(new PumpEnergyViewModel() |
| | | { |
| | | Day = "2024-4-17", |
| | | Electricity = 4178, |
| | | Supply = 51530, |
| | | EnergyOfWater = (decimal)81.34 |
| | | }); |
| | | |
| | | this.Invoke(new Action(() => |
| | | { |
| | | this.pumpEnergyViewModelBindingSource.DataSource = pumpEnergyViewModels; |
| | | })); |
| | | |
| | | #endregion 测试数据 |
| | | } |
| | | |
| | | private void EboxForm_Load(object sender, EventArgs e) |
| | | { |
| | | //BluetoothHelper.GetInstance().SMR -= null; |
| | | //BluetoothHelper.GetInstance().SMR += new BluetoothHelper.ShowMessReturn(GetReceive); |
| | | //BluetoothHelper.GetInstance().ListenerData(); |
| | | Thread.Sleep(500); |
| | | SendText(startCode + getbaseCode + paramCode + endCode); |
| | | SendText(IBoxHelper.startCode + IBoxHelper.getbaseCode + IBoxHelper.paramCode + IBoxHelper.endCode); |
| | | _diagram.EnableAxisXScrolling = true; |
| | | _diagram.EnableAxisYScrolling = true; |
| | | _diagram.EnableAxisXZooming = true; |
| | | _diagram.EnableAxisYZooming = true; |
| | | //SetTimer(); |
| | | |
| | | } |
| | | |
| | | public void GetReceive(string msg) |
| | | { |
| | | if (!this.IsHandleCreated || this.IsDisposed || string.IsNullOrEmpty(msg)) return; |
| | | if (msg.StartsWith("error:") && msg.Contains("目标主机坏了")) |
| | | { |
| | | MessageBoxHelper.ShowError("m 蓝牙设备连接失败,请重试!"); return; |
| | | } |
| | | if (!string.IsNullOrEmpty(msg) && msg.Contains(startCode)) |
| | | { |
| | | var order = msg.Replace(endCode, "").Replace(startCode, "").Trim(); |
| | | SetOrder(order); |
| | | } |
| | | else MessageBoxHelper.ShowError("m 蓝牙设备连接失败!"); |
| | | } |
| | | |
| | | private void SetOrder(string order) |
| | | { |
| | | var smsg = order.Split(new string[] { paramCode }, StringSplitOptions.RemoveEmptyEntries); |
| | | if (smsg.Length < 2) |
| | | { |
| | | _diagram.DefaultPane.Visibility = ChartElementVisibility.Hidden; |
| | | return; |
| | | } |
| | | _diagram.DefaultPane.Visibility = ChartElementVisibility.Visible; |
| | | |
| | | switch (smsg[0].Trim()) |
| | | { |
| | | case "getbase": |
| | | var getbaselist = JsonHelper.Json2Object<List<StationMonitorListGroupMobileDto>>(smsg[1].Trim()); |
| | | BindGrid(getbaselist); |
| | | WaitFormHelper.HideWaitForm(); |
| | | break; |
| | | |
| | | case "gethistoryrecord": |
| | | var b = smsg[1].Trim(); |
| | | var gethistoryrecordlist = new List<MonitorRecord>(); |
| | | |
| | | if (!string.IsNullOrEmpty(b)) |
| | | { |
| | | var c = b.Split('|'); |
| | | foreach (var item in c) |
| | | { |
| | | var m = new MonitorRecord().FromString(item); |
| | | gethistoryrecordlist.Add(m); |
| | | } |
| | | } |
| | | //SetChartData(gethistoryrecordlist); |
| | | break; |
| | | |
| | | case "getalarmbyday": |
| | | //var getalarmbydaylist = JsonHelper.Json2Object<List<MonitorValueAlarmRecord>>(smsg[1].Trim()); |
| | | //monitorValueAlarmRecords = getalarmbydaylist; |
| | | //this.bindingSource1.DataSource = dataGridMonitorViewModels; |
| | | var l = smsg[1].Trim(); |
| | | SetAlarmByDay(l); |
| | | //this.gridView2.RefreshData(); |
| | | break; |
| | | |
| | | case "getbysignalidofdayrange": |
| | | var getbysignalidofdayrangelist = JsonHelper.Json2Object<List<MonitorValueAlarmRecord>>(smsg[1].Trim()); |
| | | break; |
| | | |
| | | case "getrealrecord": |
| | | var getrealrecordlist = JsonHelper.Json2Object<List<MonitorRealRecord>>(smsg[1].Trim()); |
| | | SetRealRecord(getrealrecordlist); |
| | | break; |
| | | } |
| | | } |
| | | |
| | | public void SetAlarmByDay(string l, bool isBlue = true) |
| | |
| | | } |
| | | private List<DataGridMonitorViewModel> dataList = null; |
| | | |
| | | /// <summary> |
| | | /// 绑定数据 |
| | | /// </summary> |
| | | /// <param name="list"></param> |
| | | /// <param name="isBlue"></param> |
| | | public void BindGrid(List<StationMonitorListGroupMobileDto> list, bool isBlue = true) |
| | | { |
| | | dataList = new List<DataGridMonitorViewModel>(); |
| | |
| | | this.gridView1.RefreshData(); |
| | | |
| | | } |
| | | //var am = new GetAlarmByDayModel() { Day = DateTime.Now }; |
| | | //SendText(startCode + getalarmbydayCode + paramCode + JsonHelper.Object2Json(am) + endCode); |
| | | //WaitFrmHelper.HideWaitForm(); |
| | | } |
| | | |
| | | private void gridView1_RowCellClick(object sender, DevExpress.XtraGrid.Views.Grid.RowCellClickEventArgs e) |
| | |
| | | |
| | | private void simpleButton1_Click(object sender, EventArgs e) |
| | | { |
| | | Search(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 查询 |
| | | /// </summary> |
| | | public void Search() |
| | | { |
| | | if (currModel == null) |
| | | { |
| | | MessageBoxHelper.ShowWarning("请先选中监测数据!"); |
| | | return; |
| | | } |
| | | GetHistoryData(); |
| | | //WaitFrmHelper.ShowWaitForm(); |
| | | } |
| | | |
| | | private void simpleButton2_Click(object sender, EventArgs e) |
| | |
| | | { get { return this.chartControl1.Diagram as XYDiagram; } } |
| | | |
| | | List<MonitorRecord> _realList = null; |
| | | |
| | | /// <summary> |
| | | /// 绑定实时数据 |
| | | /// </summary> |
| | | /// <param name="list"></param> |
| | | /// <param name="isBlue"></param> |
| | | public void SetChartData(List<MonitorRecord> list, bool isBlue) |
| | | { |
| | | _realList = list; |
| | |
| | | |
| | | private void gridView1_DoubleClick(object sender, EventArgs e) |
| | | { |
| | | //WaitFrmHelper.ShowWaitForm(); |
| | | var r = this.gridView1.GetFocusedRow() as DataGridMonitorViewModel; |
| | | currModel = r; |
| | | //sw.Restart(); |
| | | GetHistoryData(); |
| | | } |
| | | |
| | | private void GetHistoryData() |
| | | public void GetHistoryData() |
| | | { |
| | | var m = new MonitorHistoryQuery() |
| | | { |
| | |
| | | StartTime = dateEdit1.Text,//.Equals(DateTime.Now.ToString("yyyy-MM-dd")) ? DateTime.Now.AddMinutes(-20).ToString("yyyy-MM-dd HH:mm:ss") : dateEdit1.Text, |
| | | EndTime = dateEdit2.Text//.Equals(DateTime.Now.ToString("yyyy-MM-dd")) ? DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") : dateEdit2.Text, |
| | | }; |
| | | SendText(startCode + gethistoryrecordCode + paramCode + JsonHelper.Object2Json(m) + endCode); |
| | | } |
| | | |
| | | private void GetAlarmRange() |
| | | { |
| | | var m = new GetBySignalIDOfDayRangeModel() |
| | | { |
| | | SignalID = currModel.SignalID, |
| | | StartDay = DateTime.Parse(dateEdit1.Text), |
| | | EndDay = DateTime.Parse(dateEdit1.Text), |
| | | }; |
| | | |
| | | SendText(startCode + getbysignalidofdayrangeCode + paramCode + JsonHelper.Object2Json(m) + endCode); |
| | | } |
| | | |
| | | private void checkBox1_CheckedChanged(object sender, EventArgs e) |
| | | { |
| | | SetTimer(); |
| | | } |
| | | |
| | | private void SetTimer() |
| | | { |
| | | if (dataList == null) |
| | | { |
| | | return; |
| | | } |
| | | timer1.Interval = 5000; |
| | | timer1.Enabled = true; |
| | | timer1.Tick += new EventHandler(GetRealData); |
| | | SendText(IBoxHelper.startCode + IBoxHelper.gethistoryrecordCode + IBoxHelper.paramCode + JsonHelper.Object2Json(m) + IBoxHelper.endCode); |
| | | } |
| | | |
| | | private void GetRealData(object sender, EventArgs e) |
| | | { |
| | | SendText(startCode + getrealrecordCode + paramCode + endCode); |
| | | } |
| | | |
| | | private void comboBox1_SelectedValueChanged(object sender, EventArgs e) |
| | | { |
| | | SetTimer(); |
| | | SendText(IBoxHelper.startCode + IBoxHelper.getrealrecordCode + IBoxHelper.paramCode + IBoxHelper.endCode); |
| | | } |
| | | |
| | | private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e) |
| | |
| | | } |
| | | } |
| | | |
| | | private void button2_Click(object sender, EventArgs e) |
| | | { |
| | | BluetoothHelper.GetInstance().Close(); |
| | | } |
| | | |
| | | private void tabbedControlGroup1_SelectedPageChanged(object sender, DevExpress.XtraLayout.LayoutTabPageChangedEventArgs e) |
| | | { |
| | | //MessageBox.Show(tabbedControlGroup1.SelectedTabPage.Tag.ToString()); |
| | | } |
| | | |
| | | private void gridControl2_Click(object sender, EventArgs e) |
| | | { |
| | | } |
| | | |
| | | public event EventHandler<string> SendData; |
| | | private void SendText(string content) |
| | | { |
| | | //BluetoothHelper.GetInstance().SendData(content); |
| | | SendData?.Invoke(null, content); |
| | | if (SendData != null) |
| | | { |
| | | SendData?.Invoke(null, content); |
| | | |
| | | } |
| | | else |
| | | { |
| | | if (IBoxHelper.Ping()) |
| | | { |
| | | var smsg = content.Split(new string[] { IBoxHelper.paramCode, IBoxHelper.startCode }, StringSplitOptions.RemoveEmptyEntries); |
| | | if (smsg.Length < 2) |
| | | { |
| | | return; |
| | | } |
| | | var order = IBoxHelper.HttpGet(content); |
| | | var result = IBoxHelper.GetContent(order); |
| | | |
| | | switch (smsg[0].Trim()) |
| | | { |
| | | case IBoxHelper.getbaseCode: |
| | | { |
| | | if (!string.IsNullOrEmpty(result)) |
| | | { |
| | | var model = JsonHelper.Json2Object<List<StationMonitorListGroupMobileDto>>(result); |
| | | BindGrid(model, false); |
| | | } |
| | | break; |
| | | } |
| | | case IBoxHelper.getrealrecordCode: |
| | | { |
| | | if (!string.IsNullOrEmpty(result)) |
| | | { |
| | | var getrealrecordlist = JsonHelper.Json2Object<List<MonitorRealRecord>>(result); |
| | | SetRealRecord(getrealrecordlist, false); |
| | | } |
| | | break; |
| | | } |
| | | case IBoxHelper.gethistoryrecordCode: |
| | | { |
| | | if (!string.IsNullOrEmpty(result)) |
| | | { |
| | | var b = result.Split('|')[1]; |
| | | var gethistoryrecordlist = new List<MonitorRecord>(); |
| | | |
| | | if (!string.IsNullOrEmpty(b)) |
| | | { |
| | | var c = b.Split('|'); |
| | | foreach (var item in c) |
| | | { |
| | | var m = new MonitorRecord().FromString(item); |
| | | gethistoryrecordlist.Add(m); |
| | | } |
| | | } |
| | | SetChartData(gethistoryrecordlist, false); |
| | | } |
| | | break; |
| | | } |
| | | default: |
| | | IBoxHelper.HttpGet(content); |
| | | break; |
| | | } |
| | | } |
| | | else |
| | | { |
| | | MessageBoxHelper.ShowWarning("网络连接失败,请检查网络"); |
| | | } |
| | | } |
| | | } |
| | | |
| | | private void simpleButton5_Click(object sender, EventArgs e) |
| | |
| | | ExportXLS(); |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 导出Excel |
| | | /// </summary> |
| | | public void ExportXLS() |
| | | { |
| | | try |