114 lines
2.2 KiB
Go
114 lines
2.2 KiB
Go
package beamng
|
|
|
|
import (
|
|
"strconv"
|
|
|
|
conv "esdi/conversions"
|
|
|
|
"esdi/telemetry"
|
|
)
|
|
|
|
const (
|
|
LapTimeFormatStr = "04:05.000"
|
|
)
|
|
|
|
func (b *BeamNG) unused(out *telemetry.TelemetryField) {
|
|
out.Unused()
|
|
}
|
|
|
|
func (b *BeamNG) updateSpeed(out *telemetry.TelemetryField) {
|
|
out.Type = telemetry.DataTypeUINT16
|
|
out.Raw = uint64(conv.MsToKph(b.og.Speed))
|
|
}
|
|
|
|
func (b *BeamNG) updateGear(out *telemetry.TelemetryField) {
|
|
out.Type = telemetry.DataTypeSTRING
|
|
// NOTE: stupid idea but we can cache these values
|
|
out.Str = strconv.Itoa(int(b.og.Gear))
|
|
}
|
|
|
|
func (b *BeamNG) updateRPM(out *telemetry.TelemetryField) {
|
|
out.Type = telemetry.DataTypeUINT16
|
|
out.Raw = uint64(uint16(b.og.RPM))
|
|
}
|
|
|
|
func (b *BeamNG) fuelLevel(out *telemetry.TelemetryField) {
|
|
telemetry.FloatToStringTransform(b.og.Fuel, out)
|
|
}
|
|
|
|
func (b *BeamNG) oilPressure(out *telemetry.TelemetryField) {
|
|
telemetry.FloatToStringTransform(b.og.OilPressure, out)
|
|
}
|
|
|
|
func (b *BeamNG) oilTemp(out *telemetry.TelemetryField) {
|
|
telemetry.FloatToStringTransform(b.og.OilTemp, out)
|
|
}
|
|
|
|
func (b *BeamNG) engTemp(out *telemetry.TelemetryField) {
|
|
telemetry.FloatToStringTransform(b.og.EngTemp, out)
|
|
}
|
|
|
|
// NOTE: find how to empty this
|
|
func (b *BeamNG) pitSpeedLimiter(out *telemetry.TelemetryField) {
|
|
}
|
|
|
|
func (b *BeamNG) leftIndicator(out *telemetry.TelemetryField) {
|
|
chr := ' '
|
|
if b.og.LeftIndicator() {
|
|
chr = '<'
|
|
}
|
|
|
|
out.Type = telemetry.DataTypeCHAR
|
|
out.Raw = uint64(chr)
|
|
}
|
|
|
|
func (b *BeamNG) rightIndicator(out *telemetry.TelemetryField) {
|
|
chr := ' '
|
|
if b.og.RightIndicator() {
|
|
chr = '>'
|
|
}
|
|
|
|
out.Type = telemetry.DataTypeCHAR
|
|
out.Raw = uint64(chr)
|
|
}
|
|
|
|
func (b *BeamNG) absLight(out *telemetry.TelemetryField) {
|
|
chr := ' '
|
|
if b.og.ABS() {
|
|
chr = 'A'
|
|
}
|
|
|
|
out.Type = telemetry.DataTypeCHAR
|
|
out.Raw = uint64(chr)
|
|
}
|
|
|
|
func (b *BeamNG) handbrakeLight(out *telemetry.TelemetryField) {
|
|
chr := ' '
|
|
if b.og.Handbrake() {
|
|
chr = 'P'
|
|
}
|
|
|
|
out.Type = telemetry.DataTypeCHAR
|
|
out.Raw = uint64(chr)
|
|
}
|
|
|
|
func (b *BeamNG) tcLight(out *telemetry.TelemetryField) {
|
|
chr := ' '
|
|
if b.og.TractionControl() {
|
|
chr = 'T'
|
|
}
|
|
|
|
out.Type = telemetry.DataTypeCHAR
|
|
out.Raw = uint64(chr)
|
|
}
|
|
|
|
func (b *BeamNG) batteryLight(out *telemetry.TelemetryField) {
|
|
chr := ' '
|
|
if b.og.BatteryLight() {
|
|
chr = 'B'
|
|
}
|
|
|
|
out.Type = telemetry.DataTypeCHAR
|
|
out.Raw = uint64(chr)
|
|
}
|