Uma biblioteca de wrapper Python para a API de REST DTN7 e WebSocket do DTN7-RS. A biblioteca inclui um tipo de Bundle totalmente compatível com especificações (mas sem suporte a fragmento e CRC), que permite a criação completa do feixe e a serialização (des).
O bundle.py , dtn_rest_client.py , utils.py Módulos/arquivos são compatíveis com Micropython. Mas isso requer um pouco de gerenciamento manual da biblioteca. Consulte o Guia de instalação do Micropython abaixo.
Para usar py-dtn7 em seu projeto, basta instalá-lo do Pypi com poesia:
$ poetry install --no-dev py_dtn7Isso é muito um trabalho em andamento e, de longe, não está completo. A implementação do pacote é muito rudimentar e não suporta nenhum bloco que não seja o primário e a carga útil.
Para gerar a documentação da API, use pdoc :
$ pdoc ./py_dtn7 --output-directory ./docs... ou confira 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}Ao enviar um pacote para um colega conhecido, podemos simplesmente fornecer o nome e o terminal dos colegas, caso contrário, usamos o URI completo:
>>> 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'A ser estendido:
As bibliotecas fictícias __future__.py , abc.py , typing.py , a biblioteca Micropython-cbor (especificamente o módulo/arquivo cbor.py ) e urequests , bem como datetime é necessário:
$ mpremote mip install urequests
$ mpremote mip install datetime