private void Timer_Elapsed(object sender, ElapsedEventArgs e)
 {
     if (State == LampState.On)
     {
         State = LampState.Off;
     }
 }
Beispiel #2
0
        protected LampDeviceBase(LampState state, DeviceCreationInfo creationInfo)
            : base(state, creationInfo)
        {
            ForceSwitching = false;

            mVoiceName = creationInfo.Configuration.voiceName;
        }
 public TrafficLightControllerState(LampState roadAState, LampState roadBState, LampState pedestrianTrafficLightState, int timeWait)
 {
     this.RoadAState = roadAState;
     this.RoadBState = roadBState;
     this.PedestrianTrafficLightState = pedestrianTrafficLightState;
     TimeWait = timeWait;
 }
Beispiel #4
0
        protected LampDeviceBase(LampState state, DeviceCreationInfo creationInfo)
            : base(state, creationInfo)
        {
            ForceSwitching = false;

            mVoiceName = creationInfo.Configuration.voiceName;
        }
 public void Up()
 {
     if (State == LampState.On)
     {
         State = LampState.Off;
     }
 }
Beispiel #6
0
        public override void ApplyState(DeviceBase.DeviceState state)
        {
            base.ApplyState(state);

            LampState currentState = (LampState)mState;
            LampState newState     = (LampState)state;

            // Make sure we don't try to change these values.
            newState.Dimmable = currentState.Dimmable;
            newState.Group    = currentState.Group;

            // Prioritize level changes which would indirectly affect Value changes.
            if (currentState.Dimmable &&
                Math.Abs(newState.Level - currentState.Level) > 0.001f)
            {
                DimDevice(newState.Level);
            }
            else if (newState.Value != currentState.Value)
            {
                SwitchDevice(newState.Value);
            }
            else if (ForceSwitching)
            {
                if (newState.Level > 0.0f && newState.Level < 1.0f)
                {
                    DimDevice(newState.Level);
                }
                else
                {
                    SwitchDevice(newState.Value);
                }
            }
        }
Beispiel #7
0
 public TrafficLightControllerState(LampState roadAState, LampState roadBState, LampState pedestrianTrafficLightState, int timeWait)
 {
     this.RoadAState = roadAState;
     this.RoadBState = roadBState;
     this.PedestrianTrafficLightState = pedestrianTrafficLightState;
     TimeWait = timeWait;
 }
 public void Down()
 {
     if (State == LampState.Off)
     {
         State = LampState.On;
     }
 }
Beispiel #9
0
 public LampState(LampState state)
     : base(state)
 {
     Value    = state.Value;
     Level    = state.Level;
     Dimmable = state.Dimmable;
     Group    = state.Group;
 }
        public LampStateMachineB(LampState initialState = LampState.Off) : base(initialState)
        {
            Configure(LampState.Off)
            .Permit(LampTrigger.Push, LampState.On);

            Configure(LampState.On)
            .Permit(LampTrigger.Push, LampState.Off);
        }
Beispiel #11
0
 public void SwitchDevice(bool value)
 {
     if (OnSwitchDevice(value))
     {
         LampState state = (LampState)mState;
         state.Value = value;
         state.Level = value ? 1.0f : 0.0f;
     }
 }
			public void SetState(LampState lampState)
			{
				if (lampState == state)
					return;

				Trace.WriteLine("Turning " + name + " light " + lampState);
				lowLevelDriver.ControlDevice(deviceCode, lampState == LampState.On ? Function.On : Function.Off, 0);

				state = lampState;
			}
        public void PushDown_CurrentState_ShouldTargetState(LampState currentState, LampState expectedState)
        {
            // Arrange
            ProxyLamp lamp = new ProxyLamp(new LampStateMachine(messageService, initialState: currentState));

            // Act
            lamp.PushDown();

            // Assert
            lamp.State.Should().Be(expectedState);
        }
Beispiel #14
0
    public void StateChangedEvent()
    {
        var machine = new StateMachine <LampState, LampTrigger>(LampState.Off);

        machine.Configure(LampState.Off).PermitImmediate(LampState.On);
        LampState caughtState = LampState.Off;

        machine.StateChanged += (sender, args) => caughtState = args.NextState;
        machine.Initialize();
        Assert.AreEqual(caughtState, LampState.On);
    }
 public void PowerOff()
 {
     if (State == LampState.On)
     {
         State = LampState.Off;
     }
     else
     {
         throw new InvalidOperationException($"state {State}");
     }
 }
 public virtual void PushDown()
 {
     if (State == LampState.On)
     {
         State = LampState.Off;
     }
     else
     if (State == LampState.Red)
     {
         State = LampState.Off;
     }
 }
 public virtual void Push()
 {
     if (State == LampState.Off)
     {
         State = LampState.On;
     }
     else
     if (State == LampState.On)
     {
         State = LampState.Off;
     }
 }
