Your comments

АКПП? Насколько я помню, штатная команда на запуск двигателя на механике не работает без программной нейтрали.

Отключение свободных рук с помощью педали тормоза - любопытно. Правда, не сработает, если необходимо оставить двигатель запущенным (сбросит поддержку зажигания). Но, видимо, это опять проблемы МКПП. Но я могу сделать это с помощью педали сцепления. Как раз она у меня доступна при выключенном зажигании, в отличие от тормоза, который подключен по CAN.

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

Иногда нужно оставить асс. Тогда жму до тех пор, пока на кнопке не загорится светодиод, сигнализирующий, что таймаут длительного нажатия прошел. После этого отпускаю кнопку. Выключается только зажигание.

Ничего сложного.

С дверью любопытный вариант. Но я бы сделал выключение асс при постановке на охрану на всякий случай, чтобы нельзя было забыть выключить. Только вот программ не хватает. На самом деле, мне их много на что не хватает, идеи есть и даже программы отдельно от кнопки писал для их реализации.

Я пробовал делать мягкую посадку соответствующими действиями гибкой логики, но у меня работало плохо, через раз. Это было два с половиной года назад, сейчас, возможно, все обстоит иначе. В идеале я бы вообще сделал включение-выключение поддержки зажигания с кнопки, она у меня при запущенном двигателе все равно без педалей ничего не делает. Недавно для этого даже действия появились. Надо будет переделать.

У меня достаточно сложные для понимания алгоритмы работы кнопки. Попробую описать.


Если нажимать кнопку без педалей, то:

- Короткое нажатие включает асс.

- Длинное нажатие включает зажигание.

- Если асс включены, то короткое нажатие их выключит.

- Если зажигание включено, то короткое нажатие выключит его и оставит асс, а длинное выключит и включит зажигание.

Если двигатель запущен, нажатие на кнопку без педалей не делает ничего.

Чтобы запустить двигатель, необходимо выжать сцепление и нажать на кнопку. Если держать кнопку меньше 0.5 секунды, запуск будет в автоматическом режиме (стартер сам перестанет крутиться, когда двигатель запустится, либо через три секунды). Если держать дольше, то стартер будет крутиться, пока нажата кнопка либо через 20 секунд (на случай, если машина заводится плохо). Включать асс и зажигание при этом не нужно, все включится автоматически.


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

Также написаны программы, предотвращающие выключение двигателя, если включена поддержка зажигания. Обычно, когда используется ключ, вы вставляете его, нажимаете тормоз или отпускаете ручник, и поддержка выключается. Без ключа это приведет к остановке двигателя. Чтобы это не происходило, написаны эти программы.

Все программы, которые что-то включают, требуют наличие метки. Выключающие программы метку не требуют.

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

Я привык называть все на английском. Профессиональная привычка. Воспользуйтесь гугл переводчиком.

В сервисном режиме и так будет работать, там факт его включения не проверяется.

С моим алгоритмом работы кнопки уместить не удалось.

start_stop_button.slc

Вижу, многие просят файл. Вот последняя версия, которой пользуюсь полтора года.

Никак не реализовывал. На такой случай у меня в бардачке есть батарейки и зарядка для телефона.

Я тестировал на самой последней прошивке 2.16.1, в которой эта проблема заявлена как решенная. Работало как надо. Попробуйте обновиться. С такими ограничениями одна свободная программа не будет лишней

Хоть одна программа мне погоды не сделает, надо будет попробовать. Спасибо за информацию.

Мне кажется, что не важно, по CAN ли подключена педаль или по аналогу.

Это влияет на техническую возможность применять подход из вебинаров. Этот подход, впрочем, тоже в какой-то степени хак. В итоге приходим к тому, что либо терпим двадцатисекундную задержку, либо хак. Любопытно, есть ли разумное объяснение, для чего эта задержка вообще существует.

Интересно, но так ли необходимо? Просто базовая логика кнопки Start-Stop без плюшек вся умещается в 5 программ, ну плюс одна на экстренное глушение, а у вас 5 программ ушло только на 0-ACC-IGN. Я не критикую, а хочу узнать из вашего опыта, насколько часто пользуетесь включением зажигания без запуска двигателя, т.к. моя кнопка всё никак не доедет с Али - пока пользуюсь ключом, а логику обкатываю переназначением одного из концевиков, чтобы работал в качестве кнопки.

