Created
March 24, 2016 04:12
-
-
Save Qata/b31924383137363aecfb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
enum RpcCommand { | |
case Echo(ControlNode, AnyObject) | |
case ReadGateway(ControlNode) | |
case RunCommand(ControlNode, RpcRunCommand) | |
case ReadLine(ControlLineNode) | |
case ReadAddress(ControlDeviceNode) | |
case ReadGroup(ControlGroupNode) | |
case ReadGroupData(ControlGroupNode) | |
case ForceReadAddress(ControlDeviceNode) | |
case FindAllUnaddressed(ControlLineNode) | |
case FindUnaddressed(ControlLineNode) | |
case SetUnaddressed(ControlLineNode, Address?) | |
case EdaliFindUnaddressed(ControlLineNode, EdaliClass) | |
case EdaliSetUnaddressed(ControlLineNode, EdaliClass, Address?) | |
case UnusedAddresses(ControlLineNode) | |
case DeleteAddress(ControlDeviceNode) | |
case UpdateAddress(ControlDeviceNode, Address) | |
case ForceReadLine(ControlLineNode) | |
case AddToGroup(ControlDeviceNode, Group) | |
case AddToGroups(ControlDeviceNode, [Group]) | |
case RemoveFromGroup(ControlDeviceNode, Group) | |
case RemoveFromGroups(ControlDeviceNode, [Group]) | |
case UpdateMaxLevel(ControlDeviceNode, ArcPower) | |
case UpdateMinLevel(ControlDeviceNode, ArcPower) | |
case UpdateSystemFailureLevel(ControlDeviceNode, ArcPower) | |
case UpdatePowerOnLevel(ControlDeviceNode, ArcPower) | |
case UpdateSceneLevel(ControlDeviceNode, Scene, ArcPower) | |
case UpdateColourSystemFailureLevel(ControlDeviceNode, ArcPower, UInt, UInt, UInt) | |
case UpdateKelvinSystemFailureLevel(ControlDeviceNode, ArcPower, Double) | |
case UpdateColourPowerOnLevel(ControlDeviceNode, ArcPower, UInt, UInt, UInt) | |
case UpdateKelvinPowerOnLevel(ControlDeviceNode, ArcPower, Double) | |
case UpdateColourSceneLevel(ControlDeviceNode, Scene, ArcPower, UInt, UInt, UInt) | |
case UpdateKelvinSceneLevel(ControlDeviceNode, Scene, ArcPower, Double) | |
case SetMSensorPirMode(ControlDeviceNode, MSensorPirMode) | |
case SetMSensorPowerUpAction(ControlDeviceNode, UInt) | |
case SetMSensorOnFadeTime(ControlDeviceNode, UInt) | |
case SetMSensorMinFadeTime(ControlDeviceNode, UInt) | |
case SetMSensorOffFadeTime(ControlDeviceNode, UInt) | |
case SetMSensorOnDelayTime(ControlDeviceNode, Minutes) | |
case SetMSensorMinDelayTime(ControlDeviceNode, Minutes) | |
case SetMSensorExitDelayTime(ControlDeviceNode, Minutes) | |
case SetMSensorPresenceValue(ControlDeviceNode, ArcPower) | |
case SetMSensorAbsenceValue(ControlDeviceNode, ArcPower) | |
case SetMSensorCorridorFunctionGroup(ControlDeviceNode, Index, Group) | |
case SetMSensorCorridorFunctionValue(ControlDeviceNode, Index, ArcPower) | |
case CreateLink(ControlNode) | |
case ReadLink(ControlNode, [String]) | |
var rpcTuple: (String, AnyObject) { | |
get { | |
switch self { | |
case .SetMSensorOnDelayTime(let device, let minutes): | |
return ("msensorsetondelaytime", [device.line, device.number, minutes * 2]) | |
case .SetMSensorMinDelayTime(let device, let minutes): | |
return ("msensorsetmindelaytime", [device.line, device.number, minutes * 2]) | |
case .SetMSensorExitDelayTime(let device, let minutes): | |
return ("msensorsetexitdelaytime", [device.line, device.number, minutes * 60]) | |
default: | |
return ("", []) | |
} | |
} | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment