From 3c1e99cc6b426db2f3d085c037e4aafad3d60a0a Mon Sep 17 00:00:00 2001 From: Siddharth Purohit Date: Sun, 6 Oct 2019 11:06:19 +0530 Subject: [PATCH] AP_Math: add method for generating hash --- libraries/AP_Math/AP_Math.cpp | 1 + libraries/AP_Math/AP_Math.h | 1 + libraries/AP_Math/crc.cpp | 11 +++++++++++ libraries/AP_Math/crc.h | 4 ++++ 4 files changed, 17 insertions(+) diff --git a/libraries/AP_Math/AP_Math.cpp b/libraries/AP_Math/AP_Math.cpp index fc0b341547..d621fc2fe1 100644 --- a/libraries/AP_Math/AP_Math.cpp +++ b/libraries/AP_Math/AP_Math.cpp @@ -338,6 +338,7 @@ bool rotation_equal(enum Rotation r1, enum Rotation r2) return (v1 - v2).length() < 0.001; } + #if CONFIG_HAL_BOARD == HAL_BOARD_SITL // fill an array of float with NaN, used to invalidate memory in SITL void fill_nanf(float *f, uint16_t count) diff --git a/libraries/AP_Math/AP_Math.h b/libraries/AP_Math/AP_Math.h index 160d3fbd63..8d7b2c5365 100644 --- a/libraries/AP_Math/AP_Math.h +++ b/libraries/AP_Math/AP_Math.h @@ -281,3 +281,4 @@ bool rotation_equal(enum Rotation r1, enum Rotation r2) WARN_IF_UNUSED; // fill an array of float with NaN, used to invalidate memory in SITL void fill_nanf(float *f, uint16_t count); #endif + diff --git a/libraries/AP_Math/crc.cpp b/libraries/AP_Math/crc.cpp index a53540de61..7c5a017c50 100644 --- a/libraries/AP_Math/crc.cpp +++ b/libraries/AP_Math/crc.cpp @@ -255,3 +255,14 @@ uint16_t calc_crc_modbus(uint8_t *buf, uint16_t len) } return crc; } + +// FNV-1a implementation +#define FNV_1_PRIME_64 1099511628211UL +void hash_fnv_1a(uint32_t len, const uint8_t* buf, uint64_t* hash) +{ + uint32_t i; + for (i=0; i