public void Reset(TrackConnectionParameters parameters) { if (_serialPort != null && _serialPort.IsOpen) { _serialPort.Close(); _serialPort.Dispose(); } _serialPort = new SerialPort(parameters.Port, parameters.BaudRate) { ReadTimeout = 500, WriteTimeout = 500 }; _serialPort.DataReceived += DataReceivedHandler; _buffer = ""; _serialPort.Open(); foreach (var lanePin in parameters.LanePins) { ArduinoCommander.SetLane(lanePin.Lane, lanePin.Pin, this); } ArduinoCommander.SetMinTime(parameters.MinTime, this); ArduinoCommander.SetRelay(parameters.RelayPin, this); }
public void ConnectToTrack() { var connectionParameters = new TrackConnectionParameters { BaudRate = _trackConnection.BaudRate, Port = _trackConnection.Port, MinTime = _trackConnection.MinTime, RelayPin = _trackConnection.RelayPin, LanePins = _trackConnection.LanePins .Select(x => new LanePinDto { Lane = x.Lane, Pin = x.Pin }) .ToList() }; var trackStatus = Container.Resolve <Application>(); trackStatus.LaneCount = _trackConnection.LanePins.Count; _arduinoService.Reset(connectionParameters); }