Skip to main content

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)

Source distribution for wirepas-mesh-messaging 1.4.1
File Size Uploaded
wirepas_mesh_messaging-1.4.1.tar.gz 34.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wirepas-mesh-messaging 1.4.1
File Interpreter ABI Platform
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
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page