【发布时间】:2016-04-28 21:34:12
【问题描述】:
我正在为摩托罗拉设备“MC67”使用 C# 进行开发,但在初始化扫描仪时遇到了问题。
我使用的代码似乎是通用的,因为我在 Internet 上找到了类似的示例;供参考的是导致我出现问题的代码:
/// <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”
现在奇怪的是,我实际上能够正确使用设备上的扫描仪,因此即使出现此异常,我也可以扫描条形码并读取数据,但它正在发生的事实让我很担心,所以我试图阻止它。
有没有人知道我为什么会收到异常或任何我可以尝试的事情的建议?
【问题讨论】: