Added healthchecks, and maybe got a bit lost
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user