public CommandMessage(InsteonId dst, Command cmd, byte value = 0, MessageFlags flags = MessageFlags.Default) { Destination = dst; Command = cmd; Value = value; Flags = flags; }
public InsteonDevice(InsteonId address, InsteonController controller, string name = null, string zone = null, string alias = null) { Address = address; Controller = controller ?? this as InsteonController; Zone = zone ?? ""; Name = name ?? address.ToString(); Alias = alias ?? Name; }
public async Task <LightStatus> RampAsync(InsteonId dst, RampDirection dir, int durationMs = 0) { LightStatus s = await StartRampAsync(dst, dir); if (durationMs > 0) { await Task.Delay(durationMs); s = await StopRampAsync(dst); } return(s); }
public SwitchLinc(InsteonController controller, InsteonId address, string name = null, string zone = null, string alias = null, LightLevelCurve levelCurve = null) : base(address, controller, name, zone, alias) { LevelCurve = levelCurve; }
public Task <LightStatus> RampDown(InsteonId dst, int durationMs = 0) => RampAsync(dst, RampDirection.Down, durationMs);
public Task <LightStatus> StopRampAsync(InsteonId dst) => Send <LightStatus>(dst, Command.RampStop);
public Task <LightStatus> StartRampAsync(InsteonId dst, RampDirection dir) => Send <LightStatus>(dst, Command.RampStart, (byte)dir);
public Task <R> Send <R>(InsteonId dst, Command cmd, byte value = 0, MessageFlags flags = MessageFlags.Default) where R : CommandResponse, new() => Send <R>(new CommandMessage(dst, cmd, value, flags));
public Task <LightStatus> SetLevelAsync(InsteonId dst, byte level) => Send <LightStatus>(dst, Command.SetLevel, level);
public Task <LightStatus> Dim(InsteonId dst) => Send <LightStatus>(dst, Command.Dim);
public Task <LightStatus> Brighten(InsteonId dst) => Send <LightStatus>(dst, Command.Brighten);
public Task <LightStatus> SetFastOff(InsteonId dst) => Send <LightStatus>(dst, Command.FastOff);
public Task <LightStatus> SetFullOn(InsteonId dst) => Send <LightStatus>(dst, Command.On);
public Task <LightStatus> GetStatus(InsteonId dst) => Send <LightStatus>(dst, Command.GetLightStatus);
public Task <LightStatus> SetLevelAsync(InsteonId dst, double pct) => SetLevelAsync(dst, LightStatus.PctToLevel(pct));
public static IEnumerable <byte> GetBytes(MessageType type, InsteonId dst, params object[] bytes) => new[] { STX, (byte)type, dst.A1, dst.A2, dst.A3 }.Concat(bytes.Select(Convert.ToByte));
public Task <CommandResponse> Send(InsteonId dst, Command cmd, byte value = 0, MessageFlags flags = MessageFlags.Default) => Send <CommandResponse>(dst, cmd, value, flags);