Отговори на тема  [ 18 мнения ]  Отиди на страница Предишна  1, 2
CH340 и Андроид 
Автор Съобщение
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение Re: CH340 и Андроид
Под андроид няма инф, там се работи с libusb-подобно API. Има уведомление че е дошло еди какво си vid/pid и можеш да го ползваш. Няма драйвер за виртуален ком на кърнел ниво - през libusb се прави поддръжката на същите заявки, само че user space, че даже и в джава по-скоро. Затова приложенията си чакат vid/pid-а, отварят (предполагам първия видян) и четат и пишат през него. Докато програмиста не напише нещо свястно, т.е. да има идеята че може да има и друг адаптер със същите идентификатори, и че може да има повече приложения, дето да искат да правят същото, е много вероятно да не стане нищо.
Когато пускаш приложението или при закачане на усб-то (първия път), питало ли те е с кое приложение да го ползва, и евентуално дали повече да не те пита? Така по принцип е механизма в андроида да закачин usb устройство към приложение. Не че не може и да си го поиска после приложението, което сигурно е така ако не те е питало.
Тука е една (от двете) библиотека за тази работа, която много вероятно са ползвали "твоите" програмисти:
https://github.com/mik3y/usb-serial-for-android
Ако са работили копи-пейст сигурно има и кода от примера по-долу:
Код:
    // Find all available drivers from attached devices.
    UsbManager manager = (UsbManager) getSystemService(Context.USB_SERVICE);
    List<UsbSerialDriver> availableDrivers = UsbSerialProber.getDefaultProber().findAllDrivers(manager);
    if (availableDrivers.isEmpty()) {
        return;
    }

    // Open a connection to the first available driver.
    UsbSerialDriver driver = availableDrivers.get(0);
    UsbDeviceConnection connection = manager.openDevice(driver.getDevice());
    if (connection == null) {
        // add UsbManager.requestPermission(driver.getDevice(), ..) handling here
        return;
    }

    UsbSerialPort port = driver.getPorts().get(0); // Most devices have just one port (port 0)
    port.open(connection);
    port.setParameters(115200, 8, UsbSerialPort.STOPBITS_1, UsbSerialPort.PARITY_NONE);


Имаш ли apk-тата на тия приложения, с които се бориш? Пусни ги да ги огледаме - може да изскочи нещо.
Другата популярна е тази:
https://github.com/felHR85/UsbSerial
Авторите и на двете библиотеки има приложения за терминал под андроид - пробвай дали с тях ще можеш да подкараш достъп до двата ком паралелно - ако и там не работи сигурно е мисия невъзможна.


Вто Фев 04, 2020 9:22 am
Профил
Ранг: Форумен бог
Ранг: Форумен бог
Аватар

Регистриран на: Съб Сеп 25, 2004 12:32 pm
Мнения: 8382
Местоположение: София
Мнение Re: CH340 и Андроид
Както казах, аз моя проблем съм си го решил, решава се елементарно. Иначе, до колкото андроида е линукс, всички "ком портове" там се мапват като /dev/ttyXX. Апп-а, естествено, е доста изолиран от файловата система и всичко системно, та за тва си има там разни класове на високо ниво.
В общи линии, за сега се склонявам към идеята да ривърс индженерна протокола на тъпото китайско устройство и да си напиша мой си апп за тая работа.


Вто Фев 04, 2020 7:09 pm
Профил
Ранг: Форумен бог
Ранг: Форумен бог

Регистриран на: Пон Мар 13, 2006 1:59 pm
Мнения: 3867
Местоположение: Габрово
Мнение Re: CH340 и Андроид
Да, ама не - за се случи това в линукса се грижат определени кърнъл модули - драйвери. Ако съответния модул не е наличен (билднат в кърнъла или зареден динамично) нищо не се случва, нищо не излиза в /dev/tt... В андроид не са сложили тия модули - принципно може да се пуснат, но ги няма на масовите устройства като таблети и телефони. Затова някъде към 3.0 пусната usb поддръжката под формата на достъп до ниското ниво на usb от java функция (и ndk по-късно). По този начин различните класове и специфични устройства не изискват нови драйвери (кърнъл модули, които са риск за сигурността и затова нямаш права да зареждаш, освен ако не ти е рут-нато устройството). Поддръжката (какво да се праща към ендпойнтите) се реализира в java кода от редови жаваджия.


Вто Фев 04, 2020 9:48 pm
Профил
Покажи мненията от миналия:  Сортирай по  
Отговори на тема   [ 18 мнения ]  Отиди на страница Предишна  1, 2

Кой е на линия

Потребители разглеждащи този форум: 0 регистрирани и 6 госта


Вие не можете да пускате нови теми
Вие не можете да отговаряте на теми
Вие не можете да променяте собственото си мнение
Вие не можете да изтривате собствените си мнения
Вие не можете да прикачвате файл

Търсене:
Иди на:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group.
Designed by ST Software for PTF.
Хостинг и Домейни