ORFA Introspection driver — различия между версиями
=DeaD= (обсуждение | вклад) (→Драйвер интроспекции) |
=DeaD= (обсуждение | вклад) |
||
Строка 1: | Строка 1: | ||
− | + | == Драйвер интроспекции == | |
− | + | Cпециальный драйвер в ядре, который закреплен на регистре 0x00. | |
Типы запросов (регистр, данные…): | Типы запросов (регистр, данные…): | ||
Строка 39: | Строка 39: | ||
|} | |} | ||
− | === | + | ==Примеры== |
+ | |||
+ | ===Определяем сколько драйверов в устройстве=== | ||
+ | |||
+ | Запрос: | ||
+ | L40 | ||
+ | S40 00 00 S41 01 P | ||
+ | |||
+ | Ответ: | ||
+ | L40 | ||
+ | SWAASR06P | ||
+ | |||
+ | Разбор: | ||
+ | * Первый запрос - L40 - установить адрес локального устройства в 0x40. Ответ - L40 - адрес установлен. | ||
+ | * Второй запрос - S40 00 00 - отправим в устройство 0x40 номер регистра 00 и тип запроса 00 - получить количество драйверов, S41 01 - получить ответ 1 байт, P - конец запроса. Ответ: SW - начали запись в устройство, AA - подтверждения записи 2 байт в устройство, SR - начали получать ответ от устройства, 06 - получили 1 байт ответа (количество драйверов), P - конец ответа. | ||
+ | |||
+ | ===Определяем сколько драйверов в устройстве=== | ||
+ | |||
+ | |||
+ | Запрос: | ||
+ | L40 | ||
+ | S40 00 02 S41 06 P | ||
+ | |||
+ | Ответ: | ||
+ | L40 | ||
+ | SWAASR003101001002P |
Версия 16:16, 23 июня 2009
Содержание
Драйвер интроспекции
Cпециальный драйвер в ядре, который закреплен на регистре 0x00.
Типы запросов (регистр, данные…):
00 00
— запросить количество драйверов, нужно прочитать 1 байт00 nn
— запросить информацию о драйвере nn, нужно прочитать 6 байт
Структура информации в ответе на запрос 00 nn
:
Байт | Название | Комментарий |
---|---|---|
0, 1 | UID | Уникальный идентификатор драйвера.
Может быть получен у команды проекта «Open Robotics». Таблица уже выданных идентификаторов. Для личного использования зарезервирован диапазон адресов с первым байтом 0xFF. |
2 | Major Version | Старший номер версии |
3 | Minor Version | Младший номер версии |
4 | Start Register | Номер начального регистра |
5 | Count of registers | Количество регистров
То есть все регистры драйвера это интервал |
Примеры
Определяем сколько драйверов в устройстве
Запрос:
L40 S40 00 00 S41 01 P
Ответ:
L40 SWAASR06P
Разбор:
- Первый запрос - L40 - установить адрес локального устройства в 0x40. Ответ - L40 - адрес установлен.
- Второй запрос - S40 00 00 - отправим в устройство 0x40 номер регистра 00 и тип запроса 00 - получить количество драйверов, S41 01 - получить ответ 1 байт, P - конец запроса. Ответ: SW - начали запись в устройство, AA - подтверждения записи 2 байт в устройство, SR - начали получать ответ от устройства, 06 - получили 1 байт ответа (количество драйверов), P - конец ответа.
Определяем сколько драйверов в устройстве
Запрос:
L40 S40 00 02 S41 06 P
Ответ:
L40 SWAASR003101001002P