2016-01-22 4 views
0

Я разрабатываю C# для устройства Motorola «MC67», и у меня возникают проблемы с инициализацией сканера.Ошибка сканирования устройства Motorolla

Код, который я использую, по-видимому, является общим, поскольку я нашел похожие примеры по всему Интернету; для справки здесь код, который вызывает у меня проблемы:

/// <summary> 
    /// Initialize the reader. 
    /// </summary> 
    /// 
    public override bool InitReader() 
    { 
     Logger.Instance.Debug("InitReader"); 

     bool result = false; 

     //  Logger.Instance.AddToDebuggerLog("Symbol.InitReader"); 

     // If reader is already present then fail initialize 
     if (this._MyReader != null) 
     { 
      return false; 
     } 
     try 
     { 
      // Create new reader, first available reader will be used. 
      this._MyReader = new Symbol.Barcode.Reader(); 

      // Create reader data 
      this._MyReaderData = new Symbol.Barcode.ReaderData(
       Symbol.Barcode.ReaderDataTypes.Text, 
       Symbol.Barcode.ReaderDataLengths.MaximumLabel); 

      // Enable reader, with wait cursor 
      this._MyReader.Actions.Enable(); 

      if ((GetDeviceType() != DeviceTypes.SymbolMC3070) && (GetDeviceType() != DeviceTypes.SymbolMC3090BT)) 
      { 
       this._MyReader.Parameters.Feedback.Success.BeepTime = 0; 
      } 
      else 
      { 
       this._MyReader.Parameters.Feedback.Success.BeepTime = 50; 
      } 

      SetScannerDecoderTypeToUseWithScanSys(); 

      result = true; 
     } 
     catch (Exception ex) 
     { 
      // Something has gone wrong Initializing barcode reader etc 

      // Log Exception 
      Logger.Instance.Exception("InitReader", ex); 

      // Ensure reader is Disposed 
      if (_MyReader != null) 
      { 
       try 
       { 
        _MyReader.Dispose(); 
       } 
       catch 
       { 
        // Just incase something goes wrong 
        Logger.Instance.Error("Error Disposing MyReader in InitReader Exception"); 
       } 
       _MyReader = null; 
      } 

      // Ensure ReaderData is Disposed 
      if (_MyReaderData != null) 
      { 
       try 
       { 
        _MyReaderData.Dispose(); 
       } 
       catch 
       { 
        // Just incase something goes wrong 
        Logger.Instance.Error("Error Disposing MyReaderData in InitReader Exception"); 
       } 
       _MyReaderData = null; 
      } 

      // null the EventHandler 
      _MyEventHandler = null; 
     } 
     return result; 
    } 

Моя проблема заключается в том, что, когда указанный выше способ называется, следующая строка выдает ошибку исключения:

this._MyReader.Actions.Enable(); 

Исключение составляет «OperationFailureException »и в сообщении об ошибке упоминается« Не удалось получить все поддерживаемые атрибуты: E_SCN_INVALIDIOCTRL »

Теперь странно, что я могу правильно использовать сканер на устройстве, поэтому я могу сканировать штрих-коды и читать данные даже с этим бывший но факт, что это происходит, касается меня, поэтому я пытаюсь предотвратить это.

Кто-нибудь есть идеи, почему я получаю исключение или любые предложения, которые я могу попробовать?

ответ

0

Это «обработанное» исключение в библиотеке символов. Просто отключите точку останова для исключенного исключения. Ctrl-Alt-E, в строке «Исключения общего времени выполнения языка» снимите флажок в поле «Брошенный». К сожалению, если вы пытаетесь отладить исключение, которое работает некорректно, вам просто нужно продолжать играть каждый раз, когда возникает это исключение.

Я не нашел способ заставить его отказаться от исключения, хотя ... Мне бы очень хотелось отключить любую функцию.

+0

Это похоже на то, что я вижу; да, я мог бы просто снять галочку с флажка, и исключение больше не выбрасывается, но мне не нравится тот факт, что это происходит так идеально, что я хотел бы предотвратить его. – plingingo

Смежные вопросы