Skip to content

Commit

Permalink
chore: use charge status mapper (#9305)
Browse files Browse the repository at this point in the history
  • Loading branch information
andig authored Aug 10, 2023
1 parent c63bb70 commit 682ab05
Show file tree
Hide file tree
Showing 3 changed files with 4 additions and 25 deletions.
2 changes: 2 additions & 0 deletions api/api.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,6 +42,8 @@ const (
StatusF ChargeStatus = "F" // Fzg. angeschlossen: ja Laden aktiv: nein Fehler EVSE oder Abstecken simulieren (CP-Wake-up, -12V)
)

var StatusEasA = map[ChargeStatus]ChargeStatus{StatusE: StatusA}

// ChargeStatusString converts a string to ChargeStatus
func ChargeStatusString(s string) (ChargeStatus, error) {
status := strings.ToUpper(strings.TrimSpace(strings.Trim(s, "\x00")))
Expand Down
14 changes: 1 addition & 13 deletions charger/alfen.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ package charger

import (
"encoding/binary"
"fmt"
"math"
"sync"
"time"
Expand Down Expand Up @@ -127,18 +126,7 @@ func (wb *Alfen) Status() (api.ChargeStatus, error) {
return api.StatusNone, err
}

switch r := rune(b[0]); r {
case 'A', 'B', 'D', 'E', 'F':
return api.ChargeStatusStringWithMapping(string(r), map[api.ChargeStatus]api.ChargeStatus{api.StatusE: api.StatusA})
case 'C':
// C1 is "connected"
if rune(b[1]) == '1' {
return api.StatusB, nil
}
return api.StatusC, nil
default:
return api.StatusNone, fmt.Errorf("invalid status: %0x", b[:1])
}
return api.ChargeStatusStringWithMapping(string(b), api.StatusEasA)
}

// Enabled implements the api.Charger interface
Expand Down
13 changes: 1 addition & 12 deletions charger/innogy.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,18 +96,7 @@ func (wb *Innogy) Status() (api.ChargeStatus, error) {
return api.StatusNone, err
}

switch r := rune(b[0]); r {
case 'A', 'B', 'D', 'E', 'F':
return api.ChargeStatusStringWithMapping(string(r), map[api.ChargeStatus]api.ChargeStatus{api.StatusE: api.StatusA})
case 'C':
// C1 is "connected"
if rune(b[1]) == '1' {
return api.StatusB, nil
}
return api.StatusC, nil
default:
return api.StatusNone, fmt.Errorf("invalid status: %0x", b[:1])
}
return api.ChargeStatusStringWithMapping(string(b), api.StatusEasA)
}

// Enabled implements the api.Charger interface
Expand Down

0 comments on commit 682ab05

Please sign in to comment.