| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649 | 
							- using System;
 
- using System.Collections.Generic;
 
- using System.Data;
 
- using Aitex.Core.RT.DBCore;
 
- using Aitex.Core.RT.Event;
 
- using Aitex.Core.RT.Log;
 
- using Aitex.Core.RT.OperationCenter;
 
- using Aitex.Core.Util;
 
- using MECF.Framework.Common.DBCore;
 
- namespace MECF.Framework.Common.DataCenter
 
- {
 
-     public class StatsDataItem
 
-     {
 
-         public string Name { get; set; }
 
-         public int Value { get; set; }
 
-         public string Description { get; set; }
 
-         public int Total { get; set; }
 
-         public DateTime LastUpdateTime { get; set; }
 
-         public DateTime LastResetTime { get; set; }
 
-         public DateTime LastResetTotalTime { get; set; }
 
-         public int WarningValue { get; set; }
 
-         public bool WarningEnable { get; set; }
 
-         public int AlarmValue { get; set; }
 
-         public bool AlarmEnable { get; set; }
 
-         public bool IsVisible { get; set; }
 
-     }
 
-     public class StatsDataItemRFAndPump
 
-     {
 
-         public string Name { get; set; }
 
-         public string Description { get; set; }
 
-         public DateTime LastPMTime { get; set; }
 
-         public double fromLastPM { get; set; }
 
-         public double Total { get; set; }
 
-         public double PMInterval { get; set; }
 
-         public bool AlarmEnable { get; set; }
 
-     }
 
-     public class StatsDataManager:Singleton<StatsDataManager>
 
-     {
 
-         private Dictionary<string, StatsDataItem> _items = new Dictionary<string, StatsDataItem>();
 
-         private Dictionary<string, StatsDataItemRFAndPump> _itemsRFAndPump = new Dictionary<string, StatsDataItemRFAndPump>();
 
-         private object _locker = new object();
 
-         public StatsDataManager()
 
-         {
 
-         }
 
-         public void Initialize()
 
-         {
 
-             try
 
-             {
 
-                 OP.Subscribe("System.Stats.ResetValue", (method, args) => 
 
-                 {
 
-                     Reset((string)args[0]);
 
-                     return true;
 
-                 });
 
-                 OP.Subscribe("System.Stats.EnableAlarm", (method, args) =>
 
-                 {
 
-                     EnableAlarm((string)args[0], (bool)args[1]);
 
-                     return true;
 
-                 });
 
-                 OP.Subscribe("System.Stats.Alarm", (method, args) =>
 
-                 {
 
-                     Alarm((string)args[0]);
 
-                     return true;
 
-                 });
 
-                 OP.Subscribe("System.Stats.SetAlarmValue", (method, args) =>
 
-                 {
 
-                     SetAlarmValue((string)args[0], (int)args[1]);
 
-                     return true;
 
-                 });
 
-                 OP.Subscribe("System.Stats.EnableWarning", (method, args) =>
 
-                 {
 
-                     EnableWarning((string)args[0], (bool)args[1]);
 
-                     return true;
 
-                 });
 
-                 OP.Subscribe("System.Stats.Warning", (method, args) =>
 
-                 {
 
-                     Warning((string)args[0]);
 
-                     return true;
 
-                 });
 
-                 OP.Subscribe("System.Stats.SetWarningValue", (method, args) =>
 
-                 {
 
-                     SetWarningValue((string)args[0], (int)args[1]);
 
-                     return true;
 
-                 });
 
-                 OP.Subscribe("System.Stats.ResetTotalValue", (method, args) =>
 
-                 {
 
-                     ResetTotal((string)args[0]);
 
-                     return true;
 
-                 });
 
-                 OP.Subscribe("System.StatsRFAndPump.EnableAlarm", (method, args) =>
 
-                 {
 
-                     RFEnableAlarm((string)args[0], (bool)args[1]);
 
-                     return true;
 
-                 });
 
-                 OP.Subscribe("System.StatsRFAndPump.ResetValue", (method, args) =>
 
-                 {
 
-                     RFReset((string)args[0]);
 
-                     return true;
 
-                 });
 
-                 OP.Subscribe("System.StatsRFAndPump.SetPMIntervalValue", (method, args) =>
 
-                 {
 
-                     SetPMIntervalValue((string)args[0], (int)args[1]);
 
-                     return true;
 
-                 });
 
-                 DataTable dt = DataQuery.Query("select * from \"stats_data\"");
 
-                 for (int i = 0; i < dt.Rows.Count; i++)
 
-                 {
 
-                     StatsDataItem item  = new StatsDataItem();
 
-                     item.Name = dt.Rows[i]["name"].ToString();
 
-                     item.Description = dt.Rows[i]["description"].ToString();
 
-                     if (int.TryParse(dt.Rows[i]["value"].ToString(), out int value))
 
-                         item.Value = value;
 
-                     if (int.TryParse(dt.Rows[i]["total"].ToString(), out int total))
 
-                         item.Total = total;
 
-                     if (int.TryParse(dt.Rows[i]["alarm_value"].ToString(), out int alarmValue))
 
-                         item.AlarmValue = alarmValue;
 
-                     if (!dt.Rows[i]["enable_alarm"].Equals(DBNull.Value))
 
-                         item.AlarmEnable = Convert.ToBoolean(dt.Rows[i]["enable_alarm"].ToString());
 
-                     if (int.TryParse(dt.Rows[i]["warning_value"].ToString(), out int WarningValue))
 
-                         item.WarningValue = WarningValue;
 
-                     if (!dt.Rows[i]["enable_warning"].Equals(DBNull.Value))
 
-                         item.WarningEnable = Convert.ToBoolean(dt.Rows[i]["enable_warning"].ToString());
 
-                     if (!dt.Rows[i]["is_visible"].Equals(DBNull.Value))
 
-                         item.IsVisible = Convert.ToBoolean(dt.Rows[i]["is_visible"].ToString());
 
-                     if (!dt.Rows[i]["last_update_time"].Equals(DBNull.Value))
 
-                         item.LastUpdateTime = (DateTime)dt.Rows[i]["last_update_time"] ;
 
-                     if (!dt.Rows[i]["last_reset_time"].Equals(DBNull.Value))
 
-                         item.LastResetTime = (DateTime)dt.Rows[i]["last_reset_time"];
 
-                     if (!dt.Rows[i]["last_total_reset_time"].Equals(DBNull.Value))
 
-                         item.LastResetTotalTime = (DateTime)dt.Rows[i]["last_total_reset_time"];
 
-  
 
-                     _items[item.Name] = item;
 
-                 }
 
-                 DataTable dtRf = DataQuery.Query("select * from \"stats_data_rf_pump\"");
 
-                 for (int i = 0; i < dtRf.Rows.Count; i++)
 
-                 {
 
-                     StatsDataItemRFAndPump itemRf = new StatsDataItemRFAndPump();
 
-                     itemRf.Name = dtRf.Rows[i]["name"].ToString();
 
-                     itemRf.Description = dtRf.Rows[i]["description"].ToString();
 
-                     if (double.TryParse(dtRf.Rows[i]["total"].ToString(), out double total))
 
-                         itemRf.Total = total;
 
-                     if (double.TryParse(dtRf.Rows[i]["pm_interval"].ToString(), out double pmInterval))
 
-                         itemRf.PMInterval = pmInterval;
 
-                     if (double.TryParse(dtRf.Rows[i]["from_last_pm"].ToString(), out double fromLastPM))
 
-                         itemRf.fromLastPM = fromLastPM;
 
-                     if (!dtRf.Rows[i]["enable_alarm"].Equals(DBNull.Value))
 
-                         itemRf.AlarmEnable = Convert.ToBoolean(dtRf.Rows[i]["enable_alarm"].ToString());
 
-                     if (!dtRf.Rows[i]["last_pm_time"].Equals(DBNull.Value))
 
-                         itemRf.LastPMTime = (DateTime)dtRf.Rows[i]["last_pm_time"];
 
-                     _itemsRFAndPump[itemRf.Name] = itemRf;
 
-                 }
 
-             }
 
-             catch (Exception ex)
 
-             {
 
-                 LOG.WriteExeption("init stats data manager failed", ex);
 
-             }
 
-  
 
-         }
 
-         private int SetAlarmValue(string name, int value)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not set {name} alarm value, not defined item");
 
-                     return -1;
 
-                 }
 
-                 int preValue = _items[name].AlarmValue;
 
-                 _items[name].AlarmValue = value;
 
-  
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data\" SET \"alarm_value\"='{0}'WHERE \"name\"='{1}';",_items[name].AlarmValue,
 
-                     name);
 
