31 lines
638 B
Go
31 lines
638 B
Go
package telemetry
|
|
|
|
type RPMLights struct {
|
|
State string
|
|
}
|
|
|
|
func NewRPMLights() *RPMLights {
|
|
return &RPMLights{
|
|
State: "WHITE",
|
|
}
|
|
}
|
|
|
|
func (rl *RPMLights) Process(td *TelemetryData) {
|
|
curRPM := td.Values[RPM].Raw
|
|
|
|
td.Values[RPMStateColour].Type = DataTypeSTRING
|
|
if curRPM >= 2000 && curRPM < 4000 {
|
|
td.Values[RPMStateColour].Str = "GREEN"
|
|
} else if curRPM >= 4000 && curRPM < 6000 {
|
|
td.Values[RPMStateColour].Str = "YELLOW"
|
|
} else if curRPM >= 6000 {
|
|
td.Values[RPMStateColour].Str = "RED"
|
|
} else {
|
|
td.Values[RPMStateColour].Str = "WHITE"
|
|
}
|
|
}
|
|
|
|
func (rl *RPMLights) EnsureSubscribed() []FieldID {
|
|
return []FieldID{RPM}
|
|
}
|