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 18.04.2016 22:01

Serial Manager - автоматизация/управление Android с помощью Arduino
 
Serial Manager v1.6.8 (обновлён 11.09.2016)

Serial Manager 2 v2.2.2 (обновлён 18.06.2017)

Уже реализовано / Планы на будущее:
  • Подключение по USB | v1.0
  • Виджеты для отображения данных | v1.2
  • Интеграция с Tasker | v1.2
  • Настройки data bits, stop bits, parity для usb-подключения | v1.3
  • Виджеты для отображения данных - интеграция с Remote Inputs Manager | v1.3
  • Виджеты для отправки данных | v1.4
  • Ручной выбор устройства для подключения | v1.5
  • Bluetooth соединение | v1.5
  • Команда <ключ:значение> - действие отправки команды | v1.6.0
  • Более удобный выбор иконок и цвета для виджетов
  • Категория Run Shell с правами su | v1.6.0
  • Категория Эмуляция клавиатуры [ Root ] | v1.6.0
  • Уведомления поверх остальных окон (для распознанной команды) | v1.6.6
  • Отправление сообщений на контроллер с помощью Tasker, Automate и т.д. | v1.6.0 [ как настроить ]
  • Считывание состояния GPIO [ Root ] | v1.6.2 [ как настроить ]
  • Установка состояния GPIO: low, high, invert [ Root ] | v1.6.3 [ как настроить ]
  • Формулы и доп. функции для виджетов и уведомлений | v1.6.3 [ как настроить ]
  • Работа через WebSocket | v1.6.5 [ как настроить ]
  • Распознавание нажатий клавиш клавиатуры [ Root ] | v1.6.7 [ как настроить ]
  • Работа напрямую через последовательный порт (/dev/tty*) [ Root ] | v1.6.8 [ как настроить ]
  • Работа по I2C (/dev/i2c-*) [ Root ] | v1.6.8 [ как настроить ]

Примеры скетчей для Arduino:
Fake Serial Manager v1.0.0 - некоторые, например, GPS-приёмники или контроллер от YAM1966 могут определяться как Serial-устройство и SerialManger забирает порт на себя. FakeSerialManager просто "забирает" окошко "запускать приложение при подключении устройства". У программы нет Activity и ярлыка.

Памятка При добавлении новой команды <ключ:значение>, поля Ключ и Значение могут быть автоматически заполнены:
  • включите опцию Определить ключ/значение автоматически;
  • нажмите кнопку на внешнем устройстве (чтобы в serial пришла команда например);
  • поля Ключ и Значение автоматически будут заполнены.

Памятка Описание к эмулируемым клавишам клавиатуры можно посмотреть здесь.

Памятка Если в настройках команды поле "Значение" оставить пустым, то команда будет распознана только по ключу (т.е. вторая часть команды ("значение") может быть любая).


https://cloud.githubusercontent.com/...a11287e663.png https://cloud.githubusercontent.com/...cdcd18af6f.png https://cloud.githubusercontent.com/...d2c06fd36d.png https://cloud.githubusercontent.com/...b2f97c5564.png


Примерный алгоритм работы такой:

USB & Bluetooth
При получении информации в формате <ключ:значение> будет исполнена заранее настроенная (на данный ключ) команда. Если ключ не был настроен в программе или была включена опция Сквозная команда, то создаётся Broadcast Intent, который могут получить сторонние программы.

При включенной опции Останавливать сервис при отключении экрана:
  • При блокировке экрана (ACTION_SCREEN_OFF), через 2 секунды и если экран остаётся выключенным, фоновый сервис завершит работу.
  • При разблокировке экрана (ACTION_USER_PRESENT), через 2 секунды и если экран остаётся включенным, программа автоматически подключается к Arduino.

USB
Запуск/остановка сервиса, считывающено информацию с последовательного порта, производится при получении ACTION_USB_DEVICE_ATTACHED / ACTION_USB_DEVICE_DETACHED.