-                 DB.Insert(sql);
 
-                 EV.PostInfoLog("System", $"{name} stats alarm value changed from {preValue} to {value}");
 
-                 return preValue;
 
-             }
 
-         }
 
-         
 
-         private double SetPMIntervalValue(string name, int value)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_itemsRFAndPump.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not set {name} alarm value, not defined item");
 
-                     return -1;
 
-                 }
 
-                 double preValue = _itemsRFAndPump[name].PMInterval;
 
-                 _itemsRFAndPump[name].PMInterval = value;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data_rf_pump\" SET \"pm_interval\"='{0}'WHERE \"name\"='{1}';", _itemsRFAndPump[name].PMInterval,
 
-                     name);
 
-                 DB.Insert(sql);
 
-                 EV.PostInfoLog("System", $"{name} stats rf pump pm interval value changed from {preValue} to {value}");
 
-                 return preValue;
 
-             }
 
-         }
 
-         private int SetWarningValue(string name, int value)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not set {name} warning value, not defined item");
 
-                     return -1;
 
-                 }
 
-                 int preValue = _items[name].WarningValue;
 
-                 _items[name].WarningValue = value;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data\" SET \"warning_value\"='{0}'WHERE \"name\"='{1}';", _items[name].WarningValue,
 
-                     name);
 
