py dtn7
1.0.0
DTN7 REST 및 DTN7-RS의 WebSocket API 용 파이썬 래퍼 라이브러리. 라이브러리에는 완전한 번들 생성 및 (DE-) 직렬화를 허용하는 완전 사양 준수 Bundle 타입 (단편 및 CRC 지원이 없음)이 포함되어 있습니다.
bundle.py , dtn_rest_client.py , utils.py 모듈/파일은 Micropython 호환입니다. 그러나 이것은 약간의 수동 라이브러리 관리가 필요합니다. 아래의 Micropython 설치 안내서를 참조하십시오.
프로젝트에서 py-dtn7 사용하려면 PIPI에서시를 설치하십시오.
$ 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 , micropython-cbor 라이브러리 (특히 cbor.py 모듈/파일) 및 urequests 및 datetime 필요합니다.
$ mpremote mip install urequests
$ mpremote mip install datetime