Bluetooth
Сервис запускается/завершает работу при включении/отключении Bluetooth на устройстве (BluetoothAdapter.STATE_ON / BluetoothAdapter.STATE_TURNING_OFF).





Интеграция с Tasker (и ему подобных):

При отсутствии настроенного <ключ:значение> или при включенной опции Сквозная команда, Serial Manager создаёт Broadcast Intent со следующими параметрами:
  • Action: kg.delletenebre.serial.NEW_DATA
  • Extras: key, value

Виджеты отображающие данные

Используя встроенные виджеты Serial Manager Receive Вы сможете, например, выводить данные с подключенных к Arduino датчиков.

https://cloud.githubusercontent.com/...96057d970f.png https://cloud.githubusercontent.com/...4262473a7e.png

По умолчанию в виджетах используется шрифт Font Awesome и Вы можете совместно с текстом использовать иконки. Для вывода иконки необходимо использовать следующий формат \uXXXX, где XXXX код Unicode. Например для вывода иконки Android:

https://cloud.githubusercontent.com/...c12adabc15.png https://cloud.githubusercontent.com/...01dff052e4.png https://cloud.githubusercontent.com/...b13c2219d1.png

Можно использовать любой шрифт, для этого в настройках виджета необходимо включить опцию Использовать свой шрифт и указать путь к ttf файлу шрифта (предварительно скопированного во внутреннюю память устройства).

Для вывода текста по вертикали используется управляющий символ перевода на новую строку \n

https://cloud.githubusercontent.com/...b54d2b137e.png https://cloud.githubusercontent.com/...dc0b681424.png

Виджет отправки данных

Виджет Serial Manager Send позволяет отправлять данные на Arduino.

При включении опции Виджет-переключатель, Вы сможете последоватьльно отправлять разные данные, используя один и тот же виджет. Как пример - переключатель on/off. Демонстрационный скетч sketch_receive_from_android.ino имеет следующую логику: при считывании из последовательного порта on подаётся питание на пин 8, при получении off убирается питание. Подключив светодиод можно получить наглядную индикацию.

Добавьте новый виджет Serial Manager Send и настройте следующим образом:
  • Виджет-переключатель: ☑
  • Отправляемые данные: on|off
  • Текст / Иконка: \uf186|\uf185
  • Цвет шрифта: #9e9e9e|yellow
  • Размер шрифта: 64
Подключите Arduino к устройству Android и нажимайте на виджет. При отправленной команде on виджет будет иметь жёлтое солнце, при отправленной команде off - серый полумесяц.

https://cloud.githubusercontent.com/...dea836a333.png https://cloud.githubusercontent.com/...25edfbc1cd.png https://cloud.githubusercontent.com/...7810e0538d.png

Вы можете настроить сколько угодно переключаемых команд, для этого в поле Отправляемые данные добаляйте команды разделённые вертикальной чертой (pipe): |. Например pie|eclair|honey|marshmallow; данные будут отправляться следующим образом:
  • нажатие 1: pie
  • нажатие 2: eclair
  • нажатие 3: honey
  • нажатие 4: marshmallow
  • нажатие 5: pie
  • нажатие 6: eclair
  • нажатие 7: honey
  • ...
Таким же образом можно настроить поля: Текст / Иконка, Цвет шрифта, Размер шрифта, Цвет фона.

DelleTenebre 18.04.2016 22:21

Вложений: 10
Интеграция c Zooper Widget Pro и Tasker


С Arduino приходят следующие данные (прим. 20, 30, 40 - данные температурного датчика):




