|
@@ -7,16 +7,20 @@ using System.Windows;
|
|
|
using System.Windows.Data;
|
|
|
using Aitex.Core.RT.Log;
|
|
|
using Aitex.Core.Util;
|
|
|
+using Prism.Commands;
|
|
|
+using Prism.Mvvm;
|
|
|
using MECF.Framework.Common.CommonData;
|
|
|
using MECF.Framework.Common.DataCenter;
|
|
|
using MECF.Framework.Common.OperationCenter;
|
|
|
using OpenSEMI.ClientBase;
|
|
|
+using Venus_Core;
|
|
|
//using SciChart.Core.Extensions;
|
|
|
//using VirgoUI.Client.Models.Sys;
|
|
|
|
|
|
namespace Venus_MainPages.ViewModels
|
|
|
{
|
|
|
- public class StatsDataListItem : NotifiableItem
|
|
|
+
|
|
|
+ public class StatsDataListItem
|
|
|
{
|
|
|
public string Name { get; set; }
|
|
|
public string Value { get; set; }
|
|
@@ -37,7 +41,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
public bool IsVisible { get; set; }
|
|
|
}
|
|
|
|
|
|
- public class StatsDataListItemRFAndPump : NotifiableItem
|
|
|
+ public class StatsDataListItemRFAndPump
|
|
|
{
|
|
|
public string Name { get; set; }
|
|
|
public string Description { get; set; }
|
|
@@ -51,8 +55,19 @@ namespace Venus_MainPages.ViewModels
|
|
|
public bool PMIntervalTextSaved { get; set; }
|
|
|
}
|
|
|
|
|
|
- public class StatisticsViewModel : Binding
|
|
|
+ public class StatisticsViewModel : BindableBase
|
|
|
{
|
|
|
+ public ObservableCollection<StatsDataListItem> _StatData;
|
|
|
+ public ObservableCollection<StatsDataListItemRFAndPump> _StatDataRFAndPump;
|
|
|
+ public StatisticsViewModel()
|
|
|
+ {
|
|
|
+
|
|
|
+ StatData = new ObservableCollection<StatsDataListItem>();
|
|
|
+ StatDataRFAndPump = new ObservableCollection<StatsDataListItemRFAndPump>();
|
|
|
+ PollData();
|
|
|
+ _timer = new PeriodicJob(200, this.OnTimer, "Database cleaner", true);
|
|
|
+ _timer.Start();
|
|
|
+ }
|
|
|
private int MenuPermission
|
|
|
{
|
|
|
//get
|
|
@@ -61,19 +76,31 @@ namespace Venus_MainPages.ViewModels
|
|
|
//}
|
|
|
get; set;
|
|
|
}
|
|
|
+ protected bool OnTimer()
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
+ //PollData();
|
|
|
+ }
|
|
|
+ catch (Exception ex)
|
|
|
+ {
|
|
|
+ LOG.Error(ex.Message);
|
|
|
+ }
|
|
|
|
|
|
+ return true;
|
|
|
+ }
|
|
|
public ObservableCollection<StatsDataListItem> StatData
|
|
|
{
|
|
|
- get;
|
|
|
- set;
|
|
|
+ get { return _StatData; }
|
|
|
+ set { SetProperty(ref _StatData, value); }
|
|
|
}
|
|
|
|
|
|
public ObservableCollection<StatsDataListItemRFAndPump> StatDataRFAndPump
|
|
|
{
|
|
|
- get;
|
|
|
- set;
|
|
|
+ get { return _StatDataRFAndPump; }
|
|
|
+ set { SetProperty(ref _StatDataRFAndPump, value); }
|
|
|
}
|
|
|
-
|
|
|
+ private PeriodicJob _timer;
|
|
|
//protected override void OnInitialize()
|
|
|
//{
|
|
|
// StatData = new ObservableCollection<StatsDataListItem>();
|
|
@@ -93,159 +120,161 @@ namespace Venus_MainPages.ViewModels
|
|
|
// base.OnDeactivate(close);
|
|
|
//}
|
|
|
|
|
|
- //protected override void Poll()
|
|
|
- //{
|
|
|
- // try
|
|
|
- // {
|
|
|
-
|
|
|
+ public void PollData()
|
|
|
+ {
|
|
|
+ try
|
|
|
+ {
|
|
|
|
|
|
- // string sql = $"SELECT * FROM \"stats_data\" order by \"name\" ASC;";
|
|
|
+ Application.Current.Dispatcher.BeginInvoke(new Action(() =>
|
|
|
+ {
|
|
|
+ StatData.Clear();
|
|
|
+ StatDataRFAndPump.Clear();
|
|
|
+ }));
|
|
|
+ string sql = $"SELECT * FROM \"stats_data\" order by \"name\" ASC;";
|
|
|
|
|
|
- // DataTable dbData = QueryDataClient.Instance.Service.QueryData(sql);
|
|
|
+ DataTable dbData = QueryDataClient.Instance.Service.QueryData(sql);
|
|
|
|
|
|
- // Application.Current.Dispatcher.BeginInvoke(new Action(() =>
|
|
|
- // {
|
|
|
- // if (dbData == null || dbData.Rows.Count == 0)
|
|
|
- // return;
|
|
|
+ Application.Current.Dispatcher.BeginInvoke(new Action(() =>
|
|
|
+ {
|
|
|
+ if (dbData == null || dbData.Rows.Count == 0)
|
|
|
+ return;
|
|
|
|
|
|
- // string[] clearedNameList = Array.ConvertAll<StatsDataListItem, string>(StatData.ToArray(), x => x.Name);
|
|
|
+ // string[] clearedNameList = Array.ConvertAll<StatsDataListItem, string>(StatData.ToArray(), x => x.Name);
|
|
|
|
|
|
- // List<string> removableList = new List<string>();
|
|
|
+ List<string> removableList = new List<string>();
|
|
|
|
|
|
- // if (clearedNameList.Length > 0)
|
|
|
- // removableList = clearedNameList.ToList();
|
|
|
+ //if (clearedNameList.Length > 0)
|
|
|
+ // removableList = clearedNameList.ToList();
|
|
|
|
|
|
- // for (int i = 0; i < dbData.Rows.Count; i++)
|
|
|
- // {
|
|
|
- // if (!dbData.Rows[i]["is_visible"].Equals(DBNull.Value) && !Convert.ToBoolean(dbData.Rows[i]["is_visible"].ToString()))
|
|
|
- // continue;
|
|
|
+ for (int i = 0; i < dbData.Rows.Count; i++)
|
|
|
+ {
|
|
|
+ if (!dbData.Rows[i]["is_visible"].Equals(DBNull.Value) && !Convert.ToBoolean(dbData.Rows[i]["is_visible"].ToString()))
|
|
|
+ continue;
|
|
|
|
|
|
- // string name = dbData.Rows[i]["name"].ToString();
|
|
|
- // //removableList.RemoveIfContains(name);
|
|
|
+ string name = dbData.Rows[i]["name"].ToString();
|
|
|
+ //removableList.RemoveIfContains(name);
|
|
|
|
|
|
- // StatsDataListItem item = StatData.FirstOrDefault(x => x.Name == name);
|
|
|
- // if (item == null)
|
|
|
- // {
|
|
|
- // item = new StatsDataListItem();
|
|
|
- // item.Name = dbData.Rows[i]["name"].ToString();
|
|
|
- // item.AlarmEnable = false;
|
|
|
- // item.WarningEnable = false;
|
|
|
- // item.IsVisible = true;
|
|
|
- // item.AlarmTextSaved = true;
|
|
|
- // item.WarningTextSaved = true;
|
|
|
- // item.AlarmValueSetPoint = dbData.Rows[i]["alarm_value"].ToString();
|
|
|
- // item.WarningValueSetPoint = dbData.Rows[i]["warning_value"].ToString();
|
|
|
- // StatData.Add(item);
|
|
|
- // }
|
|
|
-
|
|
|
- // item.Description = dbData.Rows[i]["description"].ToString();
|
|
|
- // item.Value = dbData.Rows[i]["value"].ToString();
|
|
|
- // item.Total = dbData.Rows[i]["total"].ToString();
|
|
|
-
|
|
|
- // if (!dbData.Rows[i]["enable_warning"].Equals(DBNull.Value))
|
|
|
- // item.WarningEnable = Convert.ToBoolean(dbData.Rows[i]["enable_warning"].ToString());
|
|
|
-
|
|
|
- // item.WarningValue = dbData.Rows[i]["warning_value"].ToString();
|
|
|
-
|
|
|
- // if (!dbData.Rows[i]["enable_alarm"].Equals(DBNull.Value))
|
|
|
- // item.AlarmEnable = Convert.ToBoolean(dbData.Rows[i]["enable_alarm"].ToString());
|
|
|
-
|
|
|
- // item.AlarmValue = dbData.Rows[i]["alarm_value"].ToString();
|
|
|
-
|
|
|
- // if (!dbData.Rows[i]["last_update_time"].Equals(DBNull.Value))
|
|
|
- // item.LastUpdateTime = ((DateTime)dbData.Rows[i]["last_update_time"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
-
|
|
|
- // if (!dbData.Rows[i]["last_reset_time"].Equals(DBNull.Value))
|
|
|
- // item.LastResetTime = ((DateTime)dbData.Rows[i]["last_reset_time"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
-
|
|
|
- // if (!dbData.Rows[i]["last_total_reset_time"].Equals(DBNull.Value))
|
|
|
- // item.LastResetTotalTime = ((DateTime)dbData.Rows[i]["last_total_reset_time"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
-
|
|
|
- // item.InvokePropertyChanged(nameof(item.AlarmValue));
|
|
|
- // item.InvokePropertyChanged(nameof(item.WarningValue));
|
|
|
- // item.InvokePropertyChanged(nameof(item.Value));
|
|
|
- // item.InvokePropertyChanged(nameof(item.Total));
|
|
|
- // item.InvokePropertyChanged(nameof(item.LastUpdateTime));
|
|
|
- // item.InvokePropertyChanged(nameof(item.LastResetTime));
|
|
|
- // item.InvokePropertyChanged(nameof(item.LastResetTotalTime));
|
|
|
- // }
|
|
|
-
|
|
|
- // foreach (var name in removableList)
|
|
|
- // {
|
|
|
- // StatsDataListItem item = StatData.FirstOrDefault(x => x.Name == name);
|
|
|
- // if (item != null)
|
|
|
- // StatData.Remove(item);
|
|
|
- // }
|
|
|
-
|
|
|
- // }));
|
|
|
-
|
|
|
-
|
|
|
- // string sqlrfpump = $"SELECT * FROM \"stats_data_rf_pump\" order by \"name\" ASC;";
|
|
|
-
|
|
|
- // DataTable dbDataRFPump = QueryDataClient.Instance.Service.QueryData(sqlrfpump);
|
|
|
-
|
|
|
- // Application.Current.Dispatcher.BeginInvoke(new Action(() =>
|
|
|
- // {
|
|
|
- // if (dbDataRFPump == null || dbDataRFPump.Rows.Count == 0)
|
|
|
- // return;
|
|
|
-
|
|
|
- // string[] clearedNameList = Array.ConvertAll<StatsDataListItemRFAndPump, string>(StatDataRFAndPump.ToArray(), x => x.Name);
|
|
|
-
|
|
|
- // List<string> removableList = new List<string>();
|
|
|
-
|
|
|
- // if (clearedNameList.Length > 0)
|
|
|
- // removableList = clearedNameList.ToList();
|
|
|
-
|
|
|
- // for (int i = 0; i < dbDataRFPump.Rows.Count; i++)
|
|
|
- // {
|
|
|
-
|
|
|
- // string name = dbDataRFPump.Rows[i]["name"].ToString();
|
|
|
- // //removableList.RemoveIfContains(name);
|
|
|
-
|
|
|
- // StatsDataListItemRFAndPump item = StatDataRFAndPump.FirstOrDefault(x => x.Name == name);
|
|
|
- // if (item == null)
|
|
|
- // {
|
|
|
- // item = new StatsDataListItemRFAndPump();
|
|
|
- // item.Name = dbDataRFPump.Rows[i]["name"].ToString();
|
|
|
- // item.AlarmEnable = false;
|
|
|
- // item.PMIntervalTextSaved = true;
|
|
|
- // item.PMIntervalSetPoint = dbDataRFPump.Rows[i]["pm_interval"].ToString();
|
|
|
- // StatDataRFAndPump.Add(item);
|
|
|
- // }
|
|
|
-
|
|
|
- // item.Description = dbDataRFPump.Rows[i]["description"].ToString();
|
|
|
- // if (!dbDataRFPump.Rows[i]["enable_alarm"].Equals(DBNull.Value))
|
|
|
- // item.AlarmEnable = Convert.ToBoolean(dbDataRFPump.Rows[i]["enable_alarm"].ToString());
|
|
|
-
|
|
|
- // item.fromLastPM = dbDataRFPump.Rows[i]["from_last_pm"].ToString();
|
|
|
- // item.PMInterval = dbDataRFPump.Rows[i]["pm_interval"].ToString();
|
|
|
- // item.Total = dbDataRFPump.Rows[i]["total"].ToString();
|
|
|
-
|
|
|
- // if (!dbDataRFPump.Rows[i]["last_pm_time"].Equals(DBNull.Value))
|
|
|
- // item.LastPMTime = ((DateTime)dbDataRFPump.Rows[i]["last_pm_time"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
-
|
|
|
- // item.InvokePropertyChanged(nameof(item.Name));
|
|
|
- // item.InvokePropertyChanged(nameof(item.AlarmEnable));
|
|
|
- // item.InvokePropertyChanged(nameof(item.Description));
|
|
|
- // item.InvokePropertyChanged(nameof(item.Total));
|
|
|
- // item.InvokePropertyChanged(nameof(item.fromLastPM));
|
|
|
- // item.InvokePropertyChanged(nameof(item.PMInterval));
|
|
|
- // item.InvokePropertyChanged(nameof(item.LastPMTime));
|
|
|
- // }
|
|
|
-
|
|
|
- // foreach (var name in removableList)
|
|
|
- // {
|
|
|
- // StatsDataListItemRFAndPump item = StatDataRFAndPump.FirstOrDefault(x => x.Name == name);
|
|
|
- // if (item != null)
|
|
|
- // StatDataRFAndPump.Remove(item);
|
|
|
- // }
|
|
|
+ StatsDataListItem item = StatData.FirstOrDefault(x => x.Name == name);
|
|
|
+ if (item == null)
|
|
|
+ {
|
|
|
+ item = new StatsDataListItem();
|
|
|
+ item.Name = dbData.Rows[i]["name"].ToString();
|
|
|
+ item.AlarmEnable = false;
|
|
|
+ item.WarningEnable = false;
|
|
|
+ item.IsVisible = true;
|
|
|
+ item.AlarmTextSaved = true;
|
|
|
+ item.WarningTextSaved = true;
|
|
|
+ item.AlarmValueSetPoint = dbData.Rows[i]["alarm_value"].ToString();
|
|
|
+ item.WarningValueSetPoint = dbData.Rows[i]["warning_value"].ToString();
|
|
|
+ StatData.Add(item);
|
|
|
+ }
|
|
|
|
|
|
- // }));
|
|
|
- // }
|
|
|
- // catch (Exception e)
|
|
|
- // {
|
|
|
- // }
|
|
|
- //}
|
|
|
+ item.Description = dbData.Rows[i]["description"].ToString();
|
|
|
+ item.Value = dbData.Rows[i]["value"].ToString();
|
|
|
+ item.Total = dbData.Rows[i]["total"].ToString();
|
|
|
+
|
|
|
+ if (!dbData.Rows[i]["enable_warning"].Equals(DBNull.Value))
|
|
|
+ item.WarningEnable = Convert.ToBoolean(dbData.Rows[i]["enable_warning"].ToString());
|
|
|
+
|
|
|
+ item.WarningValue = dbData.Rows[i]["warning_value"].ToString();
|
|
|
+
|
|
|
+ if (!dbData.Rows[i]["enable_alarm"].Equals(DBNull.Value))
|
|
|
+ item.AlarmEnable = Convert.ToBoolean(dbData.Rows[i]["enable_alarm"].ToString());
|
|
|
+
|
|
|
+ item.AlarmValue = dbData.Rows[i]["alarm_value"].ToString();
|
|
|
+
|
|
|
+ if (!dbData.Rows[i]["last_update_time"].Equals(DBNull.Value))
|
|
|
+ item.LastUpdateTime = ((DateTime)dbData.Rows[i]["last_update_time"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
+
|
|
|
+ if (!dbData.Rows[i]["last_reset_time"].Equals(DBNull.Value))
|
|
|
+ item.LastResetTime = ((DateTime)dbData.Rows[i]["last_reset_time"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
+
|
|
|
+ if (!dbData.Rows[i]["last_total_reset_time"].Equals(DBNull.Value))
|
|
|
+ item.LastResetTotalTime = ((DateTime)dbData.Rows[i]["last_total_reset_time"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
+
|
|
|
+ //item.InvokePropertyChanged(nameof(item.AlarmValue));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.WarningValue));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.Value));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.Total));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.LastUpdateTime));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.LastResetTime));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.LastResetTotalTime));
|
|
|
+ }
|
|
|
+
|
|
|
+ //foreach (var name in removableList)
|
|
|
+ //{
|
|
|
+ // StatsDataListItem item = StatData.FirstOrDefault(x => x.Name == name);
|
|
|
+ // if (item != null)
|
|
|
+ // StatData.Remove(item);
|
|
|
+ //}
|
|
|
+
|
|
|
+ }));
|
|
|
+
|
|
|
+
|
|
|
+ string sqlrfpump = $"SELECT * FROM \"stats_data_rf_pump\" order by \"name\" ASC;";
|
|
|
+
|
|
|
+ DataTable dbDataRFPump = QueryDataClient.Instance.Service.QueryData(sqlrfpump);
|
|
|
+
|
|
|
+ Application.Current.Dispatcher.BeginInvoke(new Action(() =>
|
|
|
+ {
|
|
|
+ if (dbDataRFPump == null || dbDataRFPump.Rows.Count == 0)
|
|
|
+ return;
|
|
|
+ //string[] clearedNameList = Array.ConvertAll<StatsDataListItemRFAndPump, string>(StatDataRFAndPump.ToArray(), x => x.Name);
|
|
|
+
|
|
|
+ //List<string> removableList = new List<string>();
|
|
|
+ //if (clearedNameList.Length > 0)
|
|
|
+ // removableList = clearedNameList.ToList();
|
|
|
+
|
|
|
+ for (int i = 0; i < dbDataRFPump.Rows.Count; i++)
|
|
|
+ {
|
|
|
+
|
|
|
+ string name = dbDataRFPump.Rows[i]["name"].ToString();
|
|
|
+ //removableList.RemoveIfContains(name);
|
|
|
+
|
|
|
+ StatsDataListItemRFAndPump item = StatDataRFAndPump.FirstOrDefault(x => x.Name == name);
|
|
|
+ if (item == null)
|
|
|
+ {
|
|
|
+ item = new StatsDataListItemRFAndPump();
|
|
|
+ item.Name = dbDataRFPump.Rows[i]["name"].ToString();
|
|
|
+ item.AlarmEnable = false;
|
|
|
+ item.PMIntervalTextSaved = true;
|
|
|
+ item.PMIntervalSetPoint = dbDataRFPump.Rows[i]["pm_interval"].ToString();
|
|
|
+ StatDataRFAndPump.Add(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ item.Description = dbDataRFPump.Rows[i]["description"].ToString();
|
|
|
+ if (!dbDataRFPump.Rows[i]["enable_alarm"].Equals(DBNull.Value))
|
|
|
+ item.AlarmEnable = Convert.ToBoolean(dbDataRFPump.Rows[i]["enable_alarm"].ToString());
|
|
|
+
|
|
|
+ item.fromLastPM = dbDataRFPump.Rows[i]["from_last_pm"].ToString();
|
|
|
+ item.PMInterval = dbDataRFPump.Rows[i]["pm_interval"].ToString();
|
|
|
+ item.Total = dbDataRFPump.Rows[i]["total"].ToString();
|
|
|
+
|
|
|
+ if (!dbDataRFPump.Rows[i]["last_pm_time"].Equals(DBNull.Value))
|
|
|
+ item.LastPMTime = ((DateTime)dbDataRFPump.Rows[i]["last_pm_time"]).ToString("yyyy-MM-dd HH:mm:ss.fff");
|
|
|
+
|
|
|
+ //item.InvokePropertyChanged(nameof(item.Name));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.AlarmEnable));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.Description));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.Total));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.fromLastPM));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.PMInterval));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.LastPMTime));
|
|
|
+ }
|
|
|
+
|
|
|
+ //foreach (var name in removableList)
|
|
|
+ //{
|
|
|
+ // StatsDataListItemRFAndPump item = StatDataRFAndPump.FirstOrDefault(x => x.Name == name);
|
|
|
+ // if (item != null)
|
|
|
+ // StatDataRFAndPump.Remove(item);
|
|
|
+ //}
|
|
|
+
|
|
|
+ }));
|
|
|
+ }
|
|
|
+ catch (Exception e)
|
|
|
+ {
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
public void ResetValue(StatsDataListItem item)
|
|
|
{
|
|
@@ -278,7 +307,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
InvokeClient.Instance.Service.DoOperation("System.Stats.SetAlarmValue", item.Name, setValue);
|
|
|
|
|
|
item.AlarmTextSaved = true;
|
|
|
- item.InvokePropertyChanged(nameof(item.AlarmTextSaved));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.AlarmTextSaved));
|
|
|
}
|
|
|
|
|
|
public void SetWarningValue(StatsDataListItem item)
|
|
@@ -294,7 +323,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
InvokeClient.Instance.Service.DoOperation("System.Stats.SetWarningValue", item.Name, setValue);
|
|
|
|
|
|
item.WarningTextSaved = true;
|
|
|
- item.InvokePropertyChanged(nameof(item.WarningTextSaved));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.WarningTextSaved));
|
|
|
}
|
|
|
|
|
|
public void ResetTotalValue(StatsDataListItem item)
|
|
@@ -328,7 +357,7 @@ namespace Venus_MainPages.ViewModels
|
|
|
InvokeClient.Instance.Service.DoOperation("System.StatsRFAndPump.SetPMIntervalValue", item.Name, setValue);
|
|
|
|
|
|
item.PMIntervalTextSaved = true;
|
|
|
- item.InvokePropertyChanged(nameof(item.PMIntervalTextSaved));
|
|
|
+ //item.InvokePropertyChanged(nameof(item.PMIntervalTextSaved));
|
|
|
}
|
|
|
}
|
|
|
}
|