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