public static void LinkToApiExt(this etc EtcDevice, BasicTriList trilist, uint joinStart, string joinMapKey) { EtcDeviceJoinMap deviceJoinMap = new EtcDeviceJoinMap(joinStart); EtcSceneJoinMap sceneMap = new EtcSceneJoinMap(joinStart); ushort offset = 1; Debug.Console(2, EtcDevice, "Linking Zones to Trilist '{0}'", trilist.ID.ToString("X")); //Digtials trilist.SetSigTrueAction(deviceJoinMap.PollScenes, () => EtcDevice.PollScenes()); //Serials trilist.SetStringSigAction(deviceJoinMap.TestRx, s => { EtcDevice.ParseRx(s); }); trilist.SetStringSigAction(deviceJoinMap.CommandPassThruTx, s => { EtcDevice.SendLineRaw(s); }); trilist.SetStringSigAction(deviceJoinMap.RecallScene, s => { EtcDevice.SetSceneByName(s); }); //To Bridge EtcDevice.TestTxFeedback.LinkInputSig(trilist.StringInput[deviceJoinMap.TestTx]); EtcDevice.CommandPassThruFeedback.LinkInputSig(trilist.StringInput[deviceJoinMap.CommandPassThruRx]); EtcDevice.ActivePresetFeedback.LinkInputSig(trilist.StringInput[deviceJoinMap.ActivePreset]); foreach (var scene in EtcDevice.Scenes) { Debug.Console(2, "Zone: Num: {0} is {1} at Offset: {2}", offset, scene.Value.sceneName, offset); var genericScene = scene.Value; Debug.Console(2, "Linking scenes"); //Digtials trilist.SetSigTrueAction(sceneMap.PollScene + offset, () => genericScene.pollScene()); trilist.SetSigTrueAction(sceneMap.SceneSet + offset, () => genericScene.SetScene()); trilist.BooleanInput[sceneMap.Enable + offset].BoolValue = genericScene.enabled; //Serials Debug.Console(2, "Generic Zone Name: {0} Enabled: {1}", genericScene.sceneName, genericScene.enabled); trilist.StringInput[sceneMap.Name + offset].StringValue = genericScene.sceneName; Debug.Console(2, "Linking Feedbacks"); genericScene.SceneFeedback.LinkInputSig(trilist.BooleanInput[sceneMap.SceneFb + offset]); offset++; } }
public void HandleEvent_DevTimerCompleted(object source, EventArgs e) { _Parent.PollScenes(); }