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