blindman писал(а):Или я невнятно изъясняюсь, или кто-то по диагонали читаетЯ именно это и имею в виду - супер-драйвер возвращает только информацию, которую драйвера сообщили ядру во время своей регистрации.
Может быть и по диагонали
![Pardon :pardon:](http://roboforum.ru/images/smilies/pardon.gif)
![Wink ;)](http://roboforum.ru/images/smilies/wink.gif)
![]() |
roboforum.ruТехнический форум по робототехнике. |
|
|
blindman писал(а):Или я невнятно изъясняюсь, или кто-то по диагонали читаетЯ именно это и имею в виду - супер-драйвер возвращает только информацию, которую драйвера сообщили ядру во время своей регистрации.
Реклама | ||||
|
|
|||
![]() |
blindman писал(а):У него только та информация, которую драйвера ему сообщили, через строго определенные программные интерфейсы. Эта информация имеет смысл для любого драйвера. А раз интерфейсы определены - значит можно говорить и об определенной структуре информации. Супер-драйвер может дать только ту информацию, которая есть у ядра, и которой должен обладать клиент, чтобы достучаться до драйвера. Ядро знает только код (или название) драйвера, количество и номера регистров. Соответственно супер-драйвер может выдать только эту информацию. Все прочее - через сам драйвер.
import pyor
import serial
import sys
from pyor.testio import LogIO
def main():
ser = serial.Serial(sys.argv[1])
log = LogIO(ser)
req = pyor.Request(log)
intro = pyor.Introspection(req)
req.localhost = 0x40
intro.load_info()
print intro.reg
if __name__ == '__main__':
main()
vovan@vovan-laptop:/tmp$ python t.py /dev/rfcomm0
< L40\n
> L40\r
> \n
< S400000
< S4101
< P\n
> # > cmd_start(0x40, 0)\r
> \n
> # > cmd_txc(0x00)\r
> \n
> # > cmd_txc(0x00)\r
> \n
> # > cmd_start(0x41, 1)\r
> \n
> # > cmd_rxc(0x41, 0)\r
> \n
> # > cmd_stop()\r
> \n
> SWAASR04P\r
> \n
< S400001
< S4106
< P\n
> # > cmd_start(0x40, 0)\r
> \n
> # > cmd_txc(0x00)\r
> \n
> # > cmd_txc(0x01)\r
> \n
> # > cmd_start(0x41, 1)\r
> \n
> # > cmd_rxc(0x41, 1)\r
> \n
> # > cmd_rxc(0x01, 1)\r
> \n
> # > cmd_rxc(0x00, 1)\r
> \n
> # > cmd_rxc(0x01, 1)\r
> \n
> # > cmd_rxc(0x00, 1)\r
> \n
> # > cmd_rxc(0x60, 0)\r
> \n
> # > cmd_stop()\r
> \n
> SWAASR010001006004P\r
> \n
< S400002
< S4106
< P\n
> # > cmd_start(0x40, 0)\r
> \n
> # > cmd_txc(0x00)\r
> \n
> # > cmd_txc(0x02)\r
> \n
> # > cmd_start(0x41, 1)\r
> \n
> # > cmd_rxc(0x41, 1)\r
> \n
> # > cmd_rxc(0x10, 1)\r
> \n
> # > cmd_rxc(0x00, 1)\r
> \n
> # > cmd_rxc(0x01, 1)\r
> \n
> # > cmd_rxc(0x00, 1)\r
> \n
> # > cmd_rxc(0x51, 0)\r
> \n
> # > cmd_stop()\r
> \n
> SWAASR100001005102P\r
> \n
< S400003
< S4106
< P\n
> # > cmd_start(0x40, 0)\r
> \n
> # > cmd_txc(0x00)\r
> \n
> # > cmd_txc(0x03)\r
> \n
> # > cmd_start(0x41, 1)\r
> \n
> # > cmd_rxc(0x41, 1)\r
> \n
> # > cmd_rxc(0x00, 1)\r
> \n
> # > cmd_rxc(0x10, 1)\r
> \n
> # > cmd_rxc(0x01, 1)\r
> \n
> # > cmd_rxc(0x00, 1)\r
> \n
> # > cmd_rxc(0x44, 0)\r
> \n
> # > cmd_stop()\r
> \n
> SWAASR001001004408P\r
> \n
< S400004
< S4106
< P\n
> # > cmd_start(0x40, 0)\r
> \n
> # > cmd_txc(0x00)\r
> \n
> # > cmd_txc(0x04)\r
> \n
> # > cmd_start(0x41, 1)\r
> \n
> # > cmd_rxc(0x41, 1)\r
> \n
> # > cmd_rxc(0x00, 1)\r
> \n
> # > cmd_rxc(0x00, 1)\r
> \n
> # > cmd_rxc(0x01, 1)\r
> \n
> # > cmd_rxc(0x00, 1)\r
> \n
> # > cmd_rxc(0x00, 0)\r
> \n
> # > cmd_stop()\r
> \n
> SWAASR000001000001P\r
> \n
{'DIR2': 99, 'DIR1': 98, 'PORTD': 71, 'PORTB': 69, 'PORTC': 70, 'PORTA': 68, 'DDRD': 75, 'DDRB': 73, 'DDRC': 74, 'DDRA': 72, 'PWM1': 96, 'PWM2': 97}
vovan@vovan-laptop:/tmp$
Реклама | ||||
|
|
|||
![]() |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0