Added healthchecks, and maybe got a bit lost

This commit is contained in:
2026-09-22 16:21:50 +01:00
parent 009609da93
commit 82972c9665
11 changed files with 241 additions and 84 deletions
@@ -17,6 +17,7 @@ const (
CmdAckID types.Command = 2
CmdCreateWindow types.Command = 3
CmdDestroyWindow types.Command = 4
CmdHealthCheck types.Command = 9
)
var crc8Table = [256]byte{
@@ -18,3 +18,22 @@ func (pkt *NewWindowID) Validate() bool {
return true
}
type HealthCheck struct {
StartMarker byte
Response byte
EndMarker byte
}
func (pkt *HealthCheck) Validate() bool {
if pkt.StartMarker != constvar.StartOfText ||
pkt.EndMarker != constvar.EndOfText {
return false
}
if pkt.Response != 0x06 {
return false
}
return true
}
+6 -3
View File
@@ -26,8 +26,7 @@ func (wt *WalkieTalkie) ReadFramedData(size int, packet any) error {
b := make([]byte, 1)
_, err := wt.Serial.Read(b)
if err != nil {
// fmt.Fprintf(os.Stderr, "dev read: %s\n", err.Error())
return err
return fmt.Errorf("error reading incoming: %+v, err:", b, err)
}
if b[0] == constvar.StartOfText {
@@ -44,9 +43,11 @@ func (wt *WalkieTalkie) ReadFramedData(size int, packet any) error {
reader := bytes.NewReader(buf)
err = binary.Read(reader, binary.LittleEndian, packet)
if err != nil {
return err
return fmt.Errorf("error parsing incoming: %+v, err:", buf, err)
}
wt.Serial.Flush()
return nil
}
@@ -137,6 +138,8 @@ func (wt *WalkieTalkie) sendPacket(cmd types.Command, data any) error {
return err
}
wt.Serial.Flush()
return nil
}
+1
View File
@@ -18,6 +18,7 @@ const (
type Peripheral interface {
Name() string
Setup(string) error
HealthCheck() bool
SendData(*telemetry.TelemetryData) error
RequiredFields() []telemetry.FieldID
OnLoad() error