Библиотека обертки Python для API DTN7 Rest и WebSocket DTN7-RS. Библиотека включает в себя полностью специфический тип Bundle (но без фрагментов и поддержки CRC), который обеспечивает полное создание пакета и (де-) сериализацию.
bundle.py , dtn_rest_client.py , модули/файлы utils.py совместимы с микропитоном. Но для этого требуется немного ручного управления библиотекой. Пожалуйста, обратитесь к руководству по установке Micropython ниже.
Чтобы использовать py-dtn7 в вашем проекте, просто установите его из PYPI с поэзией:
$ poetry install --no-dev py_dtn7Это очень много работы, и, безусловно, не завершено. Реализация пакета очень рудиментарная и не поддерживает никаких блоков, отличных от первичной и полезной нагрузки.
Для генерации документации API Используйте pdoc :
$ pdoc ./py_dtn7 --output-directory ./docs... или проверить py-dtn7.readthedocs.org
>>> from py_dtn7 import DTNRESTClient
>>> client = DTNRESTClient( host = " http://localhost " , port = 3000 )
>>> d.peers
{'box1': {'eid': [1, '//box1/'], 'addr': {'Ip': '10.0.0.42'}, 'con_type': 'Dynamic', 'period': None, 'cla_list': [['MtcpConvergenceLayer', 16162]], 'services': {}, 'last_contact': 1653316457}}
>>> d.info
{'incoming': 0, 'dups': 0, 'outgoing': 0, 'delivered': 3, 'broken': 0}При отправке пакета известному сверстнику мы можем просто предоставить имя и конечную точку, в противном случае мы используем полный URI:
>>> d.send( payload = { " body " : " This will be transferred as json " }, peer_name = " box1 " , endpoint = " info " )
<Response [200]>
>>> r = d.send( payload = " Is there anybody out there? " , destination = " dtn://greatunkown/incoming " )
>>> r.content.decode( " utf-8 " )
'Sent payload with 27 bytes'Быть расширенным:
Фиктивные библиотеки __future__.py , abc.py , typing.py , библиотека микропитона-клетки (в частности, модуль/файл cbor.py ) и urequests , а также datetime необходимы:
$ mpremote mip install urequests
$ mpremote mip install datetime