qin
2025-03-19 342b10ed5f4ebbccf2d2868d211fbe91cf3e8d5d
WinFrmUI/IBox.WinFrmUI/Form/IBoxFormOverview.cs
@@ -1,19 +1,18 @@
using Yw;
using Yw.WinFrmUI;
using Yw.WinFrmUI;
namespace IBox.WinFrmUI
{
    public partial class IBoxFormOverview : DocumentPage
    {
        private string startCode = "[&start&]";
        private string endCode = "[&end&]";
        private string paramCode = "[&param&]";
        private string getbaseCode = "getbase";
        private string getrealrecordCode = "getrealrecord";
        private string gethistoryrecordCode = "gethistoryrecord";
        private string getalarmbydayCode = "getalarmbyday";
        private string getbysignalidofdayrangeCode = "getbysignalidofdayrange";
        //private string startCode = "[&start&]";
        //private string endCode = "[&end&]";
        //private string paramCode = "[&param&]";
        //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;
@@ -27,243 +26,25 @@
        {
            this.PageTitle.Caption = "泵组总览";
            InitializeComponent();
            //this.webView21.Source = new Uri(AppDomain.CurrentDomain.BaseDirectory + "/web/html/bim.html");
            //this.webView21.WebMessageReceived += WebMessageReceived;
            // _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":
        //            InitWebItem();
        //            break;
        //    }
        //}
        public void TestData(bool isBlue)
        {
            #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,
            });
            if (isBlue)
            {
                this.Invoke(new Action(() =>
                {
                    this.pumpRunStatusViewModelBindingSource.DataSource = this.pumpRunStatusModels;
                    this.gridView3.RefreshData();
                }));
            }
            else
            {
                this.pumpRunStatusViewModelBindingSource.DataSource = this.pumpRunStatusModels;
                this.gridView3.RefreshData();
            }
            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
            });
            if (isBlue)
            {
                this.Invoke(new Action(() =>
                {
                    this.pumpEnergyViewModelBindingSource.DataSource = pumpEnergyViewModels;
                }));
            }
            else
            {
                this.pumpEnergyViewModelBindingSource.DataSource = pumpEnergyViewModels;
            }
            #endregion 测试数据
        }
        private void InitWebItem()
        {
            //var bimAppKey = "GPg7TMfOJxF10QHm2PirACyI21nv0qJX";
            //var bimAppSecret = "lakJejzxiKbsuBM7Pn0P0czfeYvXTnWW";
            //var setting = new BLL.BaseConfig().GetAll();
            //var settingC = setting.Where(c => c.Code == "BaseGrade").FirstOrDefault();
            //var calcSetting = float.Parse(string.IsNullOrEmpty(settingC.Value) ? "0" : settingC.Value);
            //var ratioConfig = new BLL.RatioConfig().GetAll();
            //var bimfaceClient = BimfaceClient.GetClient(bimAppKey, bimAppSecret);
            //var token = bimfaceClient.GetViewToken(2023011525093568);
            //webView21.CoreWebView2.PostWebMessageAsJson(JsonHelper.Object2Json(new
            //{
            //    oper = "setToken",
            //    token = token,
            //}));
        }
        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);
        }
        public void GetReceive(string msg)
        {
            if (!this.IsHandleCreated || this.IsDisposed || string.IsNullOrEmpty(msg)) return;
            if (msg.StartsWith("error:") && msg.Contains("目标主机坏了"))
            {
                MessageBoxHelper.ShowWarning("o 蓝牙设备连接失败,请重试!"); return;
            }
            if (!string.IsNullOrEmpty(msg) && msg.Contains(startCode))
            {
                var order = msg.Replace(endCode, "").Replace(startCode, "").Trim();
                SetOrder(order);
            }
            else MessageBoxHelper.ShowWarning("o 蓝牙设备连接失败");
        }
        private void SetOrder(string order)
        {
            var smsg = order.Split(new string[] { paramCode }, StringSplitOptions.RemoveEmptyEntries);
            if (smsg.Length < 2)
            {
                return;
            }
            switch (smsg[0].Trim())
            {
                case "getbase":
                    var getbaselist = JsonHelper.Json2Object<List<StationMonitorListGroupMobileDto>>(smsg[1].Trim());
                    BindGrid(getbaselist);
                    WaitFormHelper.HideWaitForm();
                    var am = new GetAlarmByDayModel() { Day = DateTime.Now };
                    SendText(startCode + getalarmbydayCode + paramCode + JsonHelper.Object2Json(am) + endCode);
                    //TestData();
                    break;
                case "gethistoryrecord":
                    var gethistoryrecordlist = new List<MonitorRecord>();
                    var b = smsg[1].Trim();
                    if (!string.IsNullOrEmpty(b))
                    {
                        var c = b.Split('|');
                        foreach (var item in c)
                        {
                            var m = new MonitorRecord().FromString(item);
                            gethistoryrecordlist.Add(m);
                        }
                    }
                    break;
                case "getalarmbyday":
                    //var getalarmbydaylist = JsonHelper.Json2Object<List<MonitorValueAlarmRecord>>(smsg[1].Trim());
                    //monitorValueAlarmRecords = getalarmbydaylist;
                    //this.bindingSource1.DataSource = dataGridMonitorViewModels;
                    var getalarmbydaylist = new List<MonitorValueAlarmRecord>();
                    var l = smsg[1].Trim();
                    if (!string.IsNullOrEmpty(l))
                    {
                        var c = l.Split('|');
                        foreach (var item in c)
                        {
                            var ml = new MonitorValueAlarmRecord().FromString(item);
                            getalarmbydaylist.Add(ml);
                        }
                        monitorValueAlarmRecords = getalarmbydaylist;
                    }
                    this.Invoke(new Action(() =>
                    {
                        this.monitorValueAlarmRecordBindingSource.DataSource = monitorValueAlarmRecords;
                    }));
                    //this.gridView2.RefreshData();
                    break;
                case "getbysignalidofdayrange":
                    var getbysignalidofdayrangelist = JsonHelper.Json2Object<List<MonitorValueAlarmRecord>>(smsg[1].Trim());
                    break;
            }
        }
        private List<DataGridMonitorViewModel> dataList = null;
        /// <summary>
        /// 绑定数据
        /// </summary>
        /// <param name="list"></param>
        /// <param name="isBlue"></param>
        /// <returns></returns>
        public async Task<int> BindGrid(List<StationMonitorListGroupMobileDto> list, bool isBlue = true)
        {
            dataList = new List<DataGridMonitorViewModel>();
@@ -291,47 +72,17 @@
                {
                    dataGridMonitorViewModels = dataList;
                    this.bindingSource1.DataSource = dataGridMonitorViewModels;
                    //webView21.CoreWebView2.PostWebMessageAsJson(JsonHelper.Object2Json(new
                    //{
                    //    oper = "realData",
                    //    list = JsonHelper.Object2Json(dataList),
                    //}));
                }));
            }
            else
            {
                dataGridMonitorViewModels = dataList;
                this.bindingSource1.DataSource = dataGridMonitorViewModels;
                //await webView21.EnsureCoreWebView2Async();
                //webView21.CoreWebView2.PostWebMessageAsJson(JsonHelper.Object2Json(new
                //{
                //    oper = "realData",
                //    list = JsonHelper.Object2Json(dataList),
                //}));
            }
            return 0;
            //WaitFrmHelper.HideWaitForm();
        }
        private void GetRealData(object sender, EventArgs e)
        {
            SendText(startCode + getrealrecordCode + paramCode + endCode);
        }
        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)
        {
        }
        private void gridView3_CustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
        {