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);
        }
Exemple #3
0
        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();
        }
Exemple #4
0
        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());
            }
        }
Exemple #5
0
 public void Dispose()
 {
     LightService.DisposeAll();
 }