|
15 | 15 | import logging |
16 | 16 | from copy import deepcopy |
17 | 17 | from inspect import signature |
18 | | -from re import split |
19 | 18 | from time import sleep |
20 | 19 |
|
21 | 20 | import paho.mqtt.client as paho |
@@ -777,14 +776,15 @@ def __send_publish_with_limitations(self, kwargs, timeout, device=None, msg_rate |
777 | 776 | if attributes_format: |
778 | 777 | split_messages = [{'message': msg_data, 'datapoints': len(msg_data)} for split_message in device_split_messages for msg_data in split_message['data']] |
779 | 778 | else: |
780 | | - split_messages = [{'message': split_message['data'], 'datapoints': split_message['datapoints']} |
781 | | - for split_message in device_split_messages] |
| 779 | + split_messages = [{'message': split_message['data'], 'datapoints': split_message['datapoints']} for split_message in device_split_messages] |
782 | 780 | else: |
783 | 781 | device_data = data.get(device) |
784 | 782 | device_split_messages = self._split_message(device_data, dp_rate_limit.get_minimal_limit(), |
785 | 783 | self.max_payload_size) |
786 | | - split_messages = [ |
787 | | - {'message': {device: split_message['data']}, 'datapoints': split_message['datapoints']} for split_message in device_split_messages] |
| 784 | + if attributes_format: |
| 785 | + split_messages = [{'message': {device: msg_data}, 'datapoints': len(msg_data)} for split_message in device_split_messages for msg_data in split_message['data']] |
| 786 | + else: |
| 787 | + split_messages = [{'message': {device: split_message['data']}, 'datapoints': split_message['datapoints']} for split_message in device_split_messages] |
788 | 788 | else: |
789 | 789 | split_messages = [{'message': data, 'datapoints': 0}] |
790 | 790 |
|
@@ -1063,7 +1063,7 @@ def _split_message(message_pack, datapoints_max_count, max_payload_size): |
1063 | 1063 | value = values[data_key] |
1064 | 1064 | data_key_size = len(data_key) + len(str(value)) |
1065 | 1065 |
|
1066 | | - if len(message_item_values_with_allowed_size) < datapoints_max_count + current_size // 1024 and current_size + data_key_size < max_payload_size: |
| 1066 | + if len(message_item_values_with_allowed_size) < datapoints_max_count and current_size + data_key_size < max_payload_size: |
1067 | 1067 | message_item_values_with_allowed_size[data_key] = value |
1068 | 1068 | current_size += data_key_size |
1069 | 1069 |
|
|
0 commit comments