Exemple #1
0
        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);
        }