Вы хотите их вывести в Zooper Widget Pro.
Для этого в Tasker'е:
1.0 Создаём новый Profile: + > Event > System > Intent Received
1.1 В поле Action пишем kg.delletenebre.serial.NEW_DATA
1.2 Сохраняемся (нажимаем назад). При выборе задачи нажимаем на New Task
2.0 Задаём любое имя новой задачи, например, ZooperTemperatureData
2.1 Нажимаем + > Task > If
2.2 В поля Condition:
%key [Equals] InDoor
Сохраняем
2.3 Нажимаем + > Plugin > Zooper Widget Pro
2.4 Нажимаем на карандаш справа от Configuration
2.5 В поле ZW Переменная пишем indoortemp
В поле ZW Текст пишем %value
Нажимаем Сохранить
Сохраняемся (нажимаем назад)
2.6 Нажимаем + > Task > Else
2.7 Нажимаем + напротив If
2.8 В появившиеся поля пишем
%key [Equals] OutDoor
Сохраняем
2.9 Повторяем пункты 2.3, 2.4
2.10 В поле ZW Переменная пишем outdoortemp
В поле ZW Текст пишем %value
Нажимаем Сохранить
Сохраняемся (нажимаем назад)
2.11 Повторяем 2.6 - 2.10 для . Соответственно в условии: %key [Equals] Engine
В ZW Переменная пишем enginetemp
2.12 Нажимаем + > Task > End If
2.13 Нажимаем назад до тех пор пока не выйдем на главный экран Android'а

3.0 Добавляем виджет Zooper желаемого размера.
3.1 Выбираем желаемый вид (пустой или встроенный шаблон)
3.2 Заходим в Макет
3.3 Вверху нажимаем (+) ADD
3.4 Выбираем модуль Текст или Текст с форматированием
3.5 В категории Текст выбираем пункт Отредактировать вручную
3.6 В верхнем (почти неприметном) поле пишем #Tindoortemp#
Сохраняемся (кнопка OK)

3.? Для остальных аналогично с пункта 3.3, можно добавить в новые виджеты или для этого же виджета создать два модуля Текст или Текст с форматированием. Соответственно в пункте 3.6 будут значения #Toutdoortemp# и #Tenginetemp#

djdonatas 20.04.2016 23:58

Круто! А есть (будет) какой-то вариант получить данные с двух источников (устройств), например с двух ардуин или с V4 контроллера Юры +по блютусу (когда будет) с ардуины?

DelleTenebre 21.04.2016 09:29

Цитата:

Сообщение от djdonatas (Сообщение 358932)
вариант получить данные с двух источников

Хорошая идея, попробую реализовать USB + Bluetooth :)

ali_vlad 24.04.2016 10:12

У меня такое предложение: добавить реакции на команду в ком-порте и добавить в "Категория" "Управление питанием" - "Сон" и "Выключение".
Ещё хотелка: перехват и отслеживание уровня яркости с отправкой команд в ком-порт.

kotya 24.04.2016 11:49

подскажите,есть подобное на windows?

DelleTenebre 24.04.2016 19:42

Выпуск 1.5 - многое изменил/оптимизировал, надеюсь к лучшему :) Есть небольшой минус, при обновлении скорее всего удалятся настроенные виджеты, а их настройки останутся мусором лежать в папке программы. Поэтому лучше или их удалить предварительно, или удалить программу и накатить по новой.

djdonatas, добавил возможность соединения по USB и Bluetooth одновременно.

