Навигатор "PocketGis"
http://www.pocketgis.biz/forum/

Триггеры
http://www.pocketgis.biz/forum/viewtopic.php?f=47&t=5257
Страница 4 из 4

Автор:  huser [ Сб, 26 фев 2011 21:18 ]
Заголовок сообщения:  Re: Триггеры

sesh писал(а):
Проще всего (для меня) будет, если командный файл экстендера ДОЛЖЕН находиться в папке с программой.

Да давай пусть уж лучше файл должен будет лежать только в папке с программой, чем на разных устройствах придется править пути.

Автор:  sesh [ Сб, 26 фев 2011 21:19 ]
Заголовок сообщения:  Re: Триггеры

Это мне ближе всего. :)

Автор:  Shadow Wizard [ Пн, 28 фев 2011 12:47 ]
Заголовок сообщения:  Re: Триггеры

Решил опубликовать блок своих триггеров:
Код:
on.PowerOn = commandInDoor 0, commandTriggerReset on.PowerOff
on.PowerOff = commandInDoor 1, commandTriggerReset on.PowerOn

on.RouteDistance, 5 = commandExecuteCMDFile CMD\RouteChanged.ecf

on.Finish, 50 = commandExecuteCMDFile CMD\Finish.ecf

Командные файлы (живут в папке PocketGIS\CMD):

RouteChanged.ecf
Код:
|Zoom_AllRoute|
|Redraw|
commandTriggerReset on.RouteDistance

Finish.ecf
Код:
commandTriggerEnable on.Stop
on.Stop, 5 = commandDisplayMessage |10|1|Приехали?|Да|CMD\Stop.ecf|Нет|CMD\Missed.ecf|
on.NotFinish, 75 = commandExecuteCMDFile CMD\Missed.ecf

Missed.ecf
Код:
commandTriggerReset on.Finish
commandTriggerDisable on.Stop

Stop.ecf
Код:
commandRouteReset
commandInDoor 1


Вечерком проверю... :)

P.S.
Тем, кто будет допиливать под себя: следите за тем, чтобы расстояние в on.Finish было меньше расстояния в on.NotFinish - иначе получим циклическое срабатывание.

Автор:  BK_man [ Ср, 9 мар 2011 15:18 ]
Заголовок сообщения:  Re: Триггеры

Хочу странного - чтобы маршрут скрывался при маленькой скорости и показывался при большой.

Сделал следующее:
lday.ini:
Код:
on.SpeedMore, 20 = commandExecuteCMDFile SpeedMore.ecf
on.SpeedLess, 5 = commandExecuteCMDFile SpeedLess.ecf

SpeedLess.ecf
Код:
commandRoute 0
commandTriggerDisable on.SpeedLess
commandTriggerEnable on.SpeedMore

SpeedMore.ecf:
Код:
commandRoute 1
commandTriggerDisable on.SpeedMore
commandTriggerEnable on.SpeedLess


Работает как-то частично - пропадать-то маршрут пропадает в самом начале, а потом не появляется.

Версия extender - последняя доступная.

Автор:  sesh [ Ср, 9 мар 2011 15:32 ]
Заголовок сообщения:  Re: Триггеры

Тут "особенность реализации команды" commandRoute. Ее бы надо былобы назвать commandRouteHide... :oops:
Короче,
Код:
commandRoute 0 - показывает маршрут
commandRoute 1 - скрывает маршрут

Т.е. все наоборот...

Автор:  BK_man [ Ср, 9 мар 2011 15:43 ]
Заголовок сообщения:  Re: Триггеры

sesh писал(а):
Тут "особенность реализации команды" commandRoute. Ее бы надо былобы назвать commandRouteHide... :oops:
Короче,
Код:
commandRoute 0 - показывает маршрут
commandRoute 1 - скрывает маршрут

Т.е. все наоборот...


Ok. А сама идея правильная - с включением и выключением триггеров скорости?
Цифири местами поменял, вечером буду тестить.

Автор:  sesh [ Ср, 9 мар 2011 15:49 ]
Заголовок сообщения:  Re: Триггеры

Йес! Идея абсолютно верная!
commandTriggerDisable не обязательно делать, поскольку после срабатывания, триггер второй раз не сработает, пока его не "сбросить" командой commandTriggerReset. Т.е. вместо commandTriggerEnable можно написать commandTriggerReset, хотя enable так же допустимо, потому что она еще и reset делает.

Автор:  BK_man [ Пт, 11 мар 2011 1:30 ]
Заголовок сообщения:  Re: extender версии 5

