aboutsummaryrefslogtreecommitdiffstats
path: root/src/generic/canbus.c
diff options
context:
space:
mode:
authorKevin O'Connor <kevin@koconnor.net>2022-06-12 11:55:46 -0400
committerKevin O'Connor <kevin@koconnor.net>2022-06-16 11:03:48 -0400
commitfc7838855f886383917076cee87b13938d8bbe40 (patch)
tree4266addc37bb5ebc80dd0da654fa8a79c371e34b /src/generic/canbus.c
parent3f7d05dd18469927dff1cf5a7d35d67ec9fd7cdc (diff)
downloadkutter-fc7838855f886383917076cee87b13938d8bbe40.tar.gz
kutter-fc7838855f886383917076cee87b13938d8bbe40.tar.xz
kutter-fc7838855f886383917076cee87b13938d8bbe40.zip
canbus: Move canbus uuid calculation to canbus.c
Move the uuid hash calculation to canbus.c and call canbus_set_uuid() from src/stm32/chipid.c . This simplifies the low-level canbus hardware code. Signed-off-by: Kevin O'Connor <kevin@koconnor.net>
Diffstat (limited to 'src/generic/canbus.c')
-rw-r--r--src/generic/canbus.c8
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();
}