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