public Relay(IJournal journal, RelayName name, ISignalsFactory signals) { mJournal = journal; mOutput = signals.GetSignal(SensorName.Relay(name)); // TODO: uncomment mFeedback = signals.GetSignal(SensorName.Relay(name, SignalName.Feedback)); if (mFeedback != null) { mFeedback.OnChange += FeedbackOnChange; } if (mOnTimeout == null) { mOnTimeout = signals.GetSignal("relay.feedback.on.timeout"); } if (mFeedback != null) { mOnTimeout.OnUpdate += signal => { var rv = signal.ValueAsInt < 1500 ? 1500 : signal.ValueAsInt > 6000 ? 6000 : signal.ValueAsInt; mJournal.Debug(string.Format("Таймер реле (ОС) установлен в {0} мс для {1}", rv, mOutput.Specification.Id), MessageLevel.System); mTask.SetTimeout(rv); }; } // задержка на контроль обратной связи по контактору по умолчанию mTask = new DelayedTask(mOnTimeout == null ? 3000 : mOnTimeout.ValueAsInt < 1500 ? 1500 : mOnTimeout.ValueAsInt > 6000 ? 6000 : mOnTimeout.ValueAsInt); mTask.OnTimeout += Checkout; }
public static string Relay(RelayName channel, SignalName sensor) { var rv = sensor.ToString(); switch (sensor) { case SignalName.Feedback: { switch (channel) { case RelayName.Kv1: rv = "k3"; break; case RelayName.Kv2: rv = "k2"; break; case RelayName.Kv8: rv = "k4"; break; case RelayName.Kv9: rv = "k6"; break; case RelayName.Kv10: //rv = "k6"; rv = "k5"; break; case RelayName.Kv11: rv = "k1"; break; } } break; } const string kParent = "relay"; return((sensor == SignalName.Empty ? string.Format("{0}.{1}", kParent, channel) : string.Format("{0}.{1}.{2}", kParent, channel, rv)).ToLower()); }
public static string Relay(RelayName channel) { return(Relay(channel, SignalName.Empty)); }