Алгоритмы Easy Logic. Пишем правильно.
Предыстория создания алгоритма энергосбережения
Во время затянувшихся новогодних каникул лаборатория LocMe.ru погрузилась в технологию Easy Logic и создала универсальный алгоритм энергосбережения для спецтехники, которую перевозят к месту работы тралом. Это могут быть различные дорожные машины, фрезы, экскаваторы, компрессоры, сваебойные машины, катки и асфальтоукладчики.
Алгоритм получился универсальным и может быть применен практически на любой технике.
К созданию алгоритма нас подтолкнул целый парк дорожных фрез нашего клиента, щедро оснащенный нами же телематическим комплексом мониторинга, охраны и видеонаблюдения. И весь этот комплекс в обычном режиме эксплуатации потребляет ни много, ни мало, а целых 0,5 Ампера аккумуляторного электричества. Это, в свою очередь, приводит к критическому разряду аккумулятора дорожной фрезы при длительных стоянках и перерывах в работе.
Таким образом, перед нами встала задача сократить энергопотребление комплекса оборудования без снижения функциональности.
Алгоритм энергосбережения должен был погружать комплекс в глубокий сон и пробуждать его по нескольким различным событиям. Основное событие выхода из режима – включение зажигания. Другие события связаны с охранными функциями, и описывать их в нашей статье мы не будем.
В начале статьи мы упомянули, что алгоритм создавался специально для спецтехники, которую перевозят к месту работы тралом. Наши фрезы как раз из таких. Во время транспортировки, например, из Москвы в Краснодар, наш объект мониторинга должен “выходить в эфир” и передавать свои координаты один раз в час, если скорость движения больше 3 км/ч, и один раз в три часа, если скорость движения менее 3 км/ч. Дополнительно к запрашиваемому функционалу мы предусмотрели различные команды для управления режимом энергосбережения и режимом сервиса.
По вопросу использования алгоритма энергосбережения для спецтехники обращайтесь в лабораторию LocMe.ru по этой ссылке.
Правильно используем возможности Easy Logic
Теперь расскажем и покажем вам некоторые особенности написания алгоритмов, которыми не следует пренебрегать при решении подобных задач.
Обычно после курса Easy Logic Basic будущие профессионалы и эксперты Easy Logic довольно прямолинейно решают большинство задач. В качестве примера приведем простую и понятную схему задержки выполнения того или иного действия.
Довольно просто и понятно. Однако этот алгоритм невозможно прервать. Даже если существует где-то на параллельной вкладке другая ветвь алгоритма, которая отслеживает состояние входа “Зажигание” и по появлению логической единицы запускает GNSS модуль и модем GSM, то эта другая ветка все равно не сможет прервать выполнение простого алгоритма на рисунке 1.
Такая ситуация приведет к тому, что, когда первая часть алгоритма отработает все задержки ( 1 час + 5 минут ), она все равно выключит навигационный модуль и модем вне зависимости от состояния зажигания. Следовательно, необходимо сделать так, чтобы алгоритм на первом рисунке мог прерываться. Для этого нам необходимо отказаться от использования длинных задержек и заменить их на “счетчики”. К тому же бесконтрольное использование длинных задержек в алгоритмах Easy Logic сильно нагружает микроконтроллер навигационного терминала Galileosky, а это плохо сказывается на его работе. Пример реализации задержки на один час в виде счетчика на рисунке 3.
В любой момент работу счетчика можно прервать включением зажигания. В этом случае не забудьте обнулить счетчик посредством инициализации переменной counter=0 (на рисунке 3 этого нет).
Доработав указанную схему другими счетчиками и триггерами, вы сможете создать свой собственный алгоритм энергосбережения.
Если вам необходима квалифицированная разработка алгоритмов Easy Logic для ваших проектов, пожалуйста, обращайтесь в лабораторию LocMe.ru по этой ссылке.