From c43588e172917783843133eb0061bf0d118ae5d5 Mon Sep 17 00:00:00 2001 From: Sam Anthony Date: Fri, 7 Nov 2025 19:10:23 -0500 Subject: cal: transmit table to CAN bus --- sw/cal/table.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 sw/cal/table.go (limited to 'sw/cal/table.go') diff --git a/sw/cal/table.go b/sw/cal/table.go new file mode 100644 index 0000000..20d21d0 --- /dev/null +++ b/sw/cal/table.go @@ -0,0 +1,28 @@ +package main + +import ( + "fmt" + "slices" +) + +const tabRows = 32 + +type Table struct { + keys []int32 + vals []uint16 +} + +func (t *Table) Insert(key int32, val uint16) error { + if len(t.keys) >= tabRows { + return fmt.Errorf("too many rows") + } + + i, ok := slices.BinarySearch(t.keys, key) + if ok { + return ErrDupKey{key} + } + t.keys = slices.Insert(t.keys, i, key) + t.vals = slices.Insert(t.vals, i, val) + + return nil +} -- cgit v1.2.3