Re: Логические уровни взаимодействия с устройством. Терминология.
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 12.02.13 06:11
Оценка: 9 (2) +1
Здравствуйте, Аноним, Вы писали:

А>

А>Уровень 1) Сырые массивы байт, принятые (посланные) через порт. Каждый массив — это данные, принятые одним вызовом функции read().

Просто какие-то порции байт с потока.

А>Эти массивы представляют собой последовательность сообщений. Сообщение начинается символом STX (02h), заканчивается символом ETX(03h). Внутри сообщения лежат данные, возможно, разбавленные escape-символами DLE (10h), и, возможно, защищенные CRC.


Вот то, что Вы тут назвали сообщениями — это кадры (frames). В OSI это уровень 2.

А после того, как снять с них всякие STX, ETX, CRC и эскейпинги с помощью DLE, то, что останется — пакеты (packets).

А>Уровень 2) Сообщения. В сущности, это тоже массивы байт, но уже очищенные от мусора и сгруппированные.


Насколько я понял описание, это уже пакеты.

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

А>Итак, разбираем каждое сообщение уровня 2, выделяем идентификатор команды, параметры. Многобайтные параметры переворачиваем, если нужно, в соответствие с endianness. И складываем все это в структуры данных, специфичные для каждой команды. Получаем

А>Уровень 3) Команды. Различные структуры данных, содержащие осмысленные значения.


Это уже ваша внутренняя сущность, её можно назвать как хочется. Сообщения, команды, события, и так далее.
Но удобнее всего — сообщения (messages).
The God is real, unless declared integer.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.