Add debug log ring buffer with timestamps, log CLI subcommand

This commit is contained in:
Ian Gulliver
2026-04-07 09:18:43 +09:00
parent ffcbaf0665
commit d215ddc6f2
12 changed files with 128 additions and 9 deletions

View File

@@ -29,10 +29,12 @@ func main() {
err = cmdInfo()
case "load":
err = cmdLoad(args)
case "log":
err = cmdLog(args)
case "test":
err = cmdTest(args)
default:
slog.Error("unknown command", "cmd", cmd)
slog.Error("usage: picomap <info|load|log|test> [args...]")
os.Exit(1)
}
if err != nil {
@@ -128,6 +130,38 @@ func buildFirmware(buildDir string) error {
return nil
}
func cmdLog(_ []string) error {
devs, err := client.ListSerial()
if err != nil {
return err
}
if len(devs) == 0 {
return fmt.Errorf("no devices found")
}
for _, dev := range devs {
log := slog.With("dev", dev)
c, err := client.NewSerial(dev, 2*time.Second)
if err != nil {
log.Error("connect error", "err", err)
continue
}
resp, err := c.Log()
c.Close()
if err != nil {
log.Error("log error", "err", err)
continue
}
if len(resp.Entries) == 0 {
log.Info("no debug messages")
continue
}
for _, e := range resp.Entries {
log.Info("dlog", "t_us", e.TimestampUS, "msg", e.Message)
}
}
return nil
}
func cmdLoad(args []string) error {
target := "all"
if len(args) > 0 {