public void SetStatus(LampDataObject obj) { // TODO: partial response, not on/off and r,g,b always set simultaneously LightService svc = CurrentService; svc.On = obj.burn; svc.SetRGB(obj.red, obj.green, obj.blue).Wait(); }
public LampDataObject GetStatus() { LightService svc = CurrentService; LampDataObject obj = new LampDataObject { burn = svc.On, red = svc.Red, blue = svc.Blue, green = svc.Green }; return(obj); }
private void SetupService(LampConfig lamp) { ushort port = FreeTcpPort(); var service = new LightService(lamp.Name, port) { OnCommand = lamp.OnCommand, OffCommand = lamp.OffCommand }; service.LampSwitched += Service_LampSwitched; service.StartWebserver(); service.RegisterMDNS(); }
async Task Service_LampSwitched(LightService service, bool on) { var cmd = on ? service.OnCommand : service.OffCommand; // Encode command int[] pulses = Ev1527Decoder.Encode(cmd.Unitcode, cmd.Operation, 256, 200, 1000); for (int i = 0; i < Configuration.Repeats; i++) { if (i > 0 && Configuration.RepeatDelay > 0) { Thread.Sleep(Configuration.RepeatDelay); } var msg = new PilightRawMessage(); msg.Code.SetPulsesAsCode(pulses); await Socket.SendMesage(msg.ToString()); } }
public void Dispose() { LightService.DisposeAll(); }