used black
This commit is contained in:
@@ -31,7 +31,7 @@ class RawSignatureHeader(LittleEndianStructure):
|
||||
# field above,
|
||||
# it can be inferred and subtracted so that we obtain the number of samples,
|
||||
# and from the number of samples and sample rate we can obtain the length of the recording
|
||||
("fixed_value", c_uint32)
|
||||
("fixed_value", c_uint32),
|
||||
# Calculated as ((15 << 19) + 0x40000) - 0x7c0000 or 00 00 7c 00 - seems pretty constant,
|
||||
# may be different in the "SigType.STREAMING" mode
|
||||
]
|
||||
@@ -100,7 +100,9 @@ class DecodedMessage:
|
||||
assert crc32(check_summable_data) & 0xFFFFFFFF == header.crc32
|
||||
assert header.magic2 == 0x94119C00
|
||||
|
||||
self.sample_rate_hz = int(SampleRate(header.shifted_sample_rate_id >> 27).name.strip("_"))
|
||||
self.sample_rate_hz = int(
|
||||
SampleRate(header.shifted_sample_rate_id >> 27).name.strip("_")
|
||||
)
|
||||
|
||||
self.number_samples = int(
|
||||
header.number_samples_plus_divided_sample_rate - self.sample_rate_hz * 0.24
|
||||
@@ -145,13 +147,17 @@ class DecodedMessage:
|
||||
|
||||
fft_pass_offset: int = raw_fft_pass[0]
|
||||
if fft_pass_offset == 0xFF:
|
||||
fft_pass_number = int.from_bytes(frequency_peaks_buf.read(4), "little")
|
||||
fft_pass_number = int.from_bytes(
|
||||
frequency_peaks_buf.read(4), "little"
|
||||
)
|
||||
continue
|
||||
else:
|
||||
fft_pass_number += fft_pass_offset
|
||||
|
||||
peak_magnitude = int.from_bytes(frequency_peaks_buf.read(2), "little")
|
||||
corrected_peak_frequency_bin = int.from_bytes(frequency_peaks_buf.read(2), "little")
|
||||
corrected_peak_frequency_bin = int.from_bytes(
|
||||
frequency_peaks_buf.read(2), "little"
|
||||
)
|
||||
|
||||
self.frequency_band_to_sound_peaks[frequency_band].append(
|
||||
FrequencyPeak(
|
||||
@@ -203,7 +209,9 @@ class DecodedMessage:
|
||||
|
||||
header.magic1 = 0xCAFE2580
|
||||
header.magic2 = 0x94119C00
|
||||
header.shifted_sample_rate_id = int(getattr(SampleRate, "_%s" % self.sample_rate_hz)) << 27
|
||||
header.shifted_sample_rate_id = (
|
||||
int(getattr(SampleRate, "_%s" % self.sample_rate_hz)) << 27
|
||||
)
|
||||
header.fixed_value = (15 << 19) + 0x40000
|
||||
header.number_samples_plus_divided_sample_rate = int(
|
||||
self.number_samples + self.sample_rate_hz * 0.24
|
||||
@@ -211,7 +219,9 @@ class DecodedMessage:
|
||||
|
||||
contents_buf = BytesIO()
|
||||
|
||||
for frequency_band, frequency_peaks in sorted(self.frequency_band_to_sound_peaks.items()):
|
||||
for frequency_band, frequency_peaks in sorted(
|
||||
self.frequency_band_to_sound_peaks.items()
|
||||
):
|
||||
peaks_buf = BytesIO()
|
||||
|
||||
fft_pass_number = 0
|
||||
@@ -225,13 +235,19 @@ class DecodedMessage:
|
||||
|
||||
if frequency_peak.fft_pass_number - fft_pass_number >= 255:
|
||||
peaks_buf.write(b"\xff")
|
||||
peaks_buf.write(frequency_peak.fft_pass_number.to_bytes(4, "little"))
|
||||
peaks_buf.write(
|
||||
frequency_peak.fft_pass_number.to_bytes(4, "little")
|
||||
)
|
||||
|
||||
fft_pass_number = frequency_peak.fft_pass_number
|
||||
|
||||
peaks_buf.write(bytes([frequency_peak.fft_pass_number - fft_pass_number]))
|
||||
peaks_buf.write(
|
||||
bytes([frequency_peak.fft_pass_number - fft_pass_number])
|
||||
)
|
||||
peaks_buf.write(frequency_peak.peak_magnitude.to_bytes(2, "little"))
|
||||
peaks_buf.write(frequency_peak.corrected_peak_frequency_bin.to_bytes(2, "little"))
|
||||
peaks_buf.write(
|
||||
frequency_peak.corrected_peak_frequency_bin.to_bytes(2, "little")
|
||||
)
|
||||
|
||||
fft_pass_number = frequency_peak.fft_pass_number
|
||||
|
||||
@@ -245,7 +261,9 @@ class DecodedMessage:
|
||||
header.size_minus_header = len(contents_buf.getvalue()) + 8
|
||||
|
||||
buf = BytesIO()
|
||||
buf.write(header) # We will rewrite it just after in order to include the final CRC-32
|
||||
buf.write(
|
||||
header
|
||||
) # We will rewrite it just after in order to include the final CRC-32
|
||||
|
||||
buf.write((0x40000000).to_bytes(4, "little"))
|
||||
buf.write((len(contents_buf.getvalue()) + 8).to_bytes(4, "little"))
|
||||
|
||||
Reference in New Issue
Block a user