Yacht Devices Новости: NMEA 2000 Bridge 1.41: производительность, reset() и исправление ошибки
06.05.2022
Рост производительности, обновлённая документация, программная перезагрузка с примером применения и важное исправление.
Мы выпустили обновлённое руководство пользователя и документ о шифровании пользовательских программ. Теперь прошивка и руководство согласованы, и у нас есть надёжная основа для дальнейшей работы. При этом мы реализовали в Bridge большинство пожеланий пользователей и эффективно задействовали его аппаратные возможности. Сейчас список запланированных задач для этого замечательного устройства пуст. Впрочем, каждый раз после таких слов находятся новые применения и приходят новые пожелания; надеемся, и этот раз не станет исключением.
Производительность Bridge существенно выросла при больших нагрузках, когда требуется обрабатывать или передавать много кадров CAN. Скорость исполнения пользовательского кода прежняя, но вызов программы оптимизирован. Наибольший прирост, в два-три раза, получен там, где все кадры шины проходят через обработчики с минимальным кодом.
Единственная новая функция в этой версии — reset(). Она позволяет перезагрузить устройство по таймеру или из обработчика сообщения. Пользовательский код Bridge не может зависнуть, хотя оператор while() способен создать бесконечный цикл: выполнение обработчика прерывается через три секунды. Однако без программных ухищрений узнать из кода о таком прерывании нельзя.
Например, в начале обработчика можно добавить «X=X+1», а в конце — «X=X-1». Затем в heartbeat() вызывать reset(), если X равно 2 или больше: это означает, что обработчик был принудительно завершён и некоторые переменные могли остаться в неопределённом состоянии.
Мы также исправили серьёзную ошибку версии 1.40 и настоятельно рекомендуем обновиться всем пользователям. Версия 1.41 выпущена в марте и более шести недель без проблем испытывалась несколькими пользователями при высокой нагрузке.
Новая прошивка 1.41 для NMEA 2000 Bridge, руководство пользователя и документ о шифровании доступны на странице загрузок .
