using Yw;
|
using Yw.WinFrmUI;
|
|
namespace IBox.WinFrmUI
|
{
|
public partial class IBoxFormOverview : 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<MonitorValueAlarmRecord> monitorValueAlarmRecords = new List<MonitorValueAlarmRecord>();
|
|
private List<DataGridMonitorViewModel> dataGridMonitorViewModels = new List<DataGridMonitorViewModel>();
|
private List<PumpRunStatusViewModel> pumpRunStatusModels = new List<PumpRunStatusViewModel>();
|
private List<PumpEnergyViewModel> pumpEnergyViewModels = new List<PumpEnergyViewModel>();
|
|
public IBoxFormOverview()
|
{
|
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);
|
|
}
|
|
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;
|
|
public async Task<int> BindGrid(List<StationMonitorListGroupMobileDto> list, bool isBlue = true)
|
{
|
dataList = new List<DataGridMonitorViewModel>();
|
foreach (var item in list)
|
{
|
foreach (var ml in item.MonitorList)
|
{
|
dataList.Add(new DataGridMonitorViewModel()
|
{
|
DataTime = !ml.DataTime.HasValue ? "-" : ml.DataTime?.ToString("yyyy-MM-dd HH:mm:ss"),
|
DataValue = string.IsNullOrEmpty(ml.DataValue) ? "-" : ml.DataValue,
|
GroupID = item.ID,
|
GroupName = item.Name,
|
MonitorName = ml.Name,
|
SignalID = ml.SignalID,
|
UnitName = ml.UnitName,
|
DataStatus = ml.DataStatus,
|
});
|
}
|
}
|
|
if (isBlue)
|
{
|
this.Invoke(new Action(() =>
|
{
|
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)
|
{
|
var b = gridView3.GetRow(e.RowHandle) as PumpRunStatusViewModel;
|
|
if (e.Column.FieldName.Equals("ContinutRunTime"))
|
{
|
e.DisplayText = ConvertToText(b.ContinutRunTime);
|
}
|
if (e.Column.FieldName.Equals("TotalRunTime"))
|
{
|
e.DisplayText = ConvertToText(b.TotalRunTime);
|
}
|
if (e.Column.FieldName.Equals("RunStatus"))
|
{
|
var s = "关机";
|
e.Appearance.ForeColor = Color.LightSlateGray;
|
switch (b.RunStatus)
|
{
|
case 1:
|
s = "开机";
|
e.Appearance.ForeColor = Color.Green;
|
break;
|
}
|
e.DisplayText = s;
|
}
|
}
|
|
private string ConvertToText(long? minite)
|
{
|
if (!minite.HasValue)
|
return "";
|
long minites = minite.Value;
|
long days = minites / 60 / 24;
|
long hours = 0;
|
if (days > 0)
|
hours = (minites - (days * 1440)) / 60;
|
else hours = minites / 60;
|
long minitesLeft = minites % 60;
|
if (days > 0)
|
return $"{days}天{hours}小时{minitesLeft}分钟";
|
else return $"{hours}小时{minitesLeft}分钟";
|
}
|
|
public event EventHandler<string> SendData;
|
private void SendText(string content)
|
{
|
//BluetoothHelper.GetInstance().SendData(content);
|
SendData?.Invoke(null, content);
|
}
|
}
|
}
|