simplify the driver interface
This commit is contained in:
@@ -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{
|
||||
|
||||
Reference in New Issue
Block a user