Zebra Android SDK медленно считывает RFID-меткиAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Гость
 Zebra Android SDK медленно считывает RFID-метки

Сообщение Гость »


Когда я тестирую пример кода, доступный по этому URL-адресу (https://www.zebra.com/us/en/support-dow ... obile.html), этот код считывает теги почти 10 раз. быстрее, чем мой код. Большинство деталей выглядят одинаково Модель моего устройства — Zebra RFD8500

Я тестировал обе стороны, с интерфейсом и без него, но мой код всегда работал медленно. Спасибо за помощь
частный класс CreateInstanceTask расширяет AsyncTask { @Override защищенный Void doInBackground(Void... пустоты) { Log.d(TAG, "CreateInstanceTask"); // В зависимости от поддержки, доступной на хост-устройстве, выберите тип считывателя InvalidUsageException validUsageException = null; читатели = новые читатели (контекст, ENUM_TRANSPORT.BLUETOOTH); пытаться { доступныйRFIDReaderList = читателей.GetAvailableRFIDReaderList(); } catch (InvalidUsageException e) { е.printStackTrace(); } catch(Исключение ex){ ex.printStackTrace(); } если (invalidUsageException! = ноль) { читатели.Dispose(); читатели = ноль; если (читатели == ноль) { читатели = новые читатели (контекст, ENUM_TRANSPORT.BLUETOOTH); } } вернуть ноль; } @Override protected void onPostExecute (Void aVoid) { super.onPostExecute(aVoid); подключитьЧтение(); } } частная пустота ConfigurationReader() { Log.d(TAG, "ConfigureReader" + reader.getHostName()); если (reader.isConnected()) { TriggerInfo TriggerInfo = новый TriggerInfo(); триггерInfo.StartTrigger.setTriggerType(START_TRIGGER_TYPE.START_TRIGGER_TYPE_IMMEDIATE); TriggerInfo.StopTrigger.setTriggerType(STOP_TRIGGER_TYPE.STOP_TRIGGER_TYPE_IMMEDIATE); пытаться { // получаем события от читателя если (eventHandler == ноль) eventHandler = новый EventHandler(); reader.Events.addEventsListener(eventHandler); // событие ДЧ reader.Events.setHandheldEvent(истина); // отмечаем событие данными тега читатель.Events.setTagReadEvent(истина); reader.Events.setAttachTagDataWithReadEvent(false); // устанавливаем режим триггера как RFID, чтобы луч сканера не приходил reader.Config.setTriggerMode(ENUM_TRIGGER_MODE.RFID_MODE, true); // устанавливаем триггеры запуска и остановки reader.Config.setStartTrigger(triggerInfo.StartTrigger); reader.Config.setStopTrigger(triggerInfo.StopTrigger); // уровни мощности основаны на индексе, поэтому максимальная поддерживаемая мощность получает последнюю MAX_POWER = reader.ReaderCapabilities.getTransmitPowerLevelValues().length - 1; // устанавливаем конфигурации антенны Антенны.AntennaRfConfig config = reader.Config.Antennas.getAntennaRfConfig(1); config.setTransmitPowerIndex(MAX_POWER); config.setrfModeTableIndex(0); config.setTari(0); reader.Config.Antennas.setAntennaRfConfig(1, конфигурация); // Устанавливаем контроль сингулярности Antennas.SingulationControl s1_singulationControl = reader.Config.Antennas.getSingulationControl(1); s1_singulationControl.setSession(SESSION.SESSION_S0); s1_singulationControl.Action.setInventoryState(INVENTORY_STATE.INVENTORY_STATE_A); s1_singulationControl.Action.setSLFlag(SL_FLAG.SL_ALL); reader.Config.Antennas.setSingulationControl(1, s1_singulationControl); // удаляем все префильтры читатель.Действия.PreFilters.deleteAll(); // } catch (InvalidUsageException | OperationFailureException e) { е.printStackTrace(); } } } синхронизированный недействительный PerformInventory () { // проверяем подключение считывателя если (!isReaderConnected()) возвращаться; пытаться { Reader.Actions.Inventory.perform(); } catch (InvalidUsageException e) { е.printStackTrace(); } catch (OperationFailureException e) { е.printStackTrace(); } } публичный класс EventHandler реализует RfidEventsListener { // Читаем уведомление о событии public void eventReadNotify(RfidReadEvents e) { // Рекомендуется использовать новый метод getReadTagsEx для повышения производительности в случае большого количества тегов. TagData[] myTags = reader.Actions.getReadTags(100); если (myTags != ноль) { for (int index = 0; index 0) { Log.d(TAG, «Данные банка памяти» + myTags[index].getMemoryBankData()); } } если (myTags[index].isContainsLocationInfo()) { короткое расстояние = myTags[index].LocationInfo.getRelativeDistance(); Log.d(TAG, "Относительное расстояние тега" + dist); } } // возможно, если операция была вызвана из асинхронной задачи и все еще занята // обрабатываем ответы данных тега в параллельном потоке, таким образом, THREAD_POOL_EXECUTOR //новый AsyncDataUpdate().executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, myTags); } } // Уведомление о событии статуса public void eventStatusNotify(RfidStatusEvents rfidStatusEvents) { Log.d(TAG, "Уведомление о статусе: " + rfidStatusEvents.StatusEventData.getStatusEventType()); if (rfidStatusEvents.StatusEventData.getStatusEventType() == STATUS_EVENT_TYPE.HANDHELD_TRIGGER_EVENT) { if (rfidStatusEvents.StatusEventData.HandheldTriggerEventData.getHandheldEvent() == HANDHELD_TRIGGER_EVENT_TYPE.HANDHELD_TRIGGER_PRESSED) { новый AsyncTask() { @Override protected Void doInBackground (Void... voids) { context.handleTriggerPress(истина); вернуть ноль; } }.выполнять(); } if (rfidStatusEvents.StatusEventData.HandheldTriggerEventData.getHandheldEvent() == HANDHELD_TRIGGER_EVENT_TYPE.HANDHELD_TRIGGER_RELEASED) { новый AsyncTask() { @Override protected Void doInBackground (Void... voids) { context.handleTriggerPress(false); вернуть ноль; } }.выполнять(); } } } } частная пустота setAntennaPower (int power) { Log.d(TAG, "setAntennaPower" + мощность); пытаться { // устанавливаем конфигурации антенны Антенны.AntennaRfConfig config = reader.Config.Antennas.getAntennaRfConfig(1); config.setTransmitPowerIndex(мощность); config.setrfModeTableIndex(0); config.setTari(0); reader.Config.Antennas.setAntennaRfConfig(1, конфигурация); } catch (InvalidUsageException e) { е.printStackTrace(); } catch (OperationFailureException e) { е.printStackTrace(); } }
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Zebra Android SDK медленно считывает RFID-метки
    Anonymous » » в форуме Android
    0 Ответы
    38 Просмотры
    Последнее сообщение Anonymous
  • Ошибка интеграции Zebra RFID: com.zebra.rfid.api3.OperationFailureException
    Anonymous » » в форуме Android
    0 Ответы
    17 Просмотры
    Последнее сообщение Anonymous
  • Подключенное устройство не поддерживает RFID, ฺ и штрих -код или Zebra RFID SDK не инициализирован в Android 14
    Anonymous » » в форуме Android
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Получение UID RFID-метки Mifare Classic на телефоне Android через Kotlin
    Anonymous » » в форуме Android
    0 Ответы
    36 Просмотры
    Последнее сообщение Anonymous
  • Zebra Android SDK подсчитывает TID и EPC
    Anonymous » » в форуме Android
    0 Ответы
    30 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Android»