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 24.12.2016 11:48

Dmitry8, идей нет. Разве что проверить скорость и символ окончания строки.

yuriy m, универсального правильного способа нет. Всё зависит от того зачем и в каких условиях нужно передавать значение. Если взять сферические классы в вакууме, то это геттеры и сеттеры (getValue(), setValue()). И если честно, то Android это костыль на костыле.

Dmitry8 03.01.2017 13:59

DelleTenebre, здесь уже писали про пропуски сообщений, тоже столкнулся с такой проблемой. Из 5-ти отправленных подряд строк приходит 1-2.
Вот пример кода:
Код:

void setup() {
  Serial.begin(115200);
}


void loop() {
  Serial.println("");
  Serial.println("");
  Serial.println("");
  Serial.println("");
  Serial.println("");
  delay(5000);
}

Редко, может придти половина от одной строки, половина от другой, например:
Код:


Пробовал на разных ардуино (nano, pro-micro, pro-mini + usb-ttl), на всех одно и то же. Если задать скорость порта поменьше (9600) - то пропусков становится значительно меньше. Если между отправками строк вставить задержку 15мс - то приходят все, но это не вариант.

lti1 03.01.2017 16:46

Dmitry8, зачем Вам такая частая отправка данных? Сделайте задержку между посылками, думаю в Вашем случае будет достаточно 5 мс.

Dmitry8 03.01.2017 16:56

lti1, говорю же что это не вариант для меня. 5штук подряд может и не надо, а вот два сообщения подряд - запросто. 5мс - недостаточно, проверено опытным путём, минимум 10мс.

lti1 03.01.2017 17:43

Dmitry8, я делал на основе той же библиотеки, что и SM, свое приложение. Так же столкнулся с со сложностью, что часть пакетов терялась при отправке без паузы. Первое решение было отправлять с паузой в 1 мс (в моем случае этого было достаточно, так как стоит скорость порта 2000000 бод), потом добавил ответ приложения о получении и обработке данных. То есть отправляю данные и вешаю флаг, что данные отправлены, при получении ответа от приложения флаг снимается и отправляется следующий пакет.

Dmitry8 03.01.2017 18:05

lti1, в библиотеке felhr85 есть пример, так вот то приложение отображает все приходящие данные с того же самого скетча без единого пропуска. К тому же, с недавнего времени, в этой библиотеке появились методы для синхронного приёма/передачи, прошу автора обратить на это внимание, может это поможет решить проблему?
Что касается задержки - это костыль, а вот подтверждение получения - неплохой вариант, но хотелось бы бОльшего быстродействия.

Absent81 07.01.2017 23:59

При подключении arduino pro micro к включенному планшету, Serial Manager 1.6.7 определяет устройство "/dev/bus/usb/002/005" и работает с ним отлично. Отрабатывает команды указанные в настройках Serial Manager. Но стоит перезагрузить планшет, Serial Manager не находит ардуину и при этом ОТВАЛИВАЕТСЯ СЕТЬ. Долго разбирался в чем дело (симка, прошивка радиомодуля, настройка точки доступа и т.д.), почему теряется сеть. Даже в настройках в разделе о планшете--> прошивка радиомодуля вместо кода 1231_0.18.0_0409 написано "не известно". В итоге понял что сеть отваливается именно из-за подключенной arduino после перезагрузки планшета. Стоит только отключить ардуино и перезагрузить планшет, сеть работает отлично. Но не могу понять каким образом связано одно с другим. Кто знает в чем может быть дело, помогите пожалуйста. Планшет Nexus 7 2012 прошивка autodroid 1.2 (на других прошивках тоже самое)

AntonIgorevich 13.01.2017 23:56

Всем доброго времени суток! Ребят,подскажите пожалуйста,третий день не могу заставить леонардо работать через Serial Manager! Уже и на НТС (андроид 4.1.1),и на китайском планшете пробовал (в обоих случаях родные прошивки),и все версии Serial Manager перепробовал! Не определяет устройство...

yuriy m 21.01.2017 12:14

Цитата:

Сообщение от DelleTenebre (Сообщение 378244)
И если честно, то Android это костыль на костыле.

Это даже мягко сказано :yes4: Ощущение ,что некоторые разработчики языка или курят ,что-то или :vodka: не просыхая...:big:
Да еще одна проблема в эмуляторе Genymotion , если отключить ардуино ,а потом включить,то уже не работает Serial Manager.

01-21 03:21:44.828 962-962/kg.delletenebre.serialmanager I/EventsReceiver: ****ACTION_USB_DEVICE_DETACHED****
01-21 03:21:44.828 962-962/kg.delletenebre.serialmanager I/CDCSerialDevice: Control Transfer Response: -1
01-21 03:21:44.828 962-962/kg.delletenebre.serialmanager D/UsbDeviceConnectionJNI: close
01-21 03:21:44.958 962-962/kg.delletenebre.serialmanager I/EventsReceiver: ****ACTION_USB_DEVICE_DETACHED****
01-21 03:22:22.246 962-962/kg.delletenebre.serialmanager I/EventsReceiver: ****ACTION_USB_DEVICE_DETACHED****
01-21 03:22:22.374 962-962/kg.delletenebre.serialmanager I/EventsReceiver: ****ACTION_USB_DEVICE_DETACHED****
и еще вот так
01-21 05:06:18.235 1218-1547/kg.delletenebre.serialmanager V/RenderScript: 0xeed69c00 Launching thread(s), CPUs 4
01-21 05:06:22.467 1218-1218/kg.delletenebre.serialmanager I/EventsReceiver: **** ACTION_BOOT_COMPLETED ****
01-21 05:06:27.471 1218-1218/kg.delletenebre.serialmanager D/ConnectionService: onStartCommand
01-21 05:06:27.473 1218-1218/kg.delletenebre.serialmanager D/ConnectionService: USB device not supported
01-21 05:06:27.477 1218-1218/kg.delletenebre.serialmanager D/ConnectionService: USB device not supported
приходится перезапускать эмулятор.

skal 24.01.2017 19:27

Добрый вечер всем гуру по этой теме ! Подскажите что мне сделать чтобы эта штуковина нормально начала работать ? Пытаюсь вывести с ардуино nano показания температуры так вот на телефоне с Андройдом.5.1 работает более менее хотя и перестает подключаться после перевтыкания ардуино в usb , пока не закроешь прогу вручную не хочет работать а на планшете nexus 7 2012 андройд 4.4.4 при вставлении прогу запускает и на этом все.


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

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