Skip to content

Commit 082d0ad

Browse files
committed
Added backward compatibility with old gateway versions and calls
1 parent 0927a71 commit 082d0ad

File tree

2 files changed

+20
-2
lines changed

2 files changed

+20
-2
lines changed

tb_device_mqtt.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -317,7 +317,12 @@ class TBDeviceMqttClient:
317317
def __init__(self, host, port=1883, username=None, password=None, quality_of_service=None, client_id="",
318318
chunk_size=0, messages_rate_limit="DEFAULT_MESSAGES_RATE_LIMIT",
319319
telemetry_rate_limit="DEFAULT_TELEMETRY_RATE_LIMIT",
320-
telemetry_dp_rate_limit="DEFAULT_TELEMETRY_DP_RATE_LIMIT", max_payload_size=8196):
320+
telemetry_dp_rate_limit="DEFAULT_TELEMETRY_DP_RATE_LIMIT", max_payload_size=8196, **kwargs):
321+
# Added for compatibility with old versions
322+
if kwargs.get('rate_limit') is not None or kwargs.get('dp_rate_limit') is not None:
323+
messages_rate_limit = messages_rate_limit if kwargs.get('rate_limit') == "DEFAULT_RATE_LIMIT" else kwargs.get('rate_limit', messages_rate_limit)
324+
telemetry_rate_limit = telemetry_rate_limit if kwargs.get('rate_limit') == "DEFAULT_RATE_LIMIT" else kwargs.get('rate_limit', telemetry_rate_limit)
325+
telemetry_dp_rate_limit = telemetry_dp_rate_limit if kwargs.get('dp_rate_limit') == "DEFAULT_RATE_LIMIT" else kwargs.get('dp_rate_limit', telemetry_dp_rate_limit)
321326
self._client = paho.Client(protocol=5, client_id=client_id)
322327
self.quality_of_service = quality_of_service if quality_of_service is not None else 1
323328
self.__host = host
@@ -648,6 +653,10 @@ def request_service_configuration(self, callback):
648653
self.send_rpc_call("getSessionLimits", {}, callback)
649654

650655
def on_service_configuration(self, _, service_config, *args, **kwargs):
656+
if not isinstance(service_config, dict) or 'rateLimits' not in service_config:
657+
log.warning("Cannot retrieve service configuration, session will use default configuration.")
658+
log.debug("Received the following response: %r", service_config)
659+
return
651660
if service_config.get("rateLimits"):
652661
rate_limits_config = service_config.get("rateLimits")
653662

tb_gateway_mqtt.py

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,16 @@ def __init__(self, host, port=1883, username=None, password=None, gateway=None,
4545
telemetry_dp_rate_limit="DEFAULT_TELEMETRY_DP_RATE_LIMIT",
4646
device_messages_rate_limit="DEFAULT_MESSAGES_RATE_LIMIT",
4747
device_telemetry_rate_limit="DEFAULT_TELEMETRY_RATE_LIMIT",
48-
device_telemetry_dp_rate_limit="DEFAULT_TELEMETRY_DP_RATE_LIMIT"):
48+
device_telemetry_dp_rate_limit="DEFAULT_TELEMETRY_DP_RATE_LIMIT", **kwargs):
49+
# Added for compatibility with the old versions
50+
if kwargs.get('rate_limit') or kwargs.get('dp_rate_limit'):
51+
messages_rate_limit = messages_rate_limit if kwargs.get('rate_limit') == "DEFAULT_RATE_LIMIT" else kwargs.get('rate_limit', messages_rate_limit)
52+
telemetry_rate_limit = telemetry_rate_limit if kwargs.get('rate_limit') == "DEFAULT_RATE_LIMIT" else kwargs.get('rate_limit', telemetry_rate_limit)
53+
device_messages_rate_limit = device_messages_rate_limit if kwargs.get('rate_limit') == "DEFAULT_RATE_LIMIT" else kwargs.get('rate_limit', device_messages_rate_limit)
54+
device_telemetry_rate_limit = device_telemetry_rate_limit if kwargs.get('rate_limit') == "DEFAULT_RATE_LIMIT" else kwargs.get('rate_limit', device_telemetry_rate_limit)
55+
telemetry_dp_rate_limit = telemetry_dp_rate_limit if kwargs.get('dp_rate_limit') == "DEFAULT_RATE_LIMIT" else kwargs.get('dp_rate_limit', telemetry_dp_rate_limit)
56+
device_telemetry_dp_rate_limit = device_telemetry_dp_rate_limit if kwargs.get('dp_rate_limit') == "DEFAULT_RATE_LIMIT" else kwargs.get('dp_rate_limit', device_telemetry_dp_rate_limit)
57+
4958
super().__init__(host, port, username, password, quality_of_service, client_id,
5059
messages_rate_limit=messages_rate_limit, telemetry_rate_limit=telemetry_rate_limit,
5160
telemetry_dp_rate_limit=telemetry_dp_rate_limit)

0 commit comments

Comments
 (0)