ali_vlad, Сон теперь должен работать по "Эмуляция клавиатуры" > POWER. Выключение пока не реализовано, есть два варианта (c root'ом и без) буду пробовать (оставлю тут чтобы не потерять):
Код:

Intent i = new Intent("android.intent.action.ACTION_REQUEST_SHUTDOWN");
i.putExtra("android.intent.extra.KEY_CONFIRM", true);
startActivity(i);

Код:

Runtime.getRuntime().exec(new String[]{ "su", "-c", "reboot -p" });

Цитата:

Сообщение от ali_vlad
Ещё хотелка: перехват и отслеживание уровня яркости с отправкой команд в ком-порт.

Уточните, пожалуйста, Вы хотите отправлять уровень яркости с android'a к arduino или от arduino к android.

kotya, для Windows подобного подсказать не смогу, никогда не встречал.

ali_vlad 24.04.2016 21:35

По поводу управления питанием: некоторые андроид-боксы не реагируют на клавиатурные кнопки "сон" и "power", только физической кнопкой на самой плате андроида.
По поводу перехвата яркости. В андроид-боксах есть бегунок изменения яркости, как в телефонах, но он естественно ничего не меняет, а менять яркость только на внешнем контроллере с пульта. Так вот суть моего предложения в следующем: прога при загрузке считыаает уровень яркости в системе и отсылает команду в ком-порт. Далее прога отслеживает состояние уровня яркости, и, если он изменяется, то отсылает соответствующую команду в ком-порт. На том конце ардуина или контроллер YAM уже обрабатывает поступившую команду, ну и занимается её выполнением. Как-то так...

djdonatas 24.04.2016 21:37

Воу воу! Очень круто, я б купил! Когда, конечно дойдут руки настроить все =)
Может тогда к "протоколам" и например http добавить с простеньким api?
Тогда, по идеи, вообще количество и тип "источников" будет неограниченно. Да и те-же, допустим, 5 ардуин смогут скидывать свою инфу на шестую, которая будет сервером и будет отдавать уже оформленные данные. Сервер может и локальным быть и внешним.
зы: а сотрудничество с Юрой и его v4 контроллером продолжается? будет реализована отправка данных с виджета в контроллер и в шину?

oleg707 24.04.2016 21:57

Цитата:

Сообщение от ali_vlad (Сообщение 359133)
По поводу управления питанием: некоторые андроид-боксы не реагируют на клавиатурные кнопки "сон" и "power", только физической кнопкой на самой плате андроида.
По поводу перехвата яркости. В андроид-боксах есть бегунок изменения яркости, как в телефонах, но он естественно ничего не меняет, а менять яркость только на внешнем контроллере с пульта. Так вот суть моего предложения в следующем: прога при загрузке считыаает уровень яркости в системе и отсылает команду в ком-порт. Далее прога отслеживает состояние уровня яркости, и, если он изменяется, то отсылает соответствующую команду в ком-порт. На том конце ардуина или контроллер YAM уже обрабатывает поступившую команду, ну и занимается её выполнением. Как-то так...

по поводу яркости не проще ли датчик освещенности в контроллере поставить? тупо +1 нога

ali_vlad 24.04.2016 22:24

Датчик освещенности, конечно, удобная фича, но...
Не, конечно, можно поставить датчик освещенности, настроить трансляцию ик-команд с одного приемника на народный контроллер, андроид-бокс, усилок и еще на что-нибудь... Но поймите меня правильно, мне хочется регулировать яркость с экрана. Не у всех же уксус в качестве ГУ. Если это сложно, то вопросов нет.

DelleTenebre 24.04.2016 23:06

Цитата:

Сообщение от djdonatas
Может тогда к "протоколам" и например http добавить с простеньким api?

Вполне себе хорошая идея, можно и добавить, приму на заметку, но в скором времени не обещаю реализовать :)

Цитата:

Сообщение от djdonatas
а сотрудничество с Юрой и его v4 контроллером продолжается? будет реализована отправка данных с виджета в контроллер и в шину?

Всё что просили, я сделал. Приём работает. На счёт отправки разговора не было, но он должен работать. Если не ошибаюсь, ali_vlad тестировал, была проблема со скоростью отправки/обработки. У меня контроллера нет, и тестировать, к сожалению, не могу.

ali_vlad, с яркостью проблем нет, всё стало понятно. Единственное, уточните формат: типа brightness:255 или или ещё как? Хоть b59.

Со сном и выключением не очень понятно. Про выключение я правильно понял? Так же (программно) надо и в сон уводить? Или нужно отправлять команду в порт, а дальше какой-либо контроллер физически будет отключать?

ali_vlad 24.04.2016 23:36

Цитата:

Сообщение от DelleTenebre (Сообщение 359140)
Вполне себе хорошая идея, можно и добавить, приму на заметку, но в скором времени не обещаю реализовать :)


Всё что просили, я сделал. Приём работает. На счёт отправки разговора не было, но он должен работать. Если не ошибаюсь, ali_vlad тестировал, была проблема со скоростью отправки/обработки. У меня контроллера нет, и тестировать, к сожалению, не могу.

ali_vlad, с яркостью проблем нет, всё стало понятно. Единственное, уточните формат: типа brightness:255 или или ещё как? Хоть b59.

Со сном и выключением не очень понятно. Про выключение я правильно понял? Так же (программно) надо и в сон уводить? Или нужно отправлять команду в порт, а дальше какой-либо контроллер физически будет отключать?

С яркостью, скорее всего, настраиваемая команда для отправки в ком-порт, типа той, что Вы указали. А с питанием - надо пинками загонять аппарат в сон и отключку :big: Наверно это решается программно.
Вот допилю рамку под монитор и займусь тестированием в плотную.

vasilij_c 26.04.2016 22:46

Цитата:

Сообщение от ali_vlad (Сообщение 359139)
... Но поймите меня правильно, мне хочется регулировать яркость с экрана. ..

странное желание. я наоборот, прицепил в ардуинке фоторезистор - чтобы в экран пальцами не тыкать. но, у каждого свои задумки...
Цитата:

Сообщение от ali_vlad (Сообщение 359139)
...
а менять яркость только на внешнем контроллере с пульта.. ..

а таскером яркость меняется?

DelleTenebre из пожеланий: добавить в меню "категоря" Run Shell с правами su

MPPM 27.04.2016 00:10

Здравствуйте уважаемый DelleTenebre, огромное спасибо за такое приложение, просто супер.Не переставайте его развивать очень актуально. У меня вопросик:

Цитата:

Добавьте новый виджет Serial Manager Send и настройте следующим образом:
Виджет-переключатель: ☑
Отправляемые данные: on|off
Текст / Иконка: \uf186|\uf185
Цвет шрифта: #9e9e9e|yellow
Размер шрифта: 64
Как я понял uf186 это Unicod, искал в Google но так и не нашел таблицу, а которую нашел та не совпадает с вашими символами. Я так понимаю в Android и Windows они разные. Вы не могли бы подсказать где её взять?
А вообще пожелание к проекту, что бы можно было выбирать любую пользовательскую картинку с фоном или без.
Еще раз огромное спасибо за приложение.

yuriy m 27.04.2016 00:17

