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); } }
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); }