示例#1
0
        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)));
 }