Skip to content

Commit d502f51

Browse files
authored
Merge pull request #39 from ElectronicCats/experimental
fix: LoRa RSSI and SNR bytes
2 parents ca67e71 + 9b01a85 commit d502f51

File tree

3 files changed

+8
-13
lines changed

3 files changed

+8
-13
lines changed

pycatsniffer_bv3/Modules/Packets.py

+4-9
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,7 @@ def __init__(self, packet_bytes: bytes) -> None:
3434
self.unpack()
3535

3636
def unpack(self) -> None:
37-
(
38-
self.start_of_frame,
39-
) = struct.unpack_from("<H", self.packet_bytes)
37+
(self.start_of_frame,) = struct.unpack_from("<H", self.packet_bytes)
4038
self.packet_length = struct.unpack(">H", self.packet_bytes[2:4])[0]
4139
self.bytes_payload = self.packet_bytes[4:-2]
4240
(self.end_of_frame,) = struct.unpack_from("<H", self.packet_bytes[-2:])
@@ -69,12 +67,9 @@ def __init__(self, packet_bytes: bytes) -> None:
6967

7068
def unpack(self) -> None:
7169
super().unpack()
72-
self.payload = self.bytes_payload[:-2]
73-
(self.rssi,) = struct.unpack_from(">h", self.bytes_payload[-2:])
74-
# rssi_convertion = ((self.rssi / 32767.0) * (0 - (-120))) + (-120)
75-
# self.rssi = rssi_convertion
76-
# self.rssi = self.bytes_payload[-2:]
77-
# self.snr = self.bytes_payload[-1:]
70+
self.payload = self.bytes_payload[:-8]
71+
(self.rssi,) = struct.unpack_from("<f", self.bytes_payload[-8:])
72+
(self.snr,) = struct.unpack_from("<f", self.bytes_payload[-4:])
7873

7974
def digiest(self) -> str:
8075
return (

pycatsniffer_bv3/Modules/Protocols.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -234,7 +234,7 @@ def set_badwidth(self, badwidth_index: int) -> None:
234234
spacing=125,
235235
channel_range=[(0, 433), (1, 434), (2, 435)],
236236
pcap_header=148,
237-
profile="Default"
237+
profile="Default",
238238
)
239239

240240

pycatsniffer_bv3/Modules/SnifferCollector.py

+3-3
Original file line numberDiff line numberDiff line change
@@ -230,9 +230,9 @@ def handle_sniffer_data(self):
230230
+ int(self.lora_spreading_factor).to_bytes(
231231
1, "little"
232232
)
233-
+ int(self.lora_coding_rate).to_bytes(2, "little")
234-
# + int(self.sniffer_data.rssi).to_bytes(2, "little")
235-
+ struct.pack("<h", int(self.sniffer_data.rssi))
233+
+ int(self.lora_coding_rate).to_bytes(1, "little")
234+
+ struct.pack("<f", self.sniffer_data.rssi)
235+
+ struct.pack("<f", self.sniffer_data.snr)
236236
+ self.sniffer_data.payload
237237
)
238238
else:

0 commit comments

Comments
 (0)