-                 DB.Insert(sql);
 
-                 EV.PostInfoLog("System", $"{name} stats warning value changed from {preValue} to {value}");
 
-                 return preValue;
 
-             }
 
-         }
 
-         private void EnableAlarm(string name, bool enable)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not set {name} alarm enable, not defined item");
 
-                     return;
 
-                 }
 
-                 bool preValue = _items[name].AlarmEnable;
 
-                 _items[name].AlarmEnable = enable;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data\" SET \"enable_alarm\"='{0}'WHERE \"name\"='{1}';", _items[name].AlarmEnable,
 
-                     name);
 
-                 DB.Insert(sql);
 
-                 EV.PostInfoLog("System", $"{name} stats alarm enable changed from {preValue} to {enable}");
 
-                 return;
 
-             }
 
-         }
 
-         private void RFEnableAlarm(string name, bool enable)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_itemsRFAndPump.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not set {name} alarm enable, not defined item");
 
-                     return;
 
-                 }
 
-                 bool preValue = _itemsRFAndPump[name].AlarmEnable;
 
-                 _itemsRFAndPump[name].AlarmEnable = enable;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data_rf_pump\" SET \"enable_alarm\"='{0}'WHERE \"name\"='{1}';", _itemsRFAndPump[name].AlarmEnable,
 
-                     name);
 
-                 DB.Insert(sql);
 
-                 EV.PostInfoLog("System", $"{name} stats data rf and pump alarm enable changed from {preValue} to {enable}");
 
-                 return;
 
-             }
 
-         }
 
-         private void Alarm(string name)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not set {name} alarm enable, not defined item");
 
-                     return;
 
-                 }
 
-                 
 
-                 EV.PostAlarmLog("System", $"{name} stats wafer value larger than wafer setting alarm value");
 
-                 return;
 
-             }
 
-         }
 
-         
 
-         private void EnableWarning(string name, bool enable)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not set {name} warning enable, not defined item");
 
-                     return;
 
-                 }
 
-                 bool preValue = _items[name].WarningEnable;
 
-                 _items[name].WarningEnable = enable;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data\" SET \"enable_warning\"='{0}'WHERE \"name\"='{1}';", _items[name].WarningEnable,
 
-                     name);
 
-                 DB.Insert(sql);
 
-                 EV.PostInfoLog("System", $"{name} stats warning enable changed from {preValue} to {enable}");
 
-                 return;
 
-             }
 
-         }
 
-         private void Warning(string name)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not set {name} warning enable, not defined item");
 
-                     return;
 
-                 }
 
-                 EV.PostWarningLog("System", $"{name} stats wafer value larger than wafer setting warning value");
 
-                 return;
 
-             }
 
-         }
 
-         public void EnableVisible(string name, bool visible)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not set {name} alarm enable, not defined item");
 
-                     return;
 
-                 }
 
-                 bool preValue = _items[name].IsVisible;
 
-                 _items[name].IsVisible = visible;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data\" SET \"is_visible\"='{0}'WHERE \"name\"='{1}';", _items[name].IsVisible,
 
-                     name);
 
