Infuse-IoT SDK API 0.0.1
A Scalable Open Source RTOS
|
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. | |
Hamming error correction codes API .
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.
input | Input data buffer (Encoded data) |
input_len | Length of input data buffer in bytes |
output | Output data buffer (Original data) |
output_len | Length of output data buffer in bytes (must be at least 2x input_len) |
-EINVAL | Invalid buffer sizes |
>=0 | Number of output data symbols generated (2 per byte) |
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.
input | Input data buffer (Original data) |
input_len | Length of input data buffer in bytes |
output | Output data buffer (Encoded data) |
output_len | Length of output data buffer in bytes (must be at least 2x input_len) |
-EINVAL | Invalid buffer sizes |
>=0 | Number of output bytes generated |