Moved the code its respective places instead of being all mixed up

This commit is contained in:
2025-10-21 20:30:26 +01:00
parent 5eacf8ef16
commit d52f8bcfa5
13 changed files with 122 additions and 111 deletions
+4 -2
View File
@@ -1,8 +1,10 @@
package main // Package cmd contains our cli
package cmd
import ( import (
"github.com/spf13/cobra"
"os" "os"
"github.com/spf13/cobra"
) )
// rootCmd represents the base command when called without any subcommands // rootCmd represents the base command when called without any subcommands
+3 -21
View File
@@ -1,10 +1,9 @@
package main package cmd
import ( import (
"esdi/esdi"
"esdi/logger" "esdi/logger"
// "esdi/sources/iracing"
"github.com/ESilva15/goirsdk"
"github.com/spf13/cobra" "github.com/spf13/cobra"
) )
@@ -17,24 +16,7 @@ func liveTelemetryCmdAction(cmd *cobra.Command, args []string) {
log.Printf("Called `live`:\nPort: '%s'\nOutFile: '%s'\n", ddPort, outputFile) log.Printf("Called `live`:\nPort: '%s'\nOutFile: '%s'\n", ddPort, outputFile)
esdi, err := ESDIInit(ddPort, 115200) esdi.RunLiveTelemetry(ddPort, outputFile, sessionFile)
if err != nil {
log.Fatalf("Failed to get Desktop Interface: %v", err)
}
// irsdk, err := iracing.Init(nil, outputFile, sessionFile)
// if err != nil {
// log.Fatalf("Failed to create iRacing interface: %v", err)
// }
irsdk, err := goirsdk.Init(nil, outputFile, sessionFile)
if err != nil {
log.Fatalf("Failed to create irsdk instance: %v\n", err)
}
esdi.irsdk = irsdk
esdi.telemetry()
} }
// removeLabelCmd represents the removeLabel command // removeLabelCmd represents the removeLabel command
@@ -1,10 +1,9 @@
package main package cmd
import ( import (
"os" "esdi/esdi"
"esdi/logger" "esdi/logger"
"esdi/sources/iracing"
// "github.com/ESilva15/goirsdk" // "github.com/ESilva15/goirsdk"
"github.com/spf13/cobra" "github.com/spf13/cobra"
@@ -20,28 +19,7 @@ func offlineTelemetryCmdAction(cmd *cobra.Command, args []string) {
log.Printf("Called `offline`:\nPort: '%s'\nSource: '%s'\nOutFile: '%s'\n", ddPort, inFile, outFile) log.Printf("Called `offline`:\nPort: '%s'\nSource: '%s'\nOutFile: '%s'\n", ddPort, inFile, outFile)
esdi, err := ESDIInit(ddPort, 115200) esdi.RunOfflineTelemetry(ddPort, inFile, outFile, sessionFile)
if err != nil {
log.Fatalf("Failed to get Desktop Interface: %v", err)
}
file, err := os.Open(inFile)
if err != nil {
log.Fatalf("Failed to open IBT file: %v", err)
}
irsdk, err := iracing.Init(file, outFile, sessionFile)
if err != nil {
log.Fatalf("Failed to create iRacing interface: %v", err)
}
// irsdk, err := goirsdk.Init(file, outFile, sessionFile)
// if err != nil {
// log.Fatalf("Failed to create irsdk instance: %v\n", err)
// }
esdi.irsdk = irsdk.SDK
esdi.telemetry()
} }
// removeLabelCmd represents the removeLabel command // removeLabelCmd represents the removeLabel command
-43
View File
@@ -1,43 +0,0 @@
package main
import (
"log"
"time"
"github.com/ESilva15/goirsdk"
"github.com/tarm/serial"
)
type ESDI struct {
SerialConfig *serial.Config
SerialConn *serial.Port
irsdk *goirsdk.IBT
data SimulationData
dataPacket DataPacket
// Source GameSource
}
func (e *ESDI) Close() {
err := e.SerialConn.Close()
if err != nil {
log.Fatalf("couldn't close serial connection: %v", err)
}
}
func ESDIInit(port string, baud int) (ESDI, error) {
sConfig := &serial.Config{
Name: port,
Baud: baud,
ReadTimeout: time.Millisecond * 1000,
}
// Open the serial port
sPort, err := serial.OpenPort(sConfig)
if err != nil {
return ESDI{}, err
}
// return ESDI{sConfig, sPort, nil}, nil
return ESDI{sConfig, sPort, nil, SimulationData{}, DataPacket{}}, nil
// return ESDI{nil, nil, nil, SimulationData{}, DataPacket{}}, nil
}
+1 -1
View File
@@ -1,4 +1,4 @@
package main package esdi
import ( import (
"fmt" "fmt"
+92
View File
@@ -0,0 +1,92 @@
// Package esdi will have the domain logic for our desktop interface
package esdi
import (
"esdi/sources/iracing"
"log"
"os"
"time"
"github.com/ESilva15/goirsdk"
"github.com/tarm/serial"
)
type ESDI struct {
SerialConfig *serial.Config
SerialConn *serial.Port
irsdk *goirsdk.IBT
data SimulationData
dataPacket DataPacket
// Source GameSource
}
func (e *ESDI) Close() {
err := e.SerialConn.Close()
if err != nil {
log.Fatalf("couldn't close serial connection: %v", err)
}
}
func ESDIInit(port string, baud int) (ESDI, error) {
sConfig := &serial.Config{
Name: port,
Baud: baud,
ReadTimeout: time.Millisecond * 1000,
}
// Open the serial port
sPort, err := serial.OpenPort(sConfig)
if err != nil {
return ESDI{}, err
}
// return ESDI{sConfig, sPort, nil}, nil
return ESDI{sConfig, sPort, nil, SimulationData{}, DataPacket{}}, nil
// return ESDI{nil, nil, nil, SimulationData{}, DataPacket{}}, nil
}
func RunLiveTelemetry(port string, output string, session string) {
esdi, err := ESDIInit(port, 115200)
if err != nil {
log.Fatalf("Failed to get Desktop Interface: %v", err)
}
// irsdk, err := iracing.Init(nil, outputFile, sessionFile)
// if err != nil {
// log.Fatalf("Failed to create iRacing interface: %v", err)
// }
irsdk, err := goirsdk.Init(nil, output, session)
if err != nil {
log.Fatalf("Failed to create irsdk instance: %v\n", err)
}
esdi.irsdk = irsdk
esdi.telemetry()
}
func RunOfflineTelemetry(port string, input string, output string, session string) {
esdi, err := ESDIInit(port, 115200)
if err != nil {
log.Fatalf("Failed to get Desktop Interface: %v", err)
}
file, err := os.Open(input)
if err != nil {
log.Fatalf("Failed to open IBT file: %v", err)
}
irsdk, err := iracing.Init(file, output, session)
if err != nil {
log.Fatalf("Failed to create iRacing interface: %v", err)
}
// irsdk, err := goirsdk.Init(file, outFile, sessionFile)
// if err != nil {
// log.Fatalf("Failed to create irsdk instance: %v\n", err)
// }
esdi.irsdk = irsdk.SDK
esdi.telemetry()
}
+1 -1
View File
@@ -1,4 +1,4 @@
package main package esdi
import ( import (
"bytes" "bytes"
@@ -1,4 +1,4 @@
package main package esdi
import ( import (
"testing" "testing"
+6 -8
View File
@@ -1,12 +1,10 @@
package main package esdi
import ( // "esdi/sources/beamng"
// "esdi/sources/beamng" // "fmt"
// "fmt" // "log"
// "log" // "strings"
// "strings" // "time"
// "time"
)
func beamngExample(esdi ESDI) { func beamngExample(esdi ESDI) {
// bIF, err := beamng.Init("127.0.0.1", 4444) // bIF, err := beamng.Init("127.0.0.1", 4444)
@@ -1,4 +1,4 @@
package main package esdi
import ( import (
"sort" "sort"
@@ -79,9 +79,9 @@ func relativeStandings(i *goirsdk.IBT, s []StandingsLine, id int) {
// though about it much yet tbh // though about it much yet tbh
func createStandingsTable(i *goirsdk.IBT) []StandingsLine { func createStandingsTable(i *goirsdk.IBT) []StandingsLine {
driversLapDistPctRaw := i.Vars.Vars["CarIdxLapDistPct"].Value driversLapDistPctRaw := i.Vars.Vars["CarIdxLapDistPct"].Value
if driversLapDistPctRaw == nil { if driversLapDistPctRaw == nil {
return []StandingsLine{} return []StandingsLine{}
} }
driversLapDistPct := driversLapDistPctRaw.([]float32) driversLapDistPct := driversLapDistPctRaw.([]float32)
driversEstTime := i.Vars.Vars["CarIdxEstTime"].Value.([]float32) driversEstTime := i.Vars.Vars["CarIdxEstTime"].Value.([]float32)
+1 -1
View File
@@ -1,4 +1,4 @@
package main package esdi
func findEntry[T any](s []T, predicate func(T) bool) int { func findEntry[T any](s []T, predicate func(T) bool) int {
for i, elem := range s { for i, elem := range s {
+1 -1
View File
@@ -1,4 +1,4 @@
package main package esdi
// Car data lengths // Car data lengths
const ( const (
+4 -2
View File
@@ -1,6 +1,8 @@
package main package main
import "esdi/cmd"
func main() { func main() {
// Launches the cobra package stuff // Launches the cobra package stuff
Execute() cmd.Execute()
} }