Skip to content

Commit 532ab6b

Browse files
committed
fix packet length check (unreleased bug)
1 parent 127885b commit 532ab6b

File tree

3 files changed

+9
-7
lines changed

3 files changed

+9
-7
lines changed

CHANGELOG.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
66

77
## [Unreleased]
88
### Changed
9-
- lock SPI device file
9+
- acquire `flock` on SPI device file
1010
- attribute `FT017TH.transceiver` is now private
1111

1212
### Added

tests/test_ft017th.py

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,7 @@ def test_receive():
154154
sensor = wireless_sensor.FT017TH()
155155
measurement_iter = sensor.receive()
156156
packet = cc1101._ReceivedPacket(
157-
data=b"\0" * 21, rssi_index=0, checksum_valid=True, link_quality_indicator=0
157+
data=b"\0" * 23, rssi_index=0, checksum_valid=True, link_quality_indicator=0
158158
)
159159
with unittest.mock.patch.object(sensor, "_receive_packet") as receive_packet_mock:
160160
packet_queue = queue.Queue()
@@ -179,7 +179,7 @@ def test_receive():
179179
assert len(parse_transmission_args) == 1
180180
assert numpy.array_equal(
181181
parse_transmission_args[0],
182-
numpy.array([255, 168] + [0] * 21, dtype=numpy.uint8),
182+
numpy.array([255, 168] + [0] * 23, dtype=numpy.uint8),
183183
)
184184
with unittest.mock.patch.object(
185185
sensor, "_parse_transmission", return_value="dummy2"
@@ -197,7 +197,7 @@ def test_receive_failed_to_decode(caplog):
197197
sensor,
198198
"_receive_packet",
199199
return_value=cc1101._ReceivedPacket(
200-
data=b"\0" * 21, rssi_index=0, checksum_valid=True, link_quality_indicator=0
200+
data=b"\0" * 23, rssi_index=0, checksum_valid=True, link_quality_indicator=0
201201
),
202202
) as receive_packet_mock, unittest.mock.patch.object(
203203
sensor,
@@ -223,7 +223,7 @@ def test_receive_failed_to_decode(caplog):
223223
assert len(decode_error_log_records) == 2
224224
for error_index in range(2):
225225
assert decode_error_log_records[error_index][0] == (
226-
"failed to decode _ReceivedPacket(RSSI -74dBm, 0x{}): ".format("00" * 21)
226+
"failed to decode _ReceivedPacket(RSSI -74dBm, 0x{}): ".format("00" * 23)
227227
+ "dummy error {}".format(error_index)
228228
)
229229
assert isinstance(

wireless_sensor/__init__.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ def __init__(self, unlock_spi_device: bool = False):
120120
self._transceiver = cc1101.CC1101(lock_spi_device=True)
121121
self._transmission_length_bytes = math.ceil(
122122
self._MESSAGE_LENGTH_BITS * self._MESSAGE_REPEATS / 8
123-
) - len(self._SYNC_WORD)
123+
)
124124

125125
def _configure_transceiver(self):
126126
self._transceiver.set_base_frequency_hertz(433.945e6)
@@ -133,7 +133,9 @@ def _configure_transceiver(self):
133133
self._transceiver.disable_checksum()
134134
self._transceiver.enable_manchester_code()
135135
self._transceiver.set_packet_length_mode(cc1101.PacketLengthMode.FIXED)
136-
self._transceiver.set_packet_length_bytes(self._transmission_length_bytes)
136+
self._transceiver.set_packet_length_bytes(
137+
self._transmission_length_bytes - len(self._SYNC_WORD)
138+
)
137139
# pylint: disable=protected-access; version pinned
138140
self._transceiver._set_filter_bandwidth(mantissa=3, exponent=3)
139141

0 commit comments

Comments
 (0)