Beispiel #18
0
        public void DimDevice(float level)
        {
            // Clamp level field
            level = Math.Min(Math.Max(level, 0.0f), 1.0f);

            if (OnDimDevice(level))
            {
                LampState state = (LampState)mState;
                state.Level = level;
                state.Value = level > 0.0f;
            }
        }
            public void SetState(LampState lampState)
            {
                if (lampState == state)
                {
                    return;
                }

                Trace.WriteLine("Turning " + name + " light " + lampState);
                lowLevelDriver.ControlDevice(deviceCode, lampState == LampState.On ? Function.On : Function.Off, 0);

                state = lampState;
            }
        public void PushUp_LampStateOff_ShouldTargetState(string currentTime, LampState expectedState)
        {
            ITimeService timeService = Mock.Of <ITimeService>(ts => ts.TimeOfDay == TimeSpan.Parse(currentTime));

            // Arrange
            ProxyLamp lamp = new ProxyLamp(new LampStateMachine(messageService, timeService));

            // Act
            lamp.PushUp();

            // Assert
            lamp.State.Should().Be(expectedState);
        }
Beispiel #21
0
 public static string ToString(LampState ls)
 {
     switch (ls)
     {
         case  LampState.GREEN:
             return "绿";
         case LampState.RED:
             return "红";
         case LampState.OFF:
             return "灭";
         default:
             return "未知";
     }
 }
 public void PowerOn()
 {
     if (State == LampState.Off)
     {
         State = LampState.On;
     }
     else
     if (State == LampState.On)
     {
         State = LampState.Blinking;
     }
     else
     {
         throw new InvalidOperationException($"state {State}");
     }
 }
Beispiel #23
0
 private void HandleLightStateChange(LightState newState)
 {
     if (newState == LightState.Dark)
     {
         if (_lampState == LampState.Off)
         {
             _lampState = LampState.On;
             _lampStateEventSource.Raise(_lampState);
         }
     }
     else if (newState == LightState.Light)
     {
         if (_lampState == LampState.On)
         {
             _lampState = LampState.Off;
             _lampStateEventSource.Raise(_lampState);
         }
     }
 }
Beispiel #24
0
        /// <summary>
        /// Sets the state of the target lamp
        /// </summary>
        /// <param name="lampId">Target device ID</param>
        /// <param name="newState">Desired lamp state</param>
        /// <returns>Controller response object</returns>
        public static ControllerResponse SetState(int lampId, LampState newState)
        {
            if (CheckDevice(lampId) == false)
            {
                return(new ControllerResponse(StatusCode.DeviceUnreachable));
            }

            _coapClient.UriPath = $"{CommandConstants.UniqueDevices}/{lampId}";
            var result = new ControllerResponse(_coapClient.Put("{ \"3311\":[{ \"5850\": " + (int)newState + "}]}"));

            if (result.StatusCode == StatusCode.Changed)
            {
                return((GetDevice(lampId) as Lamp)?.State == newState ? result : new ControllerResponse(StatusCode.NotModified));
            }
            else
            {
                return(result);
            }
        }
        protected override void SetLampState(LampState signal)
        {
            Log.Trace("Traffic Light type:{0} Lamp state :{1}", this.TrafficLightType, signal);

            RedLamp = false;
            GreenLamp = false;

            switch (signal) {
                case LampState.BlinkGreen:
                    BlinkSignalTimer = new Timer(BlinkSignal, LampState.Green, 0, 500);
                    return;

                case LampState.Green:
                    GreenLamp = true;
                    break;

                case LampState.Red:
                    RedLamp = true;
                    break;
            }
            OnStateChanged(this, EventArgs.Empty);
        }
Beispiel #26
0
        protected override void SetLampState(LampState signal)
        {
            Log.Trace("Traffic Light type:{0} Lamp state :{1}", this.TrafficLightType, signal);

            RedLamp   = false;
            GreenLamp = false;

            switch (signal)
            {
            case LampState.BlinkGreen:
                BlinkSignalTimer = new Timer(BlinkSignal, LampState.Green, 0, 500);
                return;

            case LampState.Green:
                GreenLamp = true;
                break;

            case LampState.Red:
                RedLamp = true;
                break;
            }
            OnStateChanged(this, EventArgs.Empty);
        }
Beispiel #27
0
 public LampImplementation(DeviceClient client, LampState state)
 {
     _client = client;
     _state  = state;
 }
Beispiel #28
0
 public void SetState(LampState requestedState)
 {
     State = requestedState;
 }
 public QuarterlyLampRow(int lampCount, int timeInterval, LampState defaultLampState, LampState quarterLampState)
     : base(lampCount, timeInterval, defaultLampState)
 {
     this.querterLampState = quarterLampState;
     UpdateTime();
 }
Beispiel #30
0
 private static void Dump(LampState state)
 {
     Console.ForegroundColor = colors[(int)state];
     Console.WriteLine(state);
     Console.ResetColor();
 }
Beispiel #31
0
 public LampState(LampState state)
     : base(state)
 {
     Channel = state.Channel;
 }
Beispiel #32
0
 protected abstract void SetLampState(LampState signal);
 protected abstract void SetLampState(LampState signal);
 public LampPoco()
 {
     State = LampState.Off;
 }
Beispiel #35
0
 public LampState(LampState state)
     : base(state)
 {
     Value = state.Value;
     Level = state.Level;
     Dimmable = state.Dimmable;
     Group = state.Group;
 }
Beispiel #36
0
 public LampState(LampState state)
     : base(state)
 {
     Channel = state.Channel;
 }
Beispiel #37
0
 public IActionResult Index([FromServices] LampState state)
 {
     return(Ok(state));
 }
 public LampObsolete()
 {
     State = LampState.Off;
 }