![]() |
Всё что могу сказать на счёт usb-соединения: нестабильно работающая мистика. Я не использовал в коде usb-подключения чего-то особенного, всё что рекомендовано самим SDK. Все попытки логически понять что происходит при пропадании соединения ни к чему не привели. Поэтому рекомендую использовать соединение по bluetooth. Прошлой весной сделал на основе HC-06 и ни одной проблемы обнаружено не было.
|
Цитата:
|
Цитата:
|
Подключение gps-приемника к Arduino
Здравствуйте, DelleTenebre.
Предлагаю обсудить следующую идею: 1. gps-приемник подключается к Arduino, 2. данные пересылаются в виде NMEA:$GPRMC ..... 3. в Serial Manager реализуется mock location provider. |
DelleTenebre Есть там проблемка.
Она кроется в том, что после отключения устройства сохраняется фантом от него. Тоесть при следующем подключении ардуины вроде ВИД и ПИД теже, но вот остальная инфа по устройству в урезанном виде. не веришь- проверь! Вот костыль чтоб не вылетало приложение: for (Map.Entry device = entry.getValue(); int deviceVID = device.getVendorId(); int devicePID = device.getProductId(); if ((deviceVID == 0x0403 && devicePID == 0x6001) || (deviceVID == 0x2341 && devicePID == 0x8036) || (deviceVID == 0x1A86 && devicePID == 0x7523)){ if (usbManager.hasPermission(device)) { connection = usbManager.openDevice(device); //if (connection != null) serialPort = UsbSerialDevice.createUsbSerialDevice(device, connection); ВОТ НА ЭТОЙ СТРОКЕ КРАШИТ, поменено на try try {serialPort = UsbSerialDevice.createUsbSerialDevice(device, connection);} catch (Exception ex){ if (connection_trying < 5){ connection_trying = connection_trying + 1; findSerialPortDevice(); } else { connection_trying = 0; Toast.makeText(context, "DEVICE \n" + device.toString() + "\nERROR!\n" + ex.toString(), Toast.LENGTH_SHORT).show(); } } А ты попробуй считывать всегда инфу о подключённом устройстве после его коннекта и удивишься что бывает когда ошибка подключения и крашь приложения или просто его неработоспособность. Тоесть if ((deviceVID == 0x0403 && devicePID == 0x6001) || (deviceVID == 0x2341 && devicePID == 0x8036) || (deviceVID == 0x1A86 && devicePID == 0x7523)){ if (usbManager.hasPermission(device)) { Toast.makeText(context, "DEVICE \n" + device.toString(), Toast.LENGTH_SHORT).show(); В таком виде приложение у меня работает уже больше полугода в машине и ни каких нареканий. Только проблемы при подключении флешки. Подключил флешку, затем отключил и связь с ардуиной потеряна. Выключил зажигание, через 5 секунд переферия обесточилась, тоесть хаб остался без питания, включил снова и всё опять работает. Чего придумаешь- в ЛС напиши пожалуйста. Мне надоело с этим бороться! |
Потихоньку по-новой делаю 2-ую версию, где стараюсь учесть недостатки и опыт первой.
ABCh, NMEA получаю и даже могу распарсить до Location, но вот заставить работать mock location с навигационными программами не могу (начиная с android marshmallow и выше). Можно через google framework (fused location), но он будет не у всех. Сейчас ищу вариант через С++. T_r_D, спасибо за информацию. Буду делать полный перебор подключенных usb, а не только того, на который сработал intent USB_DEVICE_ATTACHED. Баг с флешкой пока не тестил. |
Я долго локализовывал данную проблему.
Теперь надо понять как нормальное устройство со 100% вероятностью отличать от фантома. Кстати подобное происходит и в других программах. Например Торкью елм так же путает если его переключить несколько раз, то в списке уже два совершенно одинаковых елма. ))))) И соответственно один работает, а второй нет. |
Всем доброго дня.
Простите за возможно странный вопрос ) Можно ли как то отследить переключение между рабочими столами? То есть, центральный с чем либо, следующий с виджетами, на следующий – отправка команды в сериал. Это реально? Спасибо. |
Вообще usb в андроиде как то через ж... сделано.В этом плане на винде вобще проблем нет. Временами напрягает как оно работает.
|
На ведре многое что через опу сделано, включая блютуз...более менее стабильно вафля работает. По усб ведро 4.4.4 более менее, все что выше глюки.
|
Часовой пояс GMT +4, время: 20:24. |
Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot