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

PCCar.ru - Ваш автомобильный компьютер (http://pccar.ru/index.php)
-   Дополнительные устройства (http://pccar.ru/forumdisplay.php?f=177)
-   -   Виджет для Remote steering wheel control (http://pccar.ru/showthread.php?t=21272)

maxymike 10.09.2015 14:11

У меня в приложении кнопки отзываются четко,дребезг +-1, так что руль в порядке. Но всплывающие сообщения в приложении при нажатии показывают в 80% не клик, а релиз. Холд показывает правильно. Буду пилить скетч.

ВладимирC 10.09.2015 15:11

+-1 - это не дребезг. Могу только предположить, что нажатия слишком короткие (меньше 50мс) и тогда скетч адекватно их воспринимает как релиз и не воспринимает как клик. Попробуйте либо чуть дольше удерживать кнопку при коротком нажатии, либо изменить 50 на меньшую величину if(data<=499 && flag != 1 && millis()-eventTime>=50 && millis()-eventTime<=800)

mr_nixon 10.09.2015 16:07

error

mr_nixon 10.09.2015 16:32

error

maxymike 12.09.2015 02:18

Так и не получилось победить этот сплошной релиз. Задержку прибавлял-убавлял. Убавил до 50 мс холд и смирился с 6-ю кнопками. Все четко

lti1 12.09.2015 23:16

Цитата:

Сообщение от maxymike (Сообщение 337938)
Так и не получилось победить этот сплошной релиз. Задержку прибавлял-убавлял. Убавил до 50 мс холд и смирился с 6-ю кнопками. Все четко

Вы что убавляли, это?
if(data<=499 && flag != 1 && millis()-eventTime>=50 && millis()-eventTime<=800)
{
flag = 2;
if(millis()-eventTime <= 60) data1 = data;
}

maxymike 14.09.2015 14:01

Да,тут

Maniac82 06.10.2015 09:40

Я что-то не совсем понял по какому принципу распознает данное приложение нажатия кнопок!
По появлению в Serial команд click, hold, release со значениями?

Maniac82 10.10.2015 15:04

Цитата:

Сообщение от murano (Сообщение 321209)
1. В ардуино отправляешь данные вида:
Serial.print(" Serial.print (tempa);
Serial.print("#");
Serial.print(tempb);
Serial.println(">");
Можно отправлять данные как у автора RemoteInputsMgr по отдельности, но так, как мне кажется, немного сложнее в их отлавливании таскером. Но в некоторых случаях только такой вариант реализации возможен, например, для передачи данных температуры и реализации резистивных кнопок чтобы отсеивать информацию с кнопок.
2. На планшете в RemoteInputsMgr выбираем USB соединение и устанавливаем скорость обмена как в ардуино.
3. В таскере создаем профиль-событие-система-Intent Received. В поле действие пишем org.kangaroo.rim.action.ACTION_DATA_RECEIVE. Идем назад на вопрос - выбираем или создаем новую задачу, например, arduino.
4. В задаче:
4.1 Нажимаем плюс-переменная-установить переменную:
Имя: %имя (любое имя)
До: %org_kangaroo_rim_device_extra_args
4.2 Плюс-переменная-расчленить переменную:
Имя: имя из п.4.1
Разделитель: разделитель из строки посылаемой ардуино. В нашем случае - #
4.3 Ecли данные из ардуино посылаем по отдельности, то в задаче нужно отслеживать переменную %org_kangaroo_rim_device_extra_command. Аналогично п.4.1 читаем ее. Например, переменной %Com присваиваем ее значение и сравниваем, например, с "tempa". Если %Com=tempa, то выполняем какие-то действия с данными %org_kangaroo_rim_device_extra_args.

Как писал ранее, пофиль будет отрабатывать при каждом приеме данных из ардуино.

5. Открываем Overlas-плюс-название профиля-add-виджет-zooper-виджет нужного размера-назад и нажать на имени созданного виджета, чтобы OFF поменялось на ON. Выходим из программы. На экране тапаем по виджету, открывается редактор. Создаем что нужно. В поле дополнительные параметры выбираем таскер и пишем #Txxx#, Ok. XXX - имя переменной. Выходим из редактора. В overlays отключаем виджет. При необходимости там же в настройках отключаем возможность реакции при нажатии на него.
6. В таскере в ранее созданной задаче.
Плюс-плагин-zooper-конфигурация(карандаш):
ZW переменная: переменная из редактора zooper (XXX)
ZW текст: имя из п.4.1 Если данные из ардуино посылаются все сразу, то к имени нужно дописать порядковый номер передаваемых данных (1,2,...). Их можно посмотреть во вкладке VARS.
Сохранить.
7. Создаем новую задачу, например Overlays on.
Плюс-плагин-overlays-конфигурация(карандаш)-созданный виджет-вкл.
8. Запускаем задачу Overlays on и в виджете должна отображаться информация.

Ничего понять не могу!
Пишу чисто для примера в порт:
serial.println("")
Через каждую секунду.
Программа сама отрбражает что пришло, но Таскер никак не хочет снимать значение в переменную! Хотя интент вроде принимает, так как список переменных мигает каждую секунду, но в значениях сами имена переменных!

TempRead (9)
A1: Установить перем. [ Имя:%Temp До:%org.kangaroo.rim.device.EXTRA_ARGS Вычислить матем. выраж.:Выключить Добавить:Выключить ]

Явно Где-то косячу наверное, но где?

murano 10.10.2015 16:32

Третий пункт сделал?


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

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