-                 DB.Insert(sql);
 
-                 EV.PostInfoLog("System", $"{name} stats visible changed from {preValue} to {visible}");
 
-                 return;
 
-             }
 
-         }
 
-         public void Terminate()
 
-         {
 
-  
 
-         }
 
-         public void Subscribe(string name, string description, int initialValue, int warningValue = 0, bool warningEnable = false, int alarmValue = 0, bool alarmEnable = false, bool isVisible=true)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     _items[name] = new StatsDataItem()
 
-                         {Description = description, Value = initialValue, Name = name, Total = 0};
 
-                     string executeInsert = string.Format(
 
-                         @"Insert into ""stats_data""(""name"",
 
-                                                     ""value"",
 
-                                                     ""total"",
 
-                                                     ""description"",
 
-                                                     ""last_update_time"",
 
-                                                     ""last_reset_time"",
 
-                                                     ""last_total_reset_time"",
 
-                                                     ""is_visible"",
 
-                                                     ""enable_warning"",
 
-                                                     ""warning_value"",
 
-                                                     ""enable_alarm"",
 
-                                                     ""alarm_value""
 
-                                                     ) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}','{11}')",
 
-                         name, initialValue, initialValue, description, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff")
 
-                         , DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), isVisible, warningEnable, warningValue, alarmEnable, alarmValue);
 
-                     DB.Insert(executeInsert);
 
-                 }
 
-             }
 
-         }
 
-         public void Subscribe(string name, string description, double fromLastPM = 0, double Total = 0, double PMInterval = 0, bool alarmEnable = false)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_itemsRFAndPump.ContainsKey(name))
 
-                 {
 
-                     _itemsRFAndPump[name] = new StatsDataItemRFAndPump()
 
-                     { Description = description, Name = name, fromLastPM = 0, Total = 0, PMInterval = 0, AlarmEnable = false };
 
-                     string executeInsert = string.Format(
 
-                         @"Insert into ""stats_data_rf_pump""(""name"",
 
-                                                     ""description"",
 
-                                                     ""last_pm_time"",
 
-                                                     ""from_last_pm"",
 
-                                                     ""total"",
 
-                                                     ""pm_interval"",
 
-                                                     ""enable_alarm""
 
-                                                     ) values('{0}','{1}','{2}','{3}','{4}','{5}','{6}')",
 
-                         name, description, DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), fromLastPM, Total, PMInterval, alarmEnable);
 
-                     DB.Insert(executeInsert);
 
-                 }
 
-             }
 
-         }
 
-         public void SetValue(string name, int value)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not set {name} value, not defined item");
 
-                     return;
 
-                 }
 
-                 _items[name].Value = value;
 
-                 _items[name].LastUpdateTime = DateTime.Now;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data\" SET \"last_update_time\"='{0}',\"value\"='{1}' WHERE \"name\"='{2}';",
 
-                     _items[name].LastUpdateTime.ToString("yyyy/MM/dd HH:mm:ss.fff"),
 
-                     value,
 
-                     name);
 
-                 DB.Insert(sql);
 
-             }
 
-         }
 
-         public int GetValue(string name)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (_items.ContainsKey(name))
 
-                 {
 
-                     return _items[name].Value;
 
-                 }
 
-             }
 
-             //LOG.Error($"Can not get {name} value, not defined item");
 
-             return 0;
 
-         }
 
-         public StatsDataItem GetItem(string name)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (_items.ContainsKey(name))
 
-                 {
 
-                     return _items[name];
 
-                 }
 
-             }
 
-             //LOG.Error($"Can not get {name} value, not defined item");
 
-             return null;
 
-         }
 
-         public StatsDataItemRFAndPump GetItemRFAndPump(string name)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (_itemsRFAndPump.ContainsKey(name))
 
-                 {
 
-                     return _itemsRFAndPump[name];
 
-                 }
 
-             }
 
-             //LOG.Error($"Can not get {name} value, not defined item");
 
-             return null;
 
-         }
 
-         public int Increase(string name, int additionValue=1)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not increase {name} value, not defined item");
 
-                     return -1;
 
-                 }
 
-                 _items[name].Value += additionValue; 
 
-                 _items[name].Total += additionValue;
 
-                 _items[name].LastUpdateTime = DateTime.Now;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data\" SET \"last_update_time\"='{0}',\"value\"='{1}',\"total\"='{2}' WHERE \"name\"='{3}';",
 
