static async Task Main(string[] args) { using var loggerFactory = LoggerFactory.Create(opts => opts.AddConsole().SetMinimumLevel(LogLevel.Information)); var portName = SerialPort.GetPortNames().FirstOrDefault(); using var port = new SerialPort(portName, 115200); port.Open(); using var dispatcher = new OIDispatcher(port, loggerFactory.CreateLogger <OIDispatcher>()); var sensorReader = new SensorReader(dispatcher, loggerFactory.CreateLogger <SensorReader>()); var ioSensor = new OISensor(sensorReader); var robot = new Robot(dispatcher, ioSensor, loggerFactory.CreateLogger <Robot>()); await robot.Reset(); Console.WriteLine($"IO Mode: {robot.CurrentMode}"); await robot.Start(); Console.WriteLine($"IO Mode: {robot.CurrentMode}"); await robot.Activate(); Console.WriteLine($"IO Mode: {robot.CurrentMode}"); await robot.Stop(); }
public ButtonsManager(Robot robot, OIDispatcher dispatcher) { this.robot = robot; this.dispatcher = dispatcher; }
public SensorReader(OIDispatcher dispatcher, ILogger <SensorReader> logger) { this.dispatcher = dispatcher; this.logger = logger; }
public Scheduler(Robot robot, OIDispatcher dispatcher) { this.robot = robot; this.dispatcher = dispatcher; }
public Composer(Robot robot, OIDispatcher dispatcher, ILogger <Composer> logger) { this.robot = robot; this.dispatcher = dispatcher; this.logger = logger; }
public MotorsManager(Robot robot, OIDispatcher dispatcher) { this.robot = robot; this.dispatcher = dispatcher; }
public Driver(OIDispatcher dispatcher, OISensor oiSensor, ILogger <Driver> logger) { this.oiSensor = oiSensor; this.dispatcher = dispatcher; this.logger = logger; }
public Cleaner(OIDispatcher dispatcher, OISensor oiSensor) { this.dispatcher = dispatcher; this.oiSensor = oiSensor; }