removed that horrible offset when accessing telemetrydata values
This commit is contained in:
@@ -10,7 +10,6 @@ import (
|
||||
"time"
|
||||
|
||||
conv "esdi/conversions"
|
||||
"esdi/telemetry"
|
||||
telem "esdi/telemetry"
|
||||
|
||||
"github.com/ESilva15/goirsdk"
|
||||
@@ -76,12 +75,6 @@ func (i *IRacing) stream(ctx context.Context) {
|
||||
case <-i.ticker.C:
|
||||
i.readData()
|
||||
|
||||
// Create a snapshot
|
||||
i.mut.Lock()
|
||||
// snapshot := *i.data
|
||||
i.logger.Debug(fmt.Sprintf("%v\n", i.data.Values))
|
||||
i.mut.Unlock()
|
||||
|
||||
// Publish data
|
||||
select {
|
||||
case i.streamCh <- *i.data:
|
||||
@@ -108,7 +101,7 @@ func (i *IRacing) readData() {
|
||||
for _, b := range i.activeBindings {
|
||||
v := i.SDK.Vars.Vars[b.Key].Value
|
||||
// NOTE: for the love of god, find a way of avoiding this shit
|
||||
b.Transform(v, &i.data.Values[b.ID+telem.FirstField])
|
||||
b.Transform(v, &i.data.Values[b.ID])
|
||||
}
|
||||
|
||||
i.data.PenultimateDataPoll = i.data.LastDataPoll
|
||||
@@ -136,7 +129,7 @@ func (i *IRacing) Subscribe(requestFields []telem.FieldID) {
|
||||
|
||||
for _, id := range requestFields {
|
||||
// Translate the UI FieldIDs to this provider's field names
|
||||
sdkKey, ok := internalToSDKFieldNames[id+telem.FirstField]
|
||||
sdkKey, ok := internalToSDKFieldNames[id]
|
||||
if !ok {
|
||||
i.logger.Debug("failed to get internal id")
|
||||
// Need to find a way to pass a message saying something wasn't right
|
||||
@@ -149,19 +142,19 @@ func (i *IRacing) Subscribe(requestFields []telem.FieldID) {
|
||||
}
|
||||
|
||||
switch id {
|
||||
case telem.Speed - telem.FirstField:
|
||||
case telem.Speed:
|
||||
binding.Transform = func(v any, out *telem.TelemetryField) {
|
||||
out.Type = telemetry.DataTypeUINT16
|
||||
out.Type = telem.DataTypeUINT16
|
||||
out.Raw = uint64(conv.MsToKph(v.(float32)))
|
||||
}
|
||||
case telem.Gear - telem.FirstField:
|
||||
case telem.Gear:
|
||||
binding.Transform = func(v any, out *telem.TelemetryField) {
|
||||
out.Type = telemetry.DataTypeUINT8
|
||||
out.Type = telem.DataTypeUINT8
|
||||
out.Raw = uint64(v.(int))
|
||||
}
|
||||
case telem.RPM - telem.FirstField:
|
||||
case telem.RPM:
|
||||
binding.Transform = func(v any, out *telem.TelemetryField) {
|
||||
out.Type = telemetry.DataTypeUINT16
|
||||
out.Type = telem.DataTypeUINT16
|
||||
out.Raw = uint64(uint16(v.(float32)))
|
||||
}
|
||||
}
|
||||
|
||||
+1
-4
@@ -91,10 +91,7 @@ type FieldID uint16
|
||||
// We use FirstField to start the count on the fields the user can select
|
||||
// the first three will be for internal use
|
||||
const (
|
||||
FirstTimeStamp FieldID = iota
|
||||
PreviousTimeStamp
|
||||
LastTimeStamp
|
||||
Speed
|
||||
Speed FieldID = iota
|
||||
RPM
|
||||
Gear
|
||||
MaxFields
|
||||
|
||||
@@ -94,7 +94,7 @@ func (sc *StreamingCtrl) SetInternalState() {
|
||||
fields := make([]telemetry.FieldID, 0, len(sc.Service.CDash.State.Layout.Windows))
|
||||
for _, w := range sc.Service.CDash.State.Layout.Windows {
|
||||
fieldID, _ := telemetry.GetFieldID(w.UIData.TelemetryField)
|
||||
fields = append(fields, fieldID-telemetry.FirstField)
|
||||
fields = append(fields, fieldID)
|
||||
}
|
||||
|
||||
sc.TelemServ.ActiveProvider.Subscribe(fields)
|
||||
|
||||
@@ -51,7 +51,7 @@ func NewCDashDisplayWindowFormView() *CDashDisplayWindowFormView {
|
||||
view.TextSize.SetCurrentOption(0)
|
||||
|
||||
view.TelemetryField = tview.NewDropDown().SetLabel("Telemetry Field")
|
||||
for _, fieldName := range telemetry.FieldNames[telemetry.FirstField:] {
|
||||
for _, fieldName := range telemetry.FieldNames {
|
||||
view.TelemetryField.AddOption(fieldName, blankDropdownOptionCallback)
|
||||
}
|
||||
view.TelemetryField.SetCurrentOption(0)
|
||||
@@ -133,9 +133,9 @@ func (fv *WindowFormView) SetValues(win *cdashdisplay.DesktopUIWindow) {
|
||||
|
||||
telemFieldID, ok := telemetry.GetFieldID(win.UIData.TelemetryField)
|
||||
if !ok {
|
||||
telemFieldID = 100
|
||||
telemFieldID = 9999
|
||||
}
|
||||
fv.Form.TelemetryField.SetCurrentOption(int(telemFieldID - telemetry.FirstField))
|
||||
fv.Form.TelemetryField.SetCurrentOption(int(telemFieldID))
|
||||
}
|
||||
|
||||
func windowInfoPageID(idx int16) string {
|
||||
|
||||
Reference in New Issue
Block a user