package main import ( "fmt" "google.golang.org/protobuf/proto" "powerpod/gotool/pb" ) func runVersion(sp *serialPort) error { payload, err := sp.exchange(byte(pb.MessageType_VERSION), "VERSION") if err != nil { return err } var msg pb.UartMessage if err := proto.Unmarshal(payload[1:], &msg); err != nil { return fmt.Errorf("decode protobuf: %w", err) } if msg.GetType() != pb.MessageType_VERSION { return fmt.Errorf("unexpected message type %v", msg.GetType()) } ver := msg.GetVersionResponse() if ver == nil { return fmt.Errorf("response missing version_response") } fmt.Printf("version: %d\n", ver.GetVersion()) fmt.Printf("git_hash: %s\n", ver.GetGitHash()) return nil }