lrc.c 436 B

12345678910111213141516171819
  1. #include "lrc.h"
  2. uint8_t seader_calc_lrc(uint8_t* data, size_t len) {
  3. uint8_t lrc = 0;
  4. for(size_t i = 0; i < len; i++) {
  5. lrc ^= data[i];
  6. }
  7. return lrc;
  8. }
  9. bool seader_validate_lrc(uint8_t* data, size_t len) {
  10. uint8_t lrc = seader_calc_lrc(data, len - 1);
  11. return lrc == data[len - 1];
  12. }
  13. size_t seader_add_lrc(uint8_t* data, size_t len) {
  14. data[len] = seader_calc_lrc(data, len);
  15. return len + 1;
  16. }