Motorolla设备扫描问题

时间:2016-01-22 10:12:44

标签: c# symbols motorola

我正在使用C#开发摩托罗拉设备“MC67”,我在初始化扫描仪时遇到了问题。

我使用的代码似乎是通用的,因为我在整个互联网上找到了类似的例子;这里引用的代码是导致我问题的代码:

    /// <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”

现在奇怪的是我能够在设备上正确使用扫描仪,所以我可以扫描条形码并读取数据,即使有这个例外,但它发生的事实让我担心,所以我试图阻止它

有没有人知道为什么我会收到异常或我可以尝试的任何建议?

1 个答案:

答案 0 :(得分:0)

这是一个&#34;处理&#34;符号库中的异常。只需关闭抛出异常的断点 - Ctrl-Alt-E,在行&#34; Common Language Runtime Exceptions&#34;取消选中&#34; Thrown&#34;下的框。不幸的是,如果您正在尝试调试一个无法正常工作的异常,那么每次出现此异常时您都必须继续按下播放。

我还没有办法让它停止抛出异常但是......我真的希望能够关闭任何失败的功能。