diff --git a/utils.go b/utils.go index 73d214c92..3e090ad6a 100644 --- a/utils.go +++ b/utils.go @@ -4,6 +4,7 @@ import ( "encoding/json" "github.com/tarm/goserial" "io" + "math" "math/rand" "net" "reflect" @@ -100,3 +101,18 @@ func toJson(obj interface{}) string { b, _ := json.Marshal(obj) return string(b) } + +func FromScale(input, min, max float64) float64 { + return (input - math.Min(min, max)) / (math.Max(min, max) - math.Min(min, max)) +} + +func ToScale(input, min, max float64) float64 { + i := input*(math.Max(min, max)-math.Min(min, max)) + math.Min(min, max) + if i < math.Min(min, max) { + return math.Min(min, max) + } else if i > math.Max(min, max) { + return math.Max(min, max) + } else { + return i + } +}