-                     _items[name].LastUpdateTime.ToString("yyyy/MM/dd HH:mm:ss.fff"),
 
-                     _items[name].Value,
 
-                     _items[name].Total,
 
-                     name);
 
-                 DB.Insert(sql);
 
-                 return _items[name].Value;
 
-             }
 
-         }
 
-         public int Increase(string name, string description, double fromLastPM = 0, double Total = 0, double PMInterval = 0, bool alarmEnable = false)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_itemsRFAndPump.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not increase {name} value, not defined item");
 
-                     return -1;
 
-                 }
 
-                 
 
-                 _itemsRFAndPump[name].fromLastPM = fromLastPM;
 
-                 _itemsRFAndPump[name].Total = Total;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data_rf_pump\" SET \"from_last_pm\"='{0}',\"total\"='{1}' WHERE \"name\"='{2}';",
 
-                     _itemsRFAndPump[name].fromLastPM, _itemsRFAndPump[name].Total, name);
 
-                 DB.Insert(sql);
 
-                 return 0;
 
-             }
 
-         }
 
-         public int Reset(string name)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not reset {name} value, not defined item");
 
-                     return -1;
 
-                 }
 
-                 int preValue = _items[name].Value;
 
-                 _items[name].Value = 0;
 
-                 _items[name].LastUpdateTime = DateTime.Now;
 
-                 _items[name].LastResetTime = DateTime.Now;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data\" SET \"last_update_time\"='{0}',\"last_reset_time\"='{1}',\"value\"='{2}' WHERE \"name\"='{3}';",
 
-                     _items[name].LastUpdateTime.ToString("yyyy/MM/dd HH:mm:ss.fff"),
 
-                     _items[name].LastResetTime.ToString("yyyy/MM/dd HH:mm:ss.fff"),
 
-                     _items[name].Value,
 
-                     name);
 
-                 DB.Insert(sql);
 
-                 EV.PostInfoLog("System", $"{name} stats value reset to 0");
 
-                 return preValue;
 
-             }
 
-             
 
-         }
 
-         public int RFReset(string name)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_itemsRFAndPump.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not reset {name} value, not defined item");
 
-                     return -1;
 
-                 }
 
-                 
 
-                 _itemsRFAndPump[name].fromLastPM = 0;
 
-                 _itemsRFAndPump[name].LastPMTime = DateTime.Now;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data_rf_pump\" SET \"last_pm_time\"='{0}',\"from_last_pm\"='{1}' WHERE \"name\"='{2}';",
 
-                     _itemsRFAndPump[name].LastPMTime.ToString("yyyy/MM/dd HH:mm:ss.fff"),
 
-                     _itemsRFAndPump[name].fromLastPM,
 
-                     name);
 
-                 DB.Insert(sql);
 
-                 EV.PostInfoLog("System", $"{name} stats rf pump value reset to 0");
 
-                 return 0;
 
-             }
 
-         }
 
-         public void ResetTotal(string name)
 
-         {
 
-             lock (_locker)
 
-             {
 
-                 if (!_items.ContainsKey(name))
 
-                 {
 
-                     //LOG.Error($"Can not reset {name} value, not defined item");
 
-                     return;
 
-                 }
 
-                 //_items[name].Value = 0;
 
-                 _items[name].Total = 0;
 
-                 //_items[name].LastResetTime = DateTime.Now;
 
-                 _items[name].LastUpdateTime = DateTime.Now;
 
-                 _items[name].LastResetTotalTime = DateTime.Now;
 
-                 string sql = string.Format(
 
-                     "UPDATE \"stats_data\" SET \"last_update_time\"='{0}',\"last_total_reset_time\"='{1}',\"total\"='{2}' WHERE \"name\"='{3}';",
 
-                     _items[name].LastUpdateTime.ToString("yyyy/MM/dd HH:mm:ss.fff"),
 
-                     //_items[name].LastResetTime.ToString("yyyy/MM/dd HH:mm:ss.fff"),
 
-                     _items[name].LastResetTotalTime.ToString("yyyy/MM/dd HH:mm:ss.fff"),
 
-                     //_items[name].Value,
 
-                     _items[name].Total,
 
-                     name);
 
-                 EV.PostInfoLog("System", $"{name} stats total value reset to 0");
 
-                 DB.Insert(sql);
 
-             }
 
-         }
 
-     }
 
- }
 
 
  |