Черкну тут для истории: осилить CAN Kingdom не сумел, вернее бросил
это занятие. Несмотря на то, что сама идея неплохая, ее описание
плохо ложится на мозги. Началось это при попытке освоить эфемерные
сущности: "каталоги", "формы", "списки форм", "списки документов".
И уж совсем добила тема сжатых сообщений. Однако все это навело на дельные мысли по самописному протоколу. Общие идеи пока такие:
На шине имеем хост и модули.
Назначение хоста - сбор всех данных в структуру, синхронизация модулей, хранение прошивок для апдейта модулей.
Могут происходить как запросы данных хостом у модулей, так и модулем у хоста.
Каждый модуль внутри себя имеет несколько виртуальных адресуемых файлов с признаками read-only/write-only/rw и определенного объема (часто большего, чем 1 CAN сообщение). Это т.н. профайл модуля (что отличается от идеи CAN Kingdom, где профайлов у модулей нет, а файлы-папки модулям назначает хост-король)
Файл ro - это данные датчиков
Файл wo - это прошивка, которую хост сливает. Имеет объем порядка 1 записываемой страницы.
Файл rw - это какие-либо настройки/калибровки модуля.
Так вот, сливать прошивку в модуль с хоста не так сложно:
Хост дает задание заткнуться всем модулям, а какому-то задание прошиваться.
Этот модуль запрашивает у хоста постраничные фрагменты прошивки, которые в хосте также могут быть представлены виртуальными ro файлами.
Ну т.е. какая-то прозрачность таки начинает возникать.