public void using_again_the_same_connection_settings_return_the_same_device_instance() { var factory = new ConnectedDeviceFactory <int, SimpleDevice>(type => { return(i => (SimpleDevice)Activator.CreateInstance(type, i)); }); var firstDevice = factory.GetOrCreateDevice <SimpleDevice>(1); var secondDevice = factory.GetOrCreateDevice <SimpleDevice>(1); firstDevice.Should().BeSameAs(secondDevice); }
public T GetOrCreateDevice <T>(EncoderMotorPort port) where T : EncoderMotor { return(_encoderMotorFactory.GetOrCreateDevice <T>(port)); }
public T GetOrCreateDevice <T>(ServoMotorPort motorPort) where T : ServoMotor { return(_servoMotorsFactory.GetOrCreateDevice <T>(motorPort)); }
public T GetOrCreateDevice <T>(AnaloguePort port, Func <AnaloguePort, int, II2CDeviceFactory, T> factory, int deviceAddress) where T : AnaloguePortDeviceBase { return(_analogueConnectedDeviceFactory.GetOrCreateDevice <T>(port, (p) => factory(p, deviceAddress, PiTop4Board))); }
public T GetOrCreateDevice <T>(DigitalPort port, Func <DigitalPort, IGpioControllerFactory, T> factory) where T : DigitalPortDeviceBase { return(_digitalConnectedDeviceFactory.GetOrCreateDevice <T>(port, (p) => factory(p, PiTop4Board))); }