public static IRangerSensor produceRangerSensor(RangerSensorFactoryProducts productType, string name, SensorPose pose, IAbstractRobotHardware brick, params Object[] args) { switch (productType) { case RangerSensorFactoryProducts.RangerSensorIR10_80: return new RangerSensorIR10_80(name, pose, brick, (AnalogPinId)args[0], (int)args[1], (double)args[2]); case RangerSensorFactoryProducts.RangerSensorIR20_150: return new RangerSensorIR20_150(name, pose, brick, (AnalogPinId)args[0], (int)args[1], (double)args[2]); case RangerSensorFactoryProducts.RangerSensorSonar: return new RangerSensorSonar(name, pose, brick, (GpioPinId)args[0], (GpioPinId)args[1], (int)args[2], (double)args[3]); case RangerSensorFactoryProducts.RangerSensorParkingSonar: return new RangerSensorParkingSonar(name, pose, brick, (int)args[0]); default: throw new NotImplementedException("Error: RangerSensorFactory cannot produce ranger type " + productType); } }
public static IRangerSensor produceRangerSensor(RangerSensorFactoryProducts productType, string name, SensorPose pose, IAbstractRobotHardware brick, params Object[] args) { switch (productType) { case RangerSensorFactoryProducts.RangerSensorIR10_80: return(new RangerSensorIR10_80(name, pose, brick, (AnalogPinId)args[0], (int)args[1], (double)args[2])); case RangerSensorFactoryProducts.RangerSensorIR20_150: return(new RangerSensorIR20_150(name, pose, brick, (AnalogPinId)args[0], (int)args[1], (double)args[2])); case RangerSensorFactoryProducts.RangerSensorSonar: return(new RangerSensorSonar(name, pose, brick, (GpioPinId)args[0], (GpioPinId)args[1], (int)args[2], (double)args[3])); case RangerSensorFactoryProducts.RangerSensorParkingSonar: return(new RangerSensorParkingSonar(name, pose, brick, (int)args[0])); default: throw new NotImplementedException("Error: RangerSensorFactory cannot produce ranger type " + productType); } }