Я разрабатываю на C # для устройства Motorola «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»
Странно то, что я действительно могу правильно использовать сканер на устройстве, поэтому я могу сканировать штрих-коды и читать данные даже с этим исключением, но сам факт того, что это происходит, беспокоит меня, поэтому я пытаюсь предотвратить это.
Кто-нибудь знает, почему я получаю исключение или какие-либо предложения о том, что я могу попробовать?