Encode a message to a single segment.
(self, buffer, payload, is_self_contained)
| 145 | write_uint_le(buffer, header_crc, size=CRC24_LENGTH) |
| 146 | |
| 147 | def _encode_segment(self, buffer, payload, is_self_contained): |
| 148 | """ |
| 149 | Encode a message to a single segment. |
| 150 | """ |
| 151 | uncompressed_payload = payload |
| 152 | uncompressed_payload_length = len(payload) |
| 153 | |
| 154 | if self.compression: |
| 155 | compressed_payload = self.compress(uncompressed_payload) |
| 156 | if len(compressed_payload) >= uncompressed_payload_length: |
| 157 | encoded_payload = uncompressed_payload |
| 158 | uncompressed_payload_length = 0 |
| 159 | else: |
| 160 | encoded_payload = compressed_payload |
| 161 | else: |
| 162 | encoded_payload = uncompressed_payload |
| 163 | |
| 164 | payload_length = len(encoded_payload) |
| 165 | self.encode_header(buffer, payload_length, uncompressed_payload_length, is_self_contained) |
| 166 | payload_crc = compute_crc32(encoded_payload, CRC32_INITIAL) |
| 167 | buffer.write(encoded_payload) |
| 168 | write_uint_le(buffer, payload_crc) |
| 169 | |
| 170 | def encode(self, buffer, msg): |
| 171 | """ |
no test coverage detected