public LogicGateSensor(LogicGateInitializer initializer) : base(initializer) { ReferenceBit0 = initializer.RefBit0; ReferenceBit1 = initializer.RefBit1; ReferenceBit2 = initializer.RefBit2; ReferenceBit3 = initializer.RefBit3; }
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(); } }