Esempio n. 1
0
        public async Task OpenAsync(string port, int baudRate)
        {
            if (IsOpen)
            {
                throw new InvalidOperationException(
                          "The controller is already connected, please close the existing connection.");
            }

            _connection?.Dispose();

            if (_connection != null)
            {
                _connection.Open();
                return;
            }

            _connection = new SerialConnection(port, baudRate);

            try
            {
                Connect(port, baudRate);

                _connection.Open();

                await Initialize();
            }
            catch (Exception)
            {
                Close();
                throw;
            }
        }
Esempio n. 2
0
        public void Close()
        {
            if (IsOpen)
            {
                _connection.MemberSerializing   -= OnMemberSerializing;
                _connection.MemberSerialized    -= OnMemberSerialized;
                _connection.MemberDeserializing -= OnMemberDeserializing;
                _connection.MemberDeserialized  -= OnMemberDeserialized;

                _connection.Close();
                _connection.Dispose();
                _connection = null;
            }
        }