Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
Loading...
Searching...
No Matches
Hamming error correcting codes APIs

Hamming error correction codes API . More...

Functions

int hamming_8_4_encode (const uint8_t *input, size_t input_len, uint8_t *output, size_t output_len)
 Encode a byte buffer using a (8,4) Hamming code.
 
int hamming_8_4_decode (const uint8_t *input, size_t input_len, uint8_t *output, size_t output_len)
 Decode a (8,4) Hamming encoded byte buffer.
 

Detailed Description

Hamming error correction codes API .

Function Documentation

◆ hamming_8_4_decode()

int hamming_8_4_decode ( const uint8_t * input,
size_t input_len,
uint8_t * output,
size_t output_len )

#include <infuse/math/hamming.h>

Decode a (8,4) Hamming encoded byte buffer.

This function will automatically correct single bit errors. Decoding will terminate upon the first double bit error.

Warning
Odd length inputs will be truncated to even to ensure byte chunk outputs.
Parameters
inputInput data buffer (Encoded data)
input_lenLength of input data buffer in bytes
outputOutput data buffer (Original data)
output_lenLength of output data buffer in bytes (must be at least 2x input_len)
Return values
-EINVALInvalid buffer sizes
>=0Number of output data symbols generated (2 per byte)

◆ hamming_8_4_encode()

int hamming_8_4_encode ( const uint8_t * input,
size_t input_len,
uint8_t * output,
size_t output_len )

#include <infuse/math/hamming.h>

Encode a byte buffer using a (8,4) Hamming code.

Output byte 0 is the result of encoding the top 4 bits of input byte 0. Output byte 1 is the result of encoding the bottom 4 bits of input byte 0.

Parameters
inputInput data buffer (Original data)
input_lenLength of input data buffer in bytes
outputOutput data buffer (Encoded data)
output_lenLength of output data buffer in bytes (must be at least 2x input_len)
Return values
-EINVALInvalid buffer sizes
>=0Number of output bytes generated