diff --git a/backend/cmd/config.toml b/backend/cmd/config.toml index bfb3e09b1..606ed9002 100644 --- a/backend/cmd/config.toml +++ b/backend/cmd/config.toml @@ -1,3 +1,5 @@ +[vehicle] +boards = ["HVSCU", "PCU"] [server.ethernet-view] address = "127.0.0.1:4040" static = "./ethernet-view" @@ -16,9 +18,8 @@ order_data = "/orderStructures" programable_boards = "/uploadableBoards" connections = "/backend" files = "/" -[network] -manual = false - [adj] branch = "sw-bcu" # Leave blank when using ADJ as a submodule (like this: "") test = true +[network] +manual = false diff --git a/backend/cmd/main.go b/backend/cmd/main.go index 7894b09b2..4c1bac83d 100644 --- a/backend/cmd/main.go +++ b/backend/cmd/main.go @@ -53,6 +53,7 @@ import ( "github.com/google/gopacket/pcap" "github.com/jmaralo/sntp" "github.com/pelletier/go-toml/v2" + "github.com/pkg/browser" trace "github.com/rs/zerolog/log" ) @@ -101,7 +102,7 @@ func main() { // <--- ADJ ---> - adj, err := adj_module.NewADJ(config.Adj.Branch) + adj, err := adj_module.NewADJ(config.Adj.Branch, config.Adj.Test) if err != nil { trace.Fatal().Err(err).Msg("setting up ADJ") } @@ -324,6 +325,9 @@ func main() { }() } + browser.OpenURL("http://" + config.Server["ethernet-view"].Addr) + browser.OpenURL("http://" + config.Server["control-station"].Addr) + interrupt := make(chan os.Signal, 1) signal.Notify(interrupt, os.Interrupt) diff --git a/backend/go.mod b/backend/go.mod index 4b458fac8..90df5f1e6 100644 --- a/backend/go.mod +++ b/backend/go.mod @@ -29,6 +29,7 @@ require ( github.com/mattn/go-colorable v0.1.13 // indirect github.com/mattn/go-isatty v0.0.17 // indirect github.com/pjbgf/sha1cd v0.3.0 // indirect + github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c // indirect github.com/pkg/errors v0.9.1 // indirect github.com/sergi/go-diff v1.3.2-0.20230802210424-5b0b94c5c0d3 // indirect github.com/skeema/knownhosts v1.2.2 // indirect diff --git a/backend/go.sum b/backend/go.sum index 2be23a1bd..038f251fe 100644 --- a/backend/go.sum +++ b/backend/go.sum @@ -74,6 +74,8 @@ github.com/pin/tftp/v3 v3.0.0 h1:o9cQpmWBSbgiaYXuN+qJAB12XBIv4dT7OuOONucn2l0= github.com/pin/tftp/v3 v3.0.0/go.mod h1:xwQaN4viYL019tM4i8iecm++5cGxSqen6AJEOEyEI0w= github.com/pjbgf/sha1cd v0.3.0 h1:4D5XXmUUBUl/xQ6IjCkEAbqXskkq/4O7LmGn0AqMDs4= github.com/pjbgf/sha1cd v0.3.0/go.mod h1:nZ1rrWOcGJ5uZgEEVL1VUM9iRQiZvWdbZjkKyFzPPsI= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c h1:+mdjkGKdHQG3305AYmdv1U2eRNDiU2ErMBj1gwrq8eQ= +github.com/pkg/browser v0.0.0-20240102092130-5ac0b6a4141c/go.mod h1:7rwL4CYBLnjLxUqIJNnCWiEdr3bn6IUYi15bNlnbCCU= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= @@ -146,6 +148,7 @@ golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20220715151400-c0bba94af5f8/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.3.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.5.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= diff --git a/backend/internal/adj/adj.go b/backend/internal/adj/adj.go index d3969980c..b643073b8 100644 --- a/backend/internal/adj/adj.go +++ b/backend/internal/adj/adj.go @@ -14,8 +14,8 @@ const ( RepoPath = "./adj/" // Path where the ADJ repository is cloned ) -func NewADJ(AdjBranch string) (ADJ, error) { - infoRaw, boardsRaw, err := downloadADJ(AdjBranch) +func NewADJ(AdjBranch string, test bool) (ADJ, error) { + infoRaw, boardsRaw, err := downloadADJ(AdjBranch, test) if err != nil { return ADJ{}, err } @@ -69,15 +69,16 @@ func NewADJ(AdjBranch string) (ADJ, error) { return adj, nil } -func downloadADJ(AdjBranch string) (json.RawMessage, json.RawMessage, error) { +func downloadADJ(AdjBranch string, test bool) (json.RawMessage, json.RawMessage, error) { updateRepo(AdjBranch) - // The BoardIds are applied in the NewADJ function by the getBoardIds function - //Execute the script testadj.py (fix bug) - test := exec.Command("python3", "testadj.py") - out, err := test.CombinedOutput() - if err != nil || len(out) != 0 { - log.Fatalf("python test failed:\nError: %v\nOutput: %s\n", err, string(out)) + //Execute the script testadj.py if indicated in config.toml + if test { + test := exec.Command("python3", "testadj.py") + out, err := test.CombinedOutput() + if err != nil || len(out) != 0 { + log.Fatalf("python test failed:\nError: %v\nOutput: %s\n", err, string(out)) + } } info, err := os.ReadFile(RepoPath + "general_info.json") diff --git a/backend/pkg/adj/adj.go b/backend/pkg/adj/adj.go index 7708aaa35..b643073b8 100644 --- a/backend/pkg/adj/adj.go +++ b/backend/pkg/adj/adj.go @@ -2,7 +2,9 @@ package adj import ( "encoding/json" + "log" "os" + "os/exec" "github.com/HyperloopUPV-H8/h9-backend/internal/utils" ) @@ -12,8 +14,8 @@ const ( RepoPath = "./adj/" // Path where the ADJ repository is cloned ) -func NewADJ(AdjBranch string) (ADJ, error) { - infoRaw, boardsRaw, err := downloadADJ(AdjBranch) +func NewADJ(AdjBranch string, test bool) (ADJ, error) { + infoRaw, boardsRaw, err := downloadADJ(AdjBranch, test) if err != nil { return ADJ{}, err } @@ -36,21 +38,17 @@ func NewADJ(AdjBranch string) (ADJ, error) { } } - type BoardList struct { - Boards map[string]string `json:"boards"` - } - - var boardsList BoardList + var boardsList map[string]string if err := json.Unmarshal(boardsRaw, &boardsList); err != nil { return ADJ{}, err } - boards, err := getBoards(boardsList.Boards) + boards, err := getBoards(boardsList) if err != nil { return ADJ{}, err } - info.BoardIds, err = getBoardIds(boardsList.Boards) + info.BoardIds, err = getBoardIds(boardsList) if err != nil { return ADJ{}, err } @@ -71,10 +69,18 @@ func NewADJ(AdjBranch string) (ADJ, error) { return adj, nil } -func downloadADJ(AdjBranch string) (json.RawMessage, json.RawMessage, error) { +func downloadADJ(AdjBranch string, test bool) (json.RawMessage, json.RawMessage, error) { updateRepo(AdjBranch) - // The BoardIds are applied in the NewADJ function by the getBoardIds function + //Execute the script testadj.py if indicated in config.toml + if test { + test := exec.Command("python3", "testadj.py") + out, err := test.CombinedOutput() + if err != nil || len(out) != 0 { + log.Fatalf("python test failed:\nError: %v\nOutput: %s\n", err, string(out)) + } + } + info, err := os.ReadFile(RepoPath + "general_info.json") if err != nil { return nil, nil, err