main_ubi_sdk v 0.1.3
This is UBI4 documentation
Описание p2p протокола

Ссылка на топик P2P_protocol_group Пакет p2p имеет следующую структуру: p2p_high_level_port_header, после которой следует package_size байт данных.
Пример пакета 0xe0 0x02 0x00 0x01 0x00 0x5e 0x03 0x01

Описание header

  1. bridge | request_type | waiting_answer | port(reserve) - это bitmask из 3 1-битовых флагов и 5 битового резерва
    Обрати внимание, что биты в структуре начниаются с младших, так что port - это port - 5 младших бит, waiting_answer - 6 бит (или 0x20), request_type - 7 бит (или 0x40) и bridge - 8 бит (или 0x80)
    • bridge = 1 - обратится к subdevice напрямую. В этом случае мастер обратится с запросом и вернет ответ.
      Если bridge = 0, то мастер вернет состояние параметра на мастере (которое большую часть времени должно быть актуально)
    • request_type = 1 - работа с параметром. request_type = 0 работа с командами
    • waiting_answer = 1 - на данный запрос ожидается ответ
  2. package_code - , он же Код запроса.
    Если request_type = PARAMETER, то это локальный ID параметра, а если request_type = COMMAND, то это номер комманды.
  3. package_id - (!not used) идентификатор пакета. По нему можно определить, к какому пакету относится ответ.
  4. package_size - Размер данных (data после p2p_high_level_port_header, сам header не считаем)
  5. crc - реализация CRC на языке C
  6. address - адрес девайса, к которому обращаемся
  7. data[package_size] - байты данных


Примеры пакетов

Считываем значение параметра

todo

Записываем значение в параметр

todo

Вычитываем данные о параметрах

todo