Я никогда до прошлого лета не пользовался автомобилем с кнопкой старт-стоп, поэтому мне было важно, чтобы я мог с помощью кнопки совершать те же переключения режимов, что и ключом. На практике я вообще весьма редко пользуюсь кнопкой, потому что в основном езжу на работу и с работы и круглый год пользуюсь дистанционным запуском. Активно пользуюсь кнопкой только в отпуске и изредка по выходным. Часто пригождалось выключение двигателя без выключения аксессуаров, а также включение и выключение аксессуаров.


Включение зажигания без запуска двигателя может пригодиться, когда потребуется запуск с толкача, например. Также может потребоваться при прошивке ЭБУ. Запуск в ручном режиме может пригодиться, если будут проблемы с запуском двигателя, например, в сильный мороз, либо в случае, если в CAN будет некорректная информация об оборотах двигателя. У меня за год использования кнопки не произошло ни одного подобного случая.

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

Я убрал проверку метки там, где это не требуется в целях безопасности (выключение аксессуаров, зажигания, двигателя, а также программы, которые активируются флагами задержки). Достаточно интересная идея с подключением к статусному выходу, но это дает возможность завести двигатель без метки, просто подав массу на канал кнопки. В отличие от этого, проверку метки в логике уже просто так не обойти. Впрочем, весьма сомнительная уязвимость, но если хватает условий, то я предпочитаю использовать их. В моих новых алгоритмах нет случаев, где условие наличия метки не вмещается в лимит 3 условий на программу.

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

Автоматический и ручной запуск стартера я реализовал похожим способом. Если нажать кнопку кратковременно (менее 700 мс), то стартер крутится в автоматическом режиме, а если держать дольше, то крутится, пока кнопка нажата. На запуск ушло 3 программы.

Я, также как и вы, опытным путем выяснил, что 1000 мс задержки недостаточно для программы сброса поддержки зажигания. Я поставил 1500 мс, полет нормальный. Использовать стандартное действие совсем не хочется из-за большого таймаута. Все еще надеюсь, что когда-нибудь появится возможность переключать поддержку зажигания через гибкую логику без таймаутов. А педаль тормоза у меня подключена по CAN, поэтому либо я вообще отказываюсь от ее использования в алгоритмах, либо грязный хак с отменой выключения зажигания и АСС.

Что интересно, с экстренным выключением зажигания я пришел к противоположным выводам. У меня на практике не получилось сделать это на одной программе, потому что машина глохла по "прервать, если" при отпускании кнопки. Я, когда писал комментарий о том, что можно сделать это за одну программу, ожидал, что "прервать, если" прервет действие во время задержки и не будет выполнено ничего, а на практике выход зажигания выставлялся в пассивное состояние. Впрочем, я за прошедший год не пробовал изменить эту программу, поэтому не исключаю, что что-то поменялось.

Также я переработал программы, отвечающие за переключение режимов 0-ACC-IGN. Вместо двойных нажатий я использую длительные (700 мс). Мне кажется, что стало удобне пользоваться, да и пару программ сэкономил.

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

Также придумал алгоритм постановки на охрану с помощью кнопки багажника. При открытом багажнике удерживаем кнопку в течение 700 мс и захлопываем крышку. Достаточно удобно.

В итоге у меня получилось в идеальном варианте (число - количество программ):

5 - 0-ACC-IGN

4 - Запуск двигателя

2 - Сброс зажигания, чтобы обойти блокировку кручения стартера второй раз за один цикл зажигания (у меня не только механическая блокировка в замке зажигания, но и электронная в ЭБУ)

5 - Остановка двигателя

3 - Мягкая посадка

2 - Контроль АСС

4 - Манипуляции с багажником

4 - Оповещения (о появлении метки в зоне действия аварийкой и о возможности запуска двигателя светодиодом на кнопке запуска)

Итого - 29 программ. Идеально вписался. Но, т.к. я не являюсь авторизованным установщиком, то ограничен 15 программами. Пришлось жертвовать многими наработками. Оставил только самое необходимое:

5 - 0-ACC-IGN

3 - Запуск двигателя

2 - Сброс зажигания

2 - Остановка двигателя

3 - Мягкая посадка

P.S. К сожалению, не могу выложить свой итоговый .slc файл, а мой способ записи программ - весьма специфический и не всем будет понятен.

Рубль, конечно, не помеха, а вот то, что нет гаража, где можно ставить системы, - помеха. Но за идею спасибо.

У меня на установку моей системы на знакомую мне 6 лет машину ушло три недели (считая все исследования и эксперименты). Какого клиента это устроит? :-) Я могу только настраивать готовые установки.

У меня нет гаража. Я в другой отрасли работаю вообще. Чисто для себя и настройки своей машины нельзя получить авторизацию?