This repository has been archived on 2023-02-06. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
bachelor-thesis/documentation/thesis/listings/receiving_pseudo.py
Severin Kaderli 10bf9ebf44
All checks were successful
ci/woodpecker/push/woodpecker Pipeline was successful
Finalize thesis report and fix grammar mistakes
Signed-off-by: Severin Kaderli <severin@kaderli.dev>
2023-01-15 21:51:11 +01:00

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()