PCCar.ru - Ваш автомобильный компьютер

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Софт (http://pccar.ru/forumdisplay.php?f=172)
-   -   Serial Manager - автоматизация/управление Android с помощью Arduino (http://pccar.ru/showthread.php?t=24120)

DelleTenebre 25.01.2017 09:11

Всё что могу сказать на счёт usb-соединения: нестабильно работающая мистика. Я не использовал в коде usb-подключения чего-то особенного, всё что рекомендовано самим SDK. Все попытки логически понять что происходит при пропадании соединения ни к чему не привели. Поэтому рекомендую использовать соединение по bluetooth. Прошлой весной сделал на основе HC-06 и ни одной проблемы обнаружено не было.

p_osipov 25.01.2017 11:16

Цитата:

Сообщение от DelleTenebre (Сообщение 380623)
Всё что могу сказать на счёт usb-соединения: нестабильно работающая мистика. Я не использовал в коде usb-подключения чего-то особенного, всё что рекомендовано самим SDK. Все попытки логически понять что происходит при пропадании соединения ни к чему не привели. Поэтому рекомендую использовать соединение по bluetooth. Прошлой весной сделал на основе HC-06 и ни одной проблемы обнаружено не было.

Как вариант можно использовать usbtty.

oleg707 25.01.2017 12:35

Цитата:

Сообщение от DelleTenebre (Сообщение 380623)
Всё что могу сказать на счёт usb-соединения: нестабильно работающая мистика. Я не использовал в коде usb-подключения чего-то особенного, всё что рекомендовано самим SDK. Все попытки логически понять что происходит при пропадании соединения ни к чему не привели. Поэтому рекомендую использовать соединение по bluetooth. Прошлой весной сделал на основе HC-06 и ни одной проблемы обнаружено не было.

по блютуз мы еще бонусом получаем гальваническую развязку

ABCh 29.01.2017 08:55

Подключение gps-приемника к Arduino
 
Здравствуйте, DelleTenebre.
Предлагаю обсудить следующую идею:
1. gps-приемник подключается к Arduino,
2. данные пересылаются в виде NMEA:$GPRMC .....
3. в Serial Manager реализуется mock location provider.

T_r_D 29.01.2017 12:10

DelleTenebre Есть там проблемка.

Она кроется в том, что после отключения устройства сохраняется фантом от него.
Тоесть при следующем подключении ардуины вроде ВИД и ПИД теже, но вот остальная инфа по устройству в урезанном виде.

не веришь- проверь!

Вот костыль чтоб не вылетало приложение:
for (Map.Entry entry : usbDevices.entrySet()) {
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 секунд переферия обесточилась, тоесть хаб остался без питания, включил снова и всё опять работает.

Чего придумаешь- в ЛС напиши пожалуйста. Мне надоело с этим бороться!

DelleTenebre 04.02.2017 23:50

Потихоньку по-новой делаю 2-ую версию, где стараюсь учесть недостатки и опыт первой.

ABCh, NMEA получаю и даже могу распарсить до Location, но вот заставить работать mock location с навигационными программами не могу (начиная с android marshmallow и выше). Можно через google framework (fused location), но он будет не у всех. Сейчас ищу вариант через С++.

T_r_D, спасибо за информацию. Буду делать полный перебор подключенных usb, а не только того, на который сработал intent USB_DEVICE_ATTACHED. Баг с флешкой пока не тестил.

T_r_D 05.02.2017 19:51

Я долго локализовывал данную проблему.
Теперь надо понять как нормальное устройство со 100% вероятностью отличать от фантома.

Кстати подобное происходит и в других программах. Например Торкью елм так же путает если его переключить несколько раз, то в списке уже два совершенно одинаковых елма. )))))
И соответственно один работает, а второй нет.

Leprechaun 06.02.2017 09:23

Всем доброго дня.
Простите за возможно странный вопрос )
Можно ли как то отследить переключение между рабочими столами?
То есть, центральный с чем либо, следующий с виджетами, на следующий – отправка команды в сериал.
Это реально?
Спасибо.

yuriy m 06.02.2017 12:45

Вообще usb в андроиде как то через ж... сделано.В этом плане на винде вобще проблем нет. Временами напрягает как оно работает.

awtoap 06.02.2017 13:10

На ведре многое что через опу сделано, включая блютуз...более менее стабильно вафля работает. По усб ведро 4.4.4 более менее, все что выше глюки.


Часовой пояс GMT +4, время: 20:24.

Работает на vBulletin® версия 3.8.4.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot