qin
2025-03-17 a4657284bf071582077d84caf9e61b59d80c9796
WinFrmUI/IBox.WinFrmUI/Form/IBoxFormMonitor.cs
@@ -43,121 +43,10 @@
            _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);
            _diagram.EnableAxisXScrolling = true;
@@ -166,75 +55,6 @@
            _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)
@@ -292,6 +112,11 @@
        }
        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>();
@@ -328,9 +153,6 @@
                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)
@@ -346,7 +168,6 @@
                return;
            }
            GetHistoryData();
            //WaitFrmHelper.ShowWaitForm();
        }
        private void simpleButton2_Click(object sender, EventArgs e)
@@ -391,6 +212,12 @@
        { 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;
@@ -440,14 +267,12 @@
        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()
            {
@@ -458,42 +283,9 @@
            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);
        }
        private void GetRealData(object sender, EventArgs e)
        {
            SendText(startCode + getrealrecordCode + paramCode + endCode);
        }
        private void comboBox1_SelectedValueChanged(object sender, EventArgs e)
        {
            SetTimer();
        }
        private void gridView1_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
@@ -504,20 +296,6 @@
                if (b.DataStatus == eDataStatus.Warn)
                    e.Appearance.ForeColor = Color.Red;
            }
        }
        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;
@@ -532,6 +310,9 @@
            ExportXLS();
        }
        /// <summary>
        /// 导出Excel
        /// </summary>
        public void ExportXLS()
        {
            try