مكتبة غلاف Python لـ DTN7 REST و WebSocket API من DTN7-RS. تتضمن المكتبة نوع Bundle متوافقة مع المواصفات بالكامل (ولكن بدون دعم الشظية و CRC) ، والذي يسمح بإنشاء الحزمة الكاملة والتسلسل (إلغاء).
bundle.py /ملفات/ملفات/ utils.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 ، مكتبة micropython-cbor (على وجه التحديد وحدة/ملف cbor.py ) و urequests وكذلك datetime :
$ mpremote mip install urequests
$ mpremote mip install datetime