Класс . нормальная работа ! Это то ,что нужно... Но почему с ардуино леонардо не работает... Может я туплю (ночь на дворе)...:blush: С Remote Inputs Manager / Remote steering wheel control работает. А с Вашей тишина, хотя в настройках USB видит :sad2: Команды идут в формате
Serial.print(" Serial.print(data1);
Serial.print(">");
Что не так делаю ?
И заодно вопросик ,на сколько сложно сделать поддержку 2 ардуин по USB одновременно ?

MPPM 27.04.2016 00:24

Цитата:

Класс . нормальная работа ! Это то ,что нужно... Но почему с ардуино леонардо не работает... Может я туплю (ночь на дворе)... С Remote Inputs Manager / Remote steering wheel control работает. А с Вашей тишина, хотя в настройках USB видит Команды идут в формате
Serial.print(" Serial.print(data1);
Serial.print(">");
Что не так делаю ?
Надо удалить Remote Inputs Manager или убрать из автозагрузки. Затем вынуть и вставить Ардуино, в настройках для леонардо поставить обязательно галку DTR.

Serg-Zmuh 27.04.2016 08:56

то что надо RIM удалить это-то понятно ....
тут еще дело в другом...
оно у меня тоже не работает с Leonardo :( ,возможно дело в скетче ,там надо по-другому выводить ,я не шарю...
проблема появилась в версиях 1.4 и 1.5 ,а до этого все норм было.
В 1.2 версии все выводит норм на Лео, попробуй пока использовать версии 1.2 или 1.3
С DelleTenebre я отписываюсь о тестировании его версий ,он в курсе .... :)
я думаю он допилит сие творение ....
а прога действительно классная ,появилась в нужное время ! Молодца ! -что тут еще скажешь )

DelleTenebre 27.04.2016 09:41

Цитата:

Сообщение от MPPM
Как я понял uf186 это Unicod, искал в Google но так и не нашел таблицу, а которую нашел та не совпадает с вашими символами. Я так понимаю в Android и Windows они разные. Вы не могли бы подсказать где её взять?

Цитата:

Сообщение от DelleTenebre
По умолчанию в виджетах используется шрифт Font Awesome и Вы можете совместно с текстом использовать иконки. Для вывода иконки необходимо использовать следующий формат \uXXXX, где XXXX код Unicode

Таблицу можно посмотреть тут кликая на нужную иконку Вы увидите:

https://cloud.githubusercontent.com/...c12adabc15.png


Цитата:

А вообще пожелание к проекту, что бы можно было выбирать любую пользовательскую картинку с фоном или без.
Буду иметь в виду.
--------

Цитата:

Сообщение от yuriy m
С Remote Inputs Manager / Remote steering wheel control работает. А с Вашей тишина, хотя в настройках USB видит

Надеюсь Вы не выбрали "Запускать по умолчанию" RIM при подключении устройства, а то SerialManager не получит прав на доступ к arduino. Либо
Цитата:

Сообщение от MPPM
Надо удалить Remote Inputs Manager или убрать из автозагрузки.

--------

У меня так же возникла проблема при выводе данных с температурного датчика, было в скетче как и у Вас примерно:
Код:

Serial.print(" Serial.print(temp,1);
Serial.print(">");

SerialManager получал данные в виде:
35.3>
Т.е. две разные строчки, которые не являются командой для распознавания. Затем я изменил в скетче:
Код:

Serial.print("");
И всё заработало как надо. В принципе, для решения этой проблемы есть один очень не элегантный вариант, который был в версиях 1.2 и 1.3, т.е. считываем строку, если она не является командой (например "") и пытаемся распознать. Скорее всего добавлю этот вариант как отключаемую опцию.

Serg-Zmuh, у Вас вообще странные вещи происходят:
Код:

04-26 12:27:23.955 D/Receive USB(8237): 04-26 12:27:23.958 D/Receive USB(8237): ltag
04-26 12:27:23.963 D/Receive USB(8237): e:21
04-26 12:27:23.967 D/Receive USB(8237): .11>
04-26 12:27:24.068 D/Receive USB(8237): 04-26 12:27:24.085 D/Receive USB(8237): Door
04-26 12:27:24.087 D/Receive USB(8237): :0>

Мне кажется тут проблема в скорости передачи данных (либо Android слишком быстро считывает, либо Arduino слишком медленно отдаёт), хотя хз, буду дальше экспериментировать.

--------

Цитата:

Сообщение от yuriy m
на сколько сложно сделать поддержку 2 ардуин по USB одновременно ?

Теоретически возможно, но для меня, пока что, сложно. В отдалённой перспективе попробую добавить, но обещать не буду :)

MPPM 27.04.2016 09:46

Не знаю как выводить данные - не пробовал, но кнопки версия 1.5 от Леонардо отлавливает на ура. А выводить данные вроде как надо ставить задержку в скетче не менее 1 сек.

MPPM 27.04.2016 09:55

DelleTenebre огромное спасибо за таблицу. А на счет передачи данных, сегодня проверю.

YAM1966 27.04.2016 10:03

Как мне кажется лучше сделать окончанием команды cr или lf или символ '>'. Пока не получено, накапливать просто в буфер. А по окончании уже анализировать...
Тогда и не будет проблем с разрывом. А разрывы будут всегда, ведь передача по USB пакетная.

Serg-Zmuh 27.04.2016 10:03

Цитата:

Сообщение от MPPM (Сообщение 359274)
Не знаю как выводить данные - не пробова, но кнопки версия 1.5 от Леонардо отлавливает на ура. А выводить данные вроде как надо ставить задержку в скетчи не менее 1 сек.

хммм... думаешь задержка ?
попробую седня в скетче задержки увеличить

P.S. видите ли такое дело ...я понимаю что тяжело универсальную прогу сделать,
с учетом что еще и прошивки у всех разные ...
вот у мня в машине щаз 4.4 кастом от РАСман с Leonardo,на столе обкатываю 5.1 ,тоже кастом ,но с репликой UNO r3 - это чтоб потом в машину перенести :rolleyes2:

Serg-Zmuh 27.04.2016 10:17

Цитата:

Сообщение от YAM1966 (Сообщение 359278)
Как мне кажется лучше сделать окончанием команды cr или lf. Пока не получено, накапливать просто в буфер. А по окончании уже анализировать...
Тогда и не будет проблем с разрывом. А разрывы будут всегда, ведь передача по USB пакетная.

кстати да, я на будущее планирую вот такой датчик на измерение boost'a турбы через ардуино выводить ...
а там скорость считывания думаю будет играть главную роль :blush:

MPPM 27.04.2016 11:34

Только что пробовал прием данных. Принимал от кнопок.Результат если нажимаеш 1 раз в секунду то отлавливает, если чаще то нет. Вывод - задержка в скетче. Для буста конечно многовато.Надо просить у DelleTenebre что бы исправил.

DelleTenebre 27.04.2016 11:37

Цитата:

Сообщение от YAM1966
Как мне кажется лучше сделать окончанием команды cr или lf. Пока не получено, накапливать просто в буфер. А по окончании уже анализировать...

Так и попробую сделать.

yuriy m 27.04.2016 11:45

Я ж говорю утро вечера мудренее :rolleyes2: Подключилось.

Цитата:

Сообщение от DelleTenebre (Сообщение 359273)
Теоретически возможно, но для меня, пока что, сложно. В отдалённой перспективе попробую добавить, но обещать не буду :)

