public override void LinkToApi(BasicTriList trilist, uint joinStart, string joinMapKey, EiscApiAdvanced bridge) { var joinMap = new StatusSignControllerJoinMap(); var joinMapSerialized = JoinMapHelper.GetSerializedJoinMapForDevice(joinMapKey); if (!string.IsNullOrEmpty(joinMapSerialized)) { joinMap = JsonConvert.DeserializeObject <StatusSignControllerJoinMap>(joinMapSerialized); } joinMap.OffsetJoinNumbers(joinStart); Debug.Console(1, this, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); trilist.SetBoolSigAction(joinMap.RedControl, b => EnableControl(trilist, joinMap, this)); trilist.SetBoolSigAction(joinMap.GreenControl, b => EnableControl(trilist, joinMap, this)); trilist.SetBoolSigAction(joinMap.BlueControl, b => EnableControl(trilist, joinMap, this)); trilist.SetUShortSigAction(joinMap.RedLed, u => SetColor(trilist, joinMap, this)); trilist.SetUShortSigAction(joinMap.GreenLed, u => SetColor(trilist, joinMap, this)); trilist.SetUShortSigAction(joinMap.BlueLed, u => SetColor(trilist, joinMap, this)); trilist.StringInput[joinMap.Name].StringValue = Name; IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline]); RedLedEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.RedControl]); BlueLedEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.BlueControl]); GreenLedEnabledFeedback.LinkInputSig(trilist.BooleanInput[joinMap.GreenControl]); RedLedBrightnessFeedback.LinkInputSig(trilist.UShortInput[joinMap.RedLed]); BlueLedBrightnessFeedback.LinkInputSig(trilist.UShortInput[joinMap.BlueLed]); GreenLedBrightnessFeedback.LinkInputSig(trilist.UShortInput[joinMap.GreenLed]); }
void _device_BaseEvent(GenericBase device, BaseEventArgs args) { switch (args.EventId) { case StatusSign.LedBrightnessFeedbackEventId: RedLedBrightnessFeedback.FireUpdate(); GreenLedBrightnessFeedback.FireUpdate(); BlueLedBrightnessFeedback.FireUpdate(); break; case StatusSign.LedControlFeedbackEventId: RedLedEnabledFeedback.FireUpdate(); GreenLedEnabledFeedback.FireUpdate(); BlueLedEnabledFeedback.FireUpdate(); break; } }