пятница, 15 октября 2010 г.

Протокол

Протокол:
На стороне Arduino реализуются функции с помощью языка Wiring. Каждая удаленная функция имеет имя, возвращаемое значение и набор входных параметров.
Задача протокола заключается в создании структуры пакета передачи запроса на удаленный узел.

begin type totalSize size1 block1 size2 sizePar1 par1 … … sizeParN parN crc end
2байта 2 байта 2 байта 1 байт [size1] 1 байт 1 байт [sizePar1] … … 1 байт [sizeParN] 1 байт 2байта


поле begin - определяет начало пакета. Длина поля 2 байта. Значение 0xfefe
поле type - определяет тип пакета. Длина поля 2 байта. Служебное поле. По умолчанию записано значение 0 (возвращаемое значение не требуется). 1 - требуется.
поле type - определяет длину пакета. Длина поля 2 байта.
поле size1 - определяет длину названия вызываемой удаленной функции. Длина поля 1 байт.
поле block1 - определяет название вызываемой удаленной функции. Длина поля [size1] байт.
поле size2 - определяет количество входных параметров вызываемой удаленной функции. Длина поля 1 байт.
поле sizePar1 - необязательное поле. Определяет длину в байтах 1-го входного параметра. Длина поля 1 байт.
поле par1 - необязательное поле. Определяет 1-й входной параметр. Длина поля [sizePar1] байт.
поле sizeParN - необязательное поле. Определяет длину в байтах N-го входного параметра. Длина поля 1 байт.
поле parN - необязательное поле. Определяет N-й входной параметр. Длина поля [sizeParN] байт.
поле crc - Определяет младший байты суммы бит пакета. Длина поля 1 байт.
поле end - определяет конец пакета. Длина поля 2 байта. Значение 0xfdfd

Комментариев нет:

Отправить комментарий