Если получится,это будет ООчень хорошо , за ранние спасибо.
Теперь по тестам... при выходе со сна и передергивания OTG почти всегда пишет "USB device not supported " Нужно пару раз передернуть... Как победить ?

Еще заметил периодически отваливается связь и всплывает сообщение "USB device not supported "

vasilij_c 27.04.2016 12:17

Цитата:

Сообщение от DelleTenebre (Сообщение 359273)
Код:

Serial.print(" Serial.print(temp,1);
Serial.print(">");

SerialManager получал данные в виде:
35.3>
Т.е. две разные строчки, которые не являются командой для распознавания. Затем я изменил в скетче:
Код:

Serial.print("");
..

у меня такая конструкция нормально работает:
Код:

mySerial.print("   mySerial.print(i++);
  mySerial.println(">");

скорость 9600. может дело в println?

Serg-Zmuh 27.04.2016 14:13

DelleTenebre

У мня все завелось на Leonardo :tease:
проверил на обоих уксусах и наверсии 4.4 и 5.1 !
залил последний твой скетч с поправками и гуд
а вот на UNO r3 пока что индейская народная изба (фигвам) :whistle:
видать там точно что-то со скоростью передачи данных не так....

P.S. буду тестить ездить ,так как отвалы иногда происходят ,приходится отг передергивать

MPPM 27.04.2016 18:26

+1 Тоже где-то через часов 10 отвалился. Переставил в настройках USB-устройство для подключения с автоматического на Arduino. Буду дальше тестить на отвалы.

yuriy m 27.04.2016 21:08

Цитата:

Сообщение от MPPM (Сообщение 359322)
+1 Тоже где-то через часов 10 отвалился. Переставил в настройках USB-устройство для подключения с автоматического на Arduino. Буду дальше тестить на отвалы.

Тут еще косяк в андроиде есть... Если в хабе несколько устройств ,то периодически меняются адреса ... Я пока сильно не разбирался ,но не так как в винде или даже монтирование в линуксе. Как то здесь все урезано:sad2: Допустим втыкаем флешку ,определяется как USB2002 если просто флешку передернуть ,то уже USB2003 и т.д. пока OTG не передернуть , а если в в хабе много чего стоит ,такая херня начинается... Здесь по ходу едро ковырять надо...:blush:

DelleTenebre 28.04.2016 14:05

SerialManager-1.6-beta-1 в настройках можно включить пункт "Распознавать команду по новой строке" (отдельно для BT и USB). Это реализация идеи YAM1966. Если заработает - благодарности ему. Кому не лень - тестируем :)

Serg-Zmuh 28.04.2016 15:03

Цитата:

Сообщение от DelleTenebre (Сообщение 359371)
SerialManager-1.6-beta-1 в настройках можно включить пункт "Распознавать команду по новой строке" (отдельно для BT и USB). Это реализация идеи YAM1966. Если заработает - благодарности ему. Кому не лень - тестируем :)

