Skip to main content

Wrapper interfaces to interact with Backend to/from Gateway API.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

wirepas_mesh_messaging-1.4.1rc1.tar.gz (34.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

wirepas_mesh_messaging-1.4.1rc1-py3-none-any.whl (45.4 kB view details)

Uploaded Python 3

File details

Details for the file wirepas_mesh_messaging-1.4.1rc1.tar.gz.

File metadata

File hashes

Hashes for wirepas_mesh_messaging-1.4.1rc1.tar.gz
Algorithm Hash digest
SHA256 8e33bce4843ecc0817b525b610532637ccb1ee7eda5d729f652515a77a421764
MD5 522422456c4b5f55ccf1ce1bef59fb48
BLAKE2b-256 9171302f7139e89934be1aeb860a9b22ae6e03b2da74e60701557963f17db00c

See more details on using hashes here.

File details

Details for the file wirepas_mesh_messaging-1.4.1rc1-py3-none-any.whl.

File metadata

File hashes

Hashes for wirepas_mesh_messaging-1.4.1rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 df47b2e3e68359b9b8bf7c42489aa6213e384ebb50d18e31e8aa76d94dab0f4e
MD5 0af2a968b5b9d225244f805979ade60d
BLAKE2b-256 bedbd9309f61ff6501db744cab384f26d2b72a9df4e3480e2a533dea4321cb75

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page