simplify the driver interface

This commit is contained in:
alu
2026-08-07 09:29:17 -07:00
parent b99bb45877
commit 31c409a94c
13 changed files with 181 additions and 197 deletions
+22 -4
View File
@@ -20,14 +20,32 @@ type RaplDriver struct {
energyState map[string]EnergyState
}
func NewRaplDriver() *RaplDriver {
return &RaplDriver{
func NewRaplDriver() (*RaplDriver, error) {
r := RaplDriver{
energyState: map[string]EnergyState{},
}
_, err := r.Read()
return &r, err
}
func (r *RaplDriver) ReadPowerSensors() ([]PowerSensor, error) {
func (r *RaplDriver) Render(console *strings.Builder) error {
fmt.Fprint(console, "--- Power ---\n")
p, err := r.Read()
if err != nil {
return err
}
power := p.([]PowerSensor)
for _, sensor := range power {
// \033[K clears from cursor to end of line (prevents lingering chars)
fmt.Fprintf(console, "%-16s | %.2f W\033[K\n", sensor.Name, sensor.Watts)
}
return nil
}
func (r *RaplDriver) Read() (any, error) {
powerSensors := []PowerSensor{}
patterns := []string{