Files
picomap/lib/client/types.go

122 lines
2.5 KiB
Go
Raw Normal View History

package client
import "github.com/theater/picomap/lib/msgpack"
type RequestPICOBOOT struct{}
type ResponsePICOBOOT struct{}
type RequestInfo struct{}
type BootReason uint8
const (
BootCold BootReason = 0
BootReboot BootReason = 1
BootWatchdog BootReason = 2
)
func (b BootReason) String() string {
switch b {
case BootCold:
return "cold"
case BootReboot:
return "reboot"
case BootWatchdog:
return "watchdog"
default:
return "unknown"
}
}
type ResponseInfo struct {
2026-04-06 20:09:30 +09:00
BoardID [8]byte
MAC [6]byte
IP [4]byte
2026-04-06 20:09:30 +09:00
FirmwareName string
Boot BootReason
BuildEpoch uint32
}
type RequestLog struct{}
type LogEntry struct {
TimestampUS uint32
Message string
}
type ResponseLog struct {
Entries []LogEntry
}
type RequestFlashErase struct {
Addr uint32
Len uint32
}
type ResponseFlashErase struct{}
type RequestFlashWrite struct {
Addr uint32
Data []byte
}
type ResponseFlashWrite struct{}
type RequestReboot struct{}
type ResponseReboot struct{}
type RequestFlashStatus struct{}
type ResponseFlashStatus struct {
BootPartition int8
BootType uint8
}
type RequestListTests struct{}
type ResponseListTests struct {
Names []string
}
type RequestTest struct {
Name string
}
type ResponseTest struct {
Pass bool
Messages []string
}
type DeviceError struct {
Code uint32
Message string
}
func (e *DeviceError) Error() string {
return e.Message
}
type Envelope struct {
MessageID uint32
Checksum uint32
Payload []byte
}
func init() {
msgpack.RegisterExt(0, (*Envelope)(nil))
msgpack.RegisterExt(1, (*DeviceError)(nil))
msgpack.RegisterExt(2, (*RequestPICOBOOT)(nil))
msgpack.RegisterExt(3, (*ResponsePICOBOOT)(nil))
msgpack.RegisterExt(4, (*RequestInfo)(nil))
msgpack.RegisterExt(5, (*ResponseInfo)(nil))
msgpack.RegisterExt(6, (*RequestLog)(nil))
msgpack.RegisterExt(7, (*ResponseLog)(nil))
msgpack.RegisterExt(8, (*RequestFlashErase)(nil))
msgpack.RegisterExt(9, (*ResponseFlashErase)(nil))
msgpack.RegisterExt(10, (*RequestFlashWrite)(nil))
msgpack.RegisterExt(11, (*ResponseFlashWrite)(nil))
msgpack.RegisterExt(12, (*RequestReboot)(nil))
msgpack.RegisterExt(13, (*ResponseReboot)(nil))
msgpack.RegisterExt(14, (*RequestFlashStatus)(nil))
msgpack.RegisterExt(15, (*ResponseFlashStatus)(nil))
msgpack.RegisterExt(125, (*RequestListTests)(nil))
msgpack.RegisterExt(124, (*ResponseListTests)(nil))
msgpack.RegisterExt(127, (*RequestTest)(nil))
msgpack.RegisterExt(126, (*ResponseTest)(nil))
}