/// <summary>
        /// Инициализация прибора
        /// </summary>
        public override void Open()
        {
            if (_isConnected) return;
            _transport.Connect();
            if (!_transport.Connected) throw new ExternalException("Измерительное устройство не найдено");  // Проверка подключения
            _isConnected = true;

            _device = new B380ADC(_transport);
            _registerR14 = _device.GetIDs();
            if (_registerR14.TypeID != _device.DeviceID)                                                    // Проверка, что это B380
                throw new NotSupportedException(_registerR14.TypeID.ToString() + " не подерживаются");

            _device.ClearProtocol();
            _registerR6 = _device.GetInfo();
            SerialNumber = Convert.ToString(_registerR6.Data[3]);
            _device.Reset(false);
            _device.InitDDR(true);
            _device.ReadCalibrations();
            IsConnected();
            if (!FirstTimeConfigure()) Close();
        }
        private void _btnDisconnect_Click(object sender, EventArgs e)
        {
            try
            {
                _device.ClearProtocol();
                _device.SetLockData(0, true);
                _device = null;
                _transport.Disconnect();
                _text.Text += Environment.NewLine + "Отключились";
            }
            catch (Exception ex)
            {
                _text.Text += Environment.NewLine + "Ошибка:" + ex.Message;
            }

            _text.SelectionStart = _text.TextLength - 1;
            _text.ScrollToCaret();
        }
 /// <summary>
 /// Отключение прибора
 /// </summary>
 public override void Close()
 {
     if (!_isConnected) return;
     _device.ClearProtocol();
     _device = null;
     _isConnected = false;
     _transport.Disconnect();
 }
        private void _btnConnect_Click(object sender, EventArgs e)
        {
            try
            {
                _transport.IPAddress = IPAddress.Parse("192.168.255.148");
                _transport.Port = 0x6871;
                _transport.Timeout = 500;
                _transport.Connect();

                _text.Text += Environment.NewLine + (_transport.Connected ? "Связь установлена" : "Не удалось подключиться");

                if (!_transport.Connected)
                    return;

                _device = new B380ADC(_transport);


                _device.ClearProtocol();

                R14Register r14 = _device.GetIDs();
                if (r14.TypeID != _device.DeviceID)//Проверка, что это B380
                    throw new NotSupportedException(r14.TypeID.ToString() + " не подерживаются");

                R6Register r6 = _device.GetInfo();


                // Это нужно, если много устройств в сети (для одного закоментарил)
                //EnumCaptureMode captureMode;
                //if (!IsCaptured)
                //{
                //    if (r6.LockData == 0)
                //        captureMode = EnumCaptureMode.CaptureAvailable;
                //    else if (r6.LockData == _CaptureID_Const)
                //        captureMode = EnumCaptureMode.CaptureSame;
                //    else
                //        captureMode = EnumCaptureMode.CaptureNotAvailable;
                //}
                //else
                //{
                //    if (r6.LockData == 0)
                //        captureMode = EnumCaptureMode.RecaptureAfterSwitchOff;
                //    else
                //        captureMode = (r6.LockData == _CaptureID)
                //            ? EnumCaptureMode.RecaptureAfterLostConnection
                //            : EnumCaptureMode.RecaptureNotAvailable;
                //}

                //if ((_CaptureMode & captureMode) != captureMode)
                //    throw new NotSupportedException(captureMode.ToString() + " не подерживаются");

                //uint newCaptureID = _CaptureID;

                //if (!IsCaptured)
                //    newCaptureID = _CaptureID_Const;


                //_Device.SetLockData(newCaptureID, false);
                //r6 = _Device.GetInfo();
                //_CaptureID = newCaptureID;
                //System.Diagnostics.Debug.Assert(_CaptureID == r6.LockData);

                _device.InitDDR(true);
                _device.ReadCalibrations();

                //_IsReady = true;

                _text.Text += Environment.NewLine + "Подключились";// Состояние подключение можно проверять так: R14Register r14 = AMDevice.GetIDs(_transport); - здесь не заморачиваемся

            }
            catch (Exception ex)
            {
                _text.Text += Environment.NewLine + "Ошибка:" + ex.Message;
            }

            _text.SelectionStart = _text.TextLength - 1;
            _text.ScrollToCaret();
        }