130 lines
3.7 KiB
Go
130 lines
3.7 KiB
Go
package main
|
|
|
|
import (
|
|
"fmt"
|
|
"log/slog"
|
|
"os"
|
|
|
|
mysubaru "github.com/alex-savin/go-mysubaru"
|
|
"github.com/alex-savin/go-mysubaru/config"
|
|
)
|
|
|
|
// var log = *slog.Logger
|
|
var cfg = &config.Config{}
|
|
|
|
const (
|
|
LoggingOutputJson = "JSON"
|
|
LoggingOutputText = "TEXT"
|
|
)
|
|
|
|
func configureLogging(config *config.Logging) *slog.Logger { //nolint:unparam
|
|
if config == nil {
|
|
return nil
|
|
}
|
|
|
|
var level slog.Level
|
|
if err := level.UnmarshalText([]byte(config.Level)); err != nil {
|
|
slog.Warn(err.Error())
|
|
slog.Warn(fmt.Sprintf("logging level not recognized, defaulting to level %s", slog.LevelInfo.String()))
|
|
level = slog.LevelInfo
|
|
}
|
|
|
|
var handler slog.Handler
|
|
switch config.Output {
|
|
case LoggingOutputJson:
|
|
handler = slog.NewJSONHandler(os.Stdout, &slog.HandlerOptions{AddSource: cfg.Logging.Source, Level: level})
|
|
case LoggingOutputText:
|
|
handler = slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{AddSource: cfg.Logging.Source, Level: level})
|
|
default:
|
|
handler = slog.NewTextHandler(os.Stdout, &slog.HandlerOptions{AddSource: cfg.Logging.Source, Level: level})
|
|
}
|
|
|
|
return slog.New(handler)
|
|
}
|
|
|
|
func main() {
|
|
|
|
var err error
|
|
cfg, err = config.New()
|
|
if err != nil { // Handle errors reading the config file
|
|
slog.Error("Fatal error config file", "error", err.Error())
|
|
os.Exit(1)
|
|
}
|
|
|
|
logger := configureLogging(cfg.Logging)
|
|
|
|
logger.Debug("printting config", "config", cfg)
|
|
|
|
ms, _ := mysubaru.New(logger, &cfg.MySubaru)
|
|
// mysubaru.selectVehicle("4S4BTGPD0P3199198")
|
|
|
|
// 11.6MMAN ABS_MIL ACCS AHBL_MIL ATF_MIL AWD_MIL BSD BSDRCT_MIL CEL_MIL EBD_MIL EOL_MIL EPAS_MIL EPB_MIL ESS_MIL EYESIGHT ISS_MIL NAV_TOMTOM OPL_MIL RAB_MIL RCC REARBRK RES RESCC RHSF RPOI RPOIA SRS_MIL TEL_MIL TIF_35 TIR_33 TPMS_MIL VDC_MIL WASH_MIL g2
|
|
// subaru1 := mysubaru.GetVehicleByVIN("4S4BTGND8L3137058")
|
|
// fmt.Printf("SUBARU #2 (Vehicle Status):\n")
|
|
// subaru1.GetVehicleStatus()
|
|
// fmt.Printf("SUBARU #2 (Vehicle Condition):\n")
|
|
// subaru1.GetVehicleCondition()
|
|
// fmt.Printf("SUBARU #1: %+v\n", subaru1)
|
|
// fmt.Printf("GEN #1: %+v\n\n", subaru1.getAPIGen())
|
|
|
|
// ABS_MIL ACCS AHBL_MIL ATF_MIL AWD_MIL BSD BSDRCT_MIL CEL_MIL EBD_MIL EOL_MIL EPAS_MIL EPB_MIL ESS_MIL EYESIGHT ISS_MIL OPL_MIL PANPM-TUIRWAOC PWAAADWWAP RAB_MIL RCC REARBRK RES RESCC RHSF RPOI RPOIA RTGU RVFS SRH_MIL SRS_MIL TEL_MIL TIF_35 TIR_33 TLD TPMS_MIL VALET VDC_MIL WASH_MIL g3
|
|
subaru := ms.GetVehicleByVIN("4S4BTGPD0P3199198")
|
|
subaru.GetLocation(true)
|
|
// subaru.EngineStart()
|
|
fmt.Printf("SUBARU #1 (Vehicle Status):\n")
|
|
subaru.GetVehicleStatus()
|
|
// fmt.Printf("SUBARU #1 (Vehicle Condition):\n")
|
|
// subaru.GetVehicleCondition()
|
|
// fmt.Printf("SUBARU #1: %+v\n", subaru)
|
|
// subaru.GetClimatePresets()
|
|
// subaru.GetClimateUserPresets()
|
|
// fmt.Printf("SUBARU #2: %+v\n", subaru)
|
|
// subaru.GetVehicleHealth()
|
|
// subaru.GetFeaturesList()
|
|
|
|
// subaru.LightsStart()
|
|
// time.Sleep(10 * time.Second)
|
|
// subaru.LightsStop()
|
|
|
|
// subaru := mysubaru.GetVehicles()[0]
|
|
|
|
// fmt.Printf("SUBARU: %+v\n", subaru)
|
|
|
|
// fmt.Printf("Subaru Gen: %+v\n\n", subaru.getAPIGen())
|
|
|
|
// subaru.EngineOn()
|
|
// subaru.GetLocation(false)
|
|
|
|
// subaru.GetVehicleStatus()
|
|
// subaru.GetVehicleCondition()
|
|
// fmt.Printf("SUBARU: %+v\n", subaru)
|
|
|
|
// subaru.GetClimateQuickPresets()
|
|
// subaru.GetClimatePresets()
|
|
// subaru.GetClimateUserPresets()
|
|
|
|
// subaru.LightsStart()
|
|
// time.Sleep(15 * time.Second)
|
|
// subaru.LightsStop()
|
|
|
|
// subaru.listDevices()
|
|
|
|
// subaru.GetVehicleStatus()
|
|
|
|
// subaru.GetClimateSettings()
|
|
|
|
// subaru.EngineStart()
|
|
// time.Sleep(15 * time.Second)
|
|
// subaru.EngineStop()
|
|
|
|
// subaru.Unlock()
|
|
// time.Sleep(20 * time.Second)
|
|
// subaru.Lock()
|
|
|
|
// subaru.LightsStart()
|
|
// time.Sleep(15 * time.Second)
|
|
// subaru.LightsStop()
|
|
|
|
// subaru.GetLocation()
|
|
}
|