Moved the code its respective places instead of being all mixed up
This commit is contained in:
+4
-2
@@ -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
|
||||||
@@ -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
|
||||||
@@ -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,4 +1,4 @@
|
|||||||
package main
|
package esdi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
@@ -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,4 +1,4 @@
|
|||||||
package main
|
package esdi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
@@ -1,4 +1,4 @@
|
|||||||
package main
|
package esdi
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"testing"
|
"testing"
|
||||||
@@ -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,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,4 +1,4 @@
|
|||||||
package main
|
package esdi
|
||||||
|
|
||||||
// Car data lengths
|
// Car data lengths
|
||||||
const (
|
const (
|
||||||
Reference in New Issue
Block a user