Во! нормуль - затестим :pleasantry:

MPPM 28.04.2016 15:52

Цитата:

Сообщение от MPPM Посмотреть сообщение
+1 Тоже где-то через часов 10 отвалился. Переставил в настройках USB-устройство для подключения с автоматического на Arduino. Буду дальше тестить на отвалы.
Такая же петрушка, примерно через 10 часов отвалился, пришлось передергивать хаб. Уважаемый DelleTenebre возможно ли как-то решить эту проблему???

P. S. Не знаю, возможно поможет поковырять код организации USB в приложение PPP Widget - это приложение для 3G свистка подключаемого к планшету у которого нет 3G. Сам пользуюсь, стабильная работа в хабе без отвалов.

DelleTenebre 28.04.2016 17:09

Цитата:

где-то через часов 10 отвалился
Знать бы в чём природа этого явления... В машине тоже столкнулся с этой проблемой (Nexus 7 2013 (android 5.1.1)), дома никак не получается воспроизвести :( Есть какая-либо закономерность? Просто оставлял включёным (через хаб) в Nexus 7 2012 (android 6.0) - нормально всё за ~14 часов.

PPP Widget - код обфусцирован.

P.S. Если кто столкнётся с отваливанием и последующем сообщением "USB device not supported", пожалуйста, попробуйте остановить SerialManager и запустить опять. Если подключится - значит глюк программный.

MPPM 28.04.2016 17:33

OK!!!

ali_vlad 28.04.2016 20:04

Эмуляция нажатия POWER это выключение?

DelleTenebre 28.04.2016 21:33

Цитата:

Сообщение от ali_vlad
Эмуляция нажатия POWER это выключение?

Эмуляция короткого нажатия на кнопку питания, обычно сон/выход из сна.

ali_vlad 28.04.2016 22:24

Количество эмулируемых клавиш/действий приятно удивило, только не всё понял :)
В одной программе видел возможность запускать приложения не с главного экрана, а с другого, имеющегося. Если не ошибаюсь, запуск activity приложения.
Есть ли возможность реализации этого? Если нет, то никто не обидится. :)

DelleTenebre 28.04.2016 23:27

Тут к некоторым клавишам есть описание на английском

Если не ошибаюсь, я видел запуск Activity у Secure Settings (плагин к Tasker) или у самого таскера.


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

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