Wirepas Mesh Messaging
This Python wheel contains the generated code to interact with Wirepas Mesh Network through the Gateway to Backend API. It offers an easy way to use the API in Python without the need to build the protobuf files yourself
Installation
Install from PyPi
This package is available from PyPi.
pip install wirepas-mesh-messaging
From the source
This wheel can be built from source directly. You need to have protobuf compiler installed.
First, .proto files should be compiled
protoc -I backend-apis/gateway_to_backend/protocol_buffers_files/ \
--python_out=./wirepas_mesh_messaging/proto \
backend-apis/gateway_to_backend/protocol_buffers_files/*.proto
After that, the wheel can be built using build.
python3 -m build .
Note: When installing the package, protobuf is installed automatically as a dependency. On some environments (such as Alpine) the recommended UPB backend might not available as a binary and the system might use the slower python implementation. To get the UBP backend, you can configure pip to use the source version of protobuf. This way the UPB backend would be built when installing protobuf:
pip install . --no-binary protobuf
Usage example
Create a message to be sent to a Gateway in protobuf format
>>> import wirepas_mesh_messaging as wmm
>>> downlink_message = wmm.SendDataRequest(dest_add=1234, src_ep=10, dst_ep=10, qos=0, payload=bytes.fromhex("0102ABCD"))
# downlink_message.payload can be published on right topic (protobuf formatted)
>>> downlink_message.payload
b'\n\x1e2\x1c\n\x0b\x08\x8e\xac\x9c\xbf\xab\x95\xbd\xf6\xfe\x01\x10\xd2\t\x18\n \n(\x002\x04\x01\x02\xab\xcd'
Parse a Wirepas message received from a Gateway in protobuf format
>>> import wirepas_mesh_messaging as wmm
# payload is the payload received from mqtt (protobuf formatted)
# Let's assume it was created like this on Gateway side:
# wmm.ReceivedDataEvent(gw_id="Gw1", sink_id="sink0", rx_time_ms_epoch=1608644981000, src=1234, dst=1, src_ep=10, dst_ep=10, travel_time_ms=128, qos=1).payload
>>> uplink_message = wmm.ReceivedDataEvent.from_payload(payload)
>>> print(uplink_message)
{'gw_id': 'Gw1', 'sink_id': 'sink0', 'event_id': 12527549978202166391, 'rx_time_ms_epoch': 1608644981000, 'source_address': 1234, 'destination_address': 1, 'source_endpoint': 10, 'destination_endpoint': 10, 'travel_time_ms': 128, 'qos': 1, 'data_payload': None, 'data_size': None, 'hop_count': 0}
Services API documentation
Please refer to the backend apis repository for documentation on the Gateway to Backend API.
License
Licensed under the Apache License, Version 2.0. See LICENSE for the full license text.
Release files for wirepas-mesh-messaging 1.4.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wirepas_mesh_messaging-1.4.1.tar.gz | 34.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wirepas_mesh_messaging-1.4.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 79.5 kB
Release files / wirepas_mesh_messaging-1.4.1.tar.gz
| Download URL | wirepas_mesh_messaging-1.4.1.tar.gz |
|---|---|
| Size | 34.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
f8ed7d5afa6c1f6f4d12bea80996a2bc2f6ec139e7baec62bb5f6cc5d220156a
|
|
BLAKE2b-256 checksum How to use checksums |
96691e148a01bf3f559e25ca6b20728421cb7112482ad04745b04a81a9bd9629
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.20
|
Release files / wirepas_mesh_messaging-1.4.1-py3-none-any.whl
| Download URL | wirepas_mesh_messaging-1.4.1-py3-none-any.whl |
|---|---|
| Size | 45.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
dcfe25a2d710ea5a33aedb72a2431f5973b8806a08df84bc7fcb22bc0f486dde
|
|
BLAKE2b-256 checksum How to use checksums |
9f86a6f05c75bf0c80d7ad913460800997551093076d4c0b54d1586ae81de375
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.8.20
|