ไลบรารี Wrapper Python สำหรับ DTN7 REST และ WebSocket API ของ DTN7-RS ห้องสมุดมีประเภท Bundle ที่สอดคล้องอย่างสมบูรณ์ (แต่ไม่มีการสนับสนุนชิ้นส่วนและ CRC) ซึ่งช่วยให้การสร้างชุดเต็มรูปแบบและการทำให้เป็นอนุกรม (de-)
bundle.py , dtn_rest_client.py , utils.py โมดูล/ไฟล์เป็น micropython ที่เข้ากันได้ แต่สิ่งนี้ต้องใช้การจัดการห้องสมุดด้วยตนเองเล็กน้อย โปรดดูคู่มือการติดตั้ง 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