Хочется вот ещё какой триггер (коль их уж можно описывать в сценариях, вызываемых по commandExecuteCMDFile) - on.Timer, N

Трэба вот для чего: при ловле события о существенном пересчете маршрута показывать маршрут через |Zoom_AllRoute|.
Беда в том, что частенько самое интересное закрывается то указателем маневра, то юзерами_онлайн и прочим. Зоны эти висят поверх основного окна и PGIS о них не знает.

Предлагается включать через commandSelectNextSkin настройки без зон и по таймеру включать обратно дефолтный скин через N секунд, которые полагаются водиле для ознакомления с новым маршрутом.

Другие идеи по реализации тоже принимаются к рассмотрению.

P.S. Потестил on.SpeedLess и on.SpeedMore - работают отвратно. Вплоть до того, что ловил несколько раз на обратном. для теста стоял отображение/скрытие маршрута и звуковые файлы. SpeedLess, 25 и SpeedMore, 40.

Автор:  Fiks [ Пт, 11 мар 2011 11:58 ]
Заголовок сообщения:  Re: extender версии 5

BK_man писал(а):
P.S. Потестил on.SpeedLess и on.SpeedMore - работают отвратно. Вплоть до того, что ловил несколько раз на обратном. для теста стоял отображение/скрытие маршрута и звуковые файлы. SpeedLess, 25 и SpeedMore, 40.
Мне показалось, они срабатывают если событие имеет продолжительность секунд 20. Или раз в 20 сек опрос проводится.

Вспомнив обсуждение viewtopic.php?f=12&t=3160 дотестировал то за что взялся - Вот, если кому надо, специально для тех, кто забывает включить режим в помещении (на заправке, в ожидании пассажира и т.п)

дописать в основной ini код
Код:
on.Stop,180 = commandPlaySound alarm, commandDisplayMessage |30|1|Три минуты стоим уже.. включить "в помещении"?|ДА|\PocketGis\CMD\stopy.ecf|нет,это_пробка|\PocketGis\CMD\stopn.ecf|
on.SpeedMore,10 = commandExecuteCMDFile \PocketGIS\CMD\speed10.ecf

То есть при мёртвой пробке или на длинном светофоре через 180 сек получаем запрос "не ушёл ли водитель", при отсутствии ответа автоматически включается "в помещении", при ответе "пробка" больше, до выезда из неё (достижения 10 км/ч), таких вопросов не задаётся.
Время до запроса, естественно, все желающие выберут по вкусу.

stopy.ecf
Код:
commandInDoor 1
commandTriggerEnable on.Stop
commandDisplayMessage |15|0|Не забудьте выключить режим "в помещении" когда поедем|-|\PocketGis\CMD\empty.ecf|-|\PocketGis\CMD\empty.ecf|

stopn.ecf
Код:
commandTriggerEnable on.SpeedMore
commandDisplayMessage |5|0|Ну нет так нет едем дальше|-|\PocketGis\CMD\empty.ecf|-|\PocketGis\CMD\empty.ecf|

speed10.ecf
Код:
commandTriggerEnable on.Stop
commandTriggerDisable on.SpeedMore
commandDisplayMessage |17|0|ПРОБКА КОНЧИЛАСЬ|УРА|\PocketGis\CMD\empty.ecf|ПОЕХАЛИ|\PocketGis\CMD\empty.ecf|

Автор:  sesh [ Пт, 11 мар 2011 12:39 ]
Заголовок сообщения:  Re: Триггеры

Да, действительно, скорость на основании которой срабатывают триггеры является некоторой усредненной и вычисляется на основании 20 измерений, инициированных приходом NMEA данных...
Если нужно, можно сделать триггеры (кроме on.Stop), срабатывающими на основании показаний спидометра ("мгновенная" скорость), но это, как мне кажется не будет правильным...
Еще можно сделать некий внешний настраиваемый параметр вычисления скорости для срабатывания этих триггеров, "вынесенный" в диалог настроек...

Автор:  BK_man [ Пт, 11 мар 2011 13:32 ]
Заголовок сообщения:  Re: Триггеры

sesh писал(а):
Если нужно, можно сделать триггеры (кроме on.Stop), срабатывающими на основании показаний спидометра ("мгновенная" скорость), но это, как мне кажется не будет правильным...

Думаю что настройки - это лишнее. А вот сделать два типа триггеров скорости - мгновенные и усреднённые можно.
Кому какой надо, тот и выберет.

Страница 4 из 4 Часовой пояс: UTC + 3 часа [ Летнее время ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/