‮Сдвиг по фазе (kincajou) wrote,
‮Сдвиг по фазе
kincajou

Да здравствует унификация интерфейсов.

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

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

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

За день-другой написал простенький код, смысл коего сводится к инкапсуляции длинных пакетов внутрь маленьких - причём с учётом того, что порядок прибытия кадров CAN к приёмнику не обязательно совпадает с порядком их отсылки передатчиком (из-за коллизий на шине часть сообщений может и задержаться). Испытал пересылкой полных пакетов с телеметрией, вроде как надо пашет. Полученные данные распихиваются по соответствующим структурам - получается парсинг без парсинга, почти что тот самый RPC (не церковь, а Remote Procedure Call, "удалённый вызов процедур").

Вот и посмотрим, как наша высокая программисткая наука справится с таким протоколом... хехе.
Subscribe

  • Спохватились

    На Байконуре расследуют предполагаемую кражу деталей с дорогостоящими редкоземельными металлами. Она могла произойти на площадке №110, с которой…

  • Ну что.

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

  • Как выглядит хорошо аргументированное мнение?

    Это можно узнать на примере соломонова фотовладьки: Истерикой несгибаемого борца с мировым злом удовлетворён. Кстати, о синонимах

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 9 comments