diff options
Diffstat (limited to 'src/generic/canbus.c')
-rw-r--r-- | src/generic/canbus.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/generic/canbus.c b/src/generic/canbus.c index 8526c5c1..3cc051c8 100644 --- a/src/generic/canbus.c +++ b/src/generic/canbus.c @@ -13,8 +13,11 @@ #include "board/misc.h" // console_sendf #include "canbus.h" // canbus_set_uuid #include "command.h" // DECL_CONSTANT +#include "fasthash.h" // fasthash64 #include "sched.h" // sched_wake_task +#define CANBUS_UUID_LEN 6 + // Global storage static struct canbus_data { uint32_t assigned_id; @@ -323,9 +326,10 @@ command_get_canbus_id(uint32_t *args) DECL_COMMAND_FLAGS(command_get_canbus_id, HF_IN_SHUTDOWN, "get_canbus_id"); void -canbus_set_uuid(void *uuid) +canbus_set_uuid(uint8_t *raw_uuid, uint32_t raw_uuid_len) { - memcpy(CanData.uuid, uuid, sizeof(CanData.uuid)); + uint64_t hash = fasthash64(raw_uuid, raw_uuid_len, 0xA16231A7); + memcpy(CanData.uuid, &hash, sizeof(CanData.uuid)); canbus_notify_rx(); } |