Skip to content

Instantly share code, notes, and snippets.

@Qata
Created March 24, 2016 04:12
Show Gist options
  • Save Qata/b31924383137363aecfb to your computer and use it in GitHub Desktop.
Save Qata/b31924383137363aecfb to your computer and use it in GitHub Desktop.
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