Beispiel #1
0
        protected virtual async Task <FloorSensor> CreateSensor(ActuatorItemData arg)
        {
            SensorInitializer <IActuatorX> initializer = new SensorInitializer <IActuatorX>();

            await SetupFloorInitializer(initializer, arg);

            switch (arg.ActuatorType)
            {
            case 5:
            case 0:
                throw new InvalidOperationException();

            case 1:
                return(new FloorSensorC01(initializer));

            case 2:
                return(new FloorSensorC02(initializer));

            case 3:
                var directionInitializer = new DirectionIntializer {
                    Direction = GetDirection(arg.Data)
                };
                await SetupFloorInitializer(directionInitializer, arg);

                return(new FloorSensorC03(directionInitializer));

            case 4:
            case 8:
                var constrainSensorInitalizer = new ItemConstrainSensorInitalizer <IActuatorX> {
                    Data = builder.GetItemFactory(arg.Data)
                };
                await SetupFloorInitializer(constrainSensorInitalizer, arg);

                if (arg.ActuatorType == 4)
                {
                    return(new FloorSensorC04(constrainSensorInitalizer));
                }
                else
                {
                    return(new FloorSensorC08(constrainSensorInitalizer));
                }

            case 6:
                return(new FloorSensorC06(initializer));

            case 7:
                return(new FloorSensorC07(initializer));

            default:
                throw new InvalidOperationException();
            }
        }
Beispiel #2
0
 public FloorSensorC03(DirectionIntializer initializer) : base(initializer)
 {
     Direction = initializer.Direction;
 }