protected virtual async Task <SensorX> ParseLogicSensor(ActuatorItemData data)
        {
            switch (data.ActuatorType)
            {
            case 5:
                var logicGateInitializer = new LogicGateInitializer
                {
                    RefBit0 = (data.Data & 0x10) == 0x10,
                    RefBit1 = (data.Data & 0x20) == 0x20,
                    RefBit2 = (data.Data & 0x40) == 0x40,
                    RefBit3 = (data.Data & 0x80) == 0x80
                };
                await SetupInitializer(logicGateInitializer, data);

                return(new LogicGateSensor(logicGateInitializer));

            case 6:
                var counterInitializer = new CounterIntializer()
                {
                    Count = data.Data,
                };
                await SetupInitializer(counterInitializer, data);

                return(new CounterSensor(counterInitializer));

            default:
                throw new InvalidOperationException();
            }
        }
Esempio n. 2
0
 public CounterSensor(CounterIntializer initializer) : base(initializer)
 {
     count = initializer.Count;
 }