public RecordTagDTOUserTime(RecordTag source, int userID) : base(source) { var time = new TimeSpan(source.Records .Where(r => r.UserID == userID) .Select(r => (r.EndTime - r.BeginTime)) .Sum(t => t.Ticks)); UserHours = time.TotalHours; }
// Subscription tag timer event private void OnSubscriptionTimer(object sender, ElapsedEventArgs e) { subscriptionTimer.Stop(); Log.Debug("FactoryData Plc Service Subscription Timer Event"); var recordList = new List <RecordTag>(); try { foreach (ListTag elem in subscriptionList) { var record = new RecordTag { TagId = elem.Id, Data = long.Parse(logixSubscriptionDrv.Read(elem.Name)), PlcTS = DateTime.Parse(logixSubscriptionDrv.Read("TimestampPLC")), }; Log.Debug("Subscription Tag Read:" + elem.Name + " Value:" + record.Data + " Timestamp: " + record.PlcTS); recordList.Add(record); } ; } catch (Exception ex) { Log.Error("Read Subscription Tag List exception: " + ex.Message); } var msgObject = new TagReadResultsMsg { List = recordList }; var type = new Type[] { typeof(TagReadResultsMsg) }; using (var msg = new SendMessage()) { msg.Send(msgObject, "SubscriptionTag_Results", type); } subscriptionTimer.Start(); }
// Event tag timer event public void OnEventTimer(object sender, ElapsedEventArgs args) { eventTimer.Stop(); Log.Debug("FactoryData Plc Service Event Timer Event"); var recordList = new List <RecordTag>(); var resultsAvail = false; try { foreach (ListTag elem in eventList) { string trigger = string.Concat(elem.Name, ".Trigger"); string ack = string.Concat(elem.Name, ".Ack"); string data = string.Concat(elem.Name, ".Data"); string timestamp = string.Concat(elem.Name, ".TS"); var triggerCheck = bool.Parse(logixEventDrv.Read(trigger)); if (triggerCheck == true) { resultsAvail = true; var record = new RecordTag { TagId = elem.Id, Data = long.Parse(logixEventDrv.Read(data)), PlcTS = DateTime.Parse(logixEventDrv.Read(timestamp)), }; logixEventDrv.Write(ack, 1); Log.Debug("Subscription Tag Read:" + elem.Name + " Value:" + record.Data + " Timestamp: " + record.PlcTS); recordList.Add(record); logixEventDrv.Write(ack, 0); } } ; } catch (Exception ex) { Log.Error("Read Event Tag List exception: " + ex.Message); } if (resultsAvail == true) { var msgObject = new TagReadResultsMsg { List = recordList }; var type = new Type[] { typeof(TagReadResultsMsg) }; using (var msg = new SendMessage()) { msg.Send(msgObject, "EventTag_Results", type); } resultsAvail = false; } eventTimer.Start(); }
public RecordTagDTO(RecordTag source) { this.ID = source.ID; this.Text = source.Text; this.Color = source.Color; }