All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Signed-off-by: Severin Kaderli <severin@kaderli.dev>
41 lines
1.3 KiB
Python
41 lines
1.3 KiB
Python
// Define constants
|
|
preamble = [1, 1, 1, 0, 0, 0, 1, 1, 1]
|
|
|
|
// Get sensor values
|
|
sensor_values = get_data_from_sensor()
|
|
|
|
value_range = range_of_data(sensor_values)
|
|
|
|
// Determine for sensor values if they are a high or low signal
|
|
signal = []
|
|
for value in sensor_values:
|
|
// Compare the value with the median of the values with some threshold
|
|
if value < median_with_threshold(value_range):
|
|
signal += low
|
|
else if value > median_with_threshold(value_range):
|
|
signal += high
|
|
else:
|
|
// Discard value
|
|
|
|
// Filter out single high or low signals
|
|
signal = clean_signal(signal)
|
|
|
|
// Only keep the first of consecutive same signals, as the transitions hold the data
|
|
signal = compress_signal(signal)
|
|
|
|
// Check for preamble in data
|
|
if contains(signal, preamble):
|
|
// Decode the received manchester encoded bitstream
|
|
packet = signal[index(preamble)]
|
|
|
|
// Read the first four bits of the bitstream to get the header
|
|
header = read_bits(packet, 0, 4)
|
|
display_header(header)
|
|
|
|
// Read the next n bytes of the bitstream, according to the payload length, to get the payload
|
|
payload = read_bits(packet, 4, header)
|
|
display_payload(payload)
|
|
|
|
// Read the next byte to get the CRC-8-AUTOSAR checksum of the payload
|
|
checksum = read_bits(packet, 4 + header, 8)
|
|
show_checksum_result()
|