private void DigitalSystem_OnCommandReceived(object sender, Otc.Systems.SystemCommandEventArgs e) { if (e.CommandReceived == null) { return; } else if (e.CommandReceived is IFeedbackStatusChanged) { IFeedbackStatusChanged reportedStatuses = e.CommandReceived as IFeedbackStatusChanged; if (reportedStatuses != null) { feedbackTesterControl.FeedbackReceived(reportedStatuses.ReportedStatuses); } } }
private void FeedbackStatusReceived(IFeedbackStatusChanged command) { Element element; foreach (FeedbackPointAddressStatus status in command.ReportedStatuses) { element = Element.GetByFeedbackAddress(command.Address, status.PointAddress); if (element != null) { if (element.FeedbackStatus != status.Active) { element.SetFeedbackStatus(status.Active); StudioContext.LogInformation("Accessory {0:D4}:{1} changed to status {2}", command.Address, status.PointAddress, (status.Active ? "HIGH" : "LOW")); } } } }