- now we only use one function to update the TelemetryField instead of having to fetch data and then update it. Still need to update the iRacing provider to use this pattern. Way better and creates better units. Got rid of that stupid long ass switch statement too
47 lines
819 B
Go
47 lines
819 B
Go
package telemetry
|
|
|
|
import "strconv"
|
|
|
|
func EmptyTransform(v any, out *TelemetryField) {
|
|
out.Type = DataTypeCHAR
|
|
out.Raw = uint64('-')
|
|
}
|
|
|
|
func UInt8Transform(v any, out *TelemetryField) {
|
|
out.Type = DataTypeUINT8
|
|
|
|
if v == nil {
|
|
out.Raw = 0
|
|
return
|
|
}
|
|
|
|
out.Raw = uint64(v.(int))
|
|
}
|
|
|
|
func FloatToStringTransform(v float32, out *TelemetryField) {
|
|
out.Type = DataTypeSTRING
|
|
out.Str = strconv.FormatFloat(float64(v), 'f', 1, 32)
|
|
}
|
|
|
|
func FloatToStringTransformDEPRECATE(v any, out *TelemetryField) {
|
|
out.Type = DataTypeSTRING
|
|
|
|
if v == nil {
|
|
out.Str = "inv"
|
|
return
|
|
}
|
|
|
|
out.Str = strconv.FormatFloat(float64(v.(float32)), 'f', 1, 32)
|
|
}
|
|
|
|
func FloatToUInt8TransformDEPRECATE(v any, out *TelemetryField) {
|
|
out.Type = DataTypeUINT8
|
|
|
|
if v == nil {
|
|
out.Raw = uint64(0)
|
|
return
|
|
}
|
|
|
|
out.Raw = uint64(v.(float32))
|
|
}
|