Esempio n. 1
0
        private static void RegisterDrivers(ContainerBuilder builder, II2CAddressProvider i2CAddressProvider)
        {
            if (i2CAddressProvider.ServoDriverAddress.HasValue)
            {
                builder.Register <ServoDriver>(x => new ServoDriver(i2CAddressProvider.ServoDriverAddress.Value)).AsImplementedInterfaces().SingleInstance();
            }
            else
            {
                builder.Register <IServoDriver>(x => new Moq.Mock <IServoDriver>().Object);
            }

            if (i2CAddressProvider.IMUAddress.HasValue)
            {
                builder.Register <IMUDriver>(x => new IMUDriver(i2CAddressProvider.IMUAddress.Value, MPU6050Scale.MPU6050_SCALE_2000DPS, MPU6050Range.MPU6050_RANGE_2G)).AsImplementedInterfaces().SingleInstance();
            }
            else
            {
                builder.Register <IIMUDriver>(x => CreateIMUDriverMock().Object);
            }

            if (i2CAddressProvider.SodarAddress.HasValue)
            {
                builder.Register <SodarDriver>(x => new SodarDriver(i2CAddressProvider.SodarAddress.Value)).AsImplementedInterfaces().SingleInstance();
            }
            else
            {
                builder.Register <ISodarDriver>(x => CreateSodarDriverMock().Object);
            }
        }
Esempio n. 2
0
        public static void Configure(ContainerBuilder builder, IProgramAssemblyProvider programAssemblyProvider, II2CAddressProvider i2CAddressProvider)
        {
            RegisterDrivers(builder, i2CAddressProvider);
            RegisterServices(builder);

            if (programAssemblyProvider != null)
            {
                RegisterPrograms(builder, programAssemblyProvider);
            }

            RegisterVisionHandlers(builder);
            RegisterRuntime(builder);
        }