Показать сообщение отдельно
Старый 29.01.2017, 12:10   #325
T_r_D
Старший Пользователь
 
Регистрация: 03.07.2015
Регион: 77, 97, 99, 177
Сообщений: 372
T_r_D is a jewel in the roughT_r_D is a jewel in the roughT_r_D is a jewel in the rough
По умолчанию

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

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

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

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

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