Skip to content

Commit 3123a40

Browse files
authored
Merge pull request #217 from HyperloopUPV-H8/auto-device-selector
[backend] Auto device selector
2 parents 9382714 + c53fd19 commit 3123a40

6 files changed

Lines changed: 48 additions & 32 deletions

File tree

backend/cmd/adj

Submodule adj deleted from 7a3da66

backend/cmd/config.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,14 @@ import (
88
type Adj struct {
99
Branch string
1010
}
11+
12+
type Network struct {
13+
Manual bool
14+
}
15+
1116
type Config struct {
1217
Vehicle vehicle.Config
1318
Server server.Config
19+
Network Network
1420
Adj Adj
1521
}

backend/cmd/config.toml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,23 @@
1-
2-
[server.local]
1+
[server.ethernet-view]
2+
address = "127.0.0.1:4040"
3+
static = "./ethernet-view"
4+
[server.ethernet-view.endpoints]
5+
pod_data = "/podDataStructure"
6+
order_data = "/orderStructures"
7+
programable_boards = "/uploadableBoards"
8+
connections = "/backend"
9+
files = "/"
10+
[server.control-station]
311
address = "127.0.0.1:4000"
4-
static = "./static"
5-
6-
[server.local.endpoints]
12+
static = "./control-station"
13+
[server.control-station.endpoints]
714
pod_data = "/podDataStructure"
815
order_data = "/orderStructures"
916
programable_boards = "/uploadableBoards"
1017
connections = "/backend"
1118
files = "/"
19+
[network]
20+
manual = false
1221

1322
[adj]
14-
branch = "" # Leave blank when using ADJ as a submodule (like this: "")
23+
branch = "sw-bcu" # Leave blank when using ADJ as a submodule (like this: "")

backend/cmd/main.go

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,7 @@ func main() {
129129

130130
dev = devs[*networkDevice]
131131
} else {
132-
dev, err = selectDev()
132+
dev, err = selectDev(adj.Info.Addresses, config)
133133
if err != nil {
134134
trace.Fatal().Err(err).Msg("Error selecting device")
135135
}
@@ -354,26 +354,40 @@ func createPid(path string) {
354354
}
355355
}
356356

357-
func selectDev() (pcap.Interface, error) {
357+
func selectDev(adjAddr map[string]string, conf Config) (pcap.Interface, error) {
358358
devs, err := pcap.FindAllDevs()
359359
if err != nil {
360360
return pcap.Interface{}, err
361361
}
362362

363-
cyan := color.New(color.FgCyan)
363+
if conf.Network.Manual {
364+
cyan := color.New(color.FgCyan)
364365

365-
cyan.Print("select a device: ")
366-
fmt.Printf("(0-%d)\n", len(devs)-1)
367-
for i, dev := range devs {
368-
displayDev(i, dev)
369-
}
366+
cyan.Print("select a device: ")
367+
fmt.Printf("(0-%d)\n", len(devs)-1)
368+
for i, dev := range devs {
369+
displayDev(i, dev)
370+
}
370371

371-
dev, err := acceptInput(len(devs))
372-
if err != nil {
373-
return pcap.Interface{}, err
374-
}
372+
dev, err := acceptInput(len(devs))
373+
if err != nil {
374+
return pcap.Interface{}, err
375+
}
375376

376-
return devs[dev], nil
377+
return devs[dev], nil
378+
} else {
379+
for _, dev := range devs {
380+
for _, addr := range dev.Addresses {
381+
if addr.IP.String() == adjAddr["backend"] {
382+
println(dev.Name)
383+
return dev, nil
384+
}
385+
}
386+
}
387+
388+
log.Fatal("backend address not found in any device")
389+
return pcap.Interface{}, nil
390+
}
377391
}
378392

379393
func displayDev(i int, dev pcap.Interface) {

backend/internal/adj/boards.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,6 @@ func getBoards(boardsList map[string]string) (map[string]Board, error) {
5656

5757
board.Structures = getBoardStructures(board)
5858

59-
// DEBUG
60-
for _, meas := range board.Measurements {
61-
println(meas.SafeRange[0], ", ", meas.SafeRange[1])
62-
println(meas.WarningRange[0], ", ", meas.WarningRange[1])
63-
}
64-
6559
boards[boardName] = board
6660
}
6761

backend/pkg/adj/boards.go

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,6 @@ func getBoards(boardsList map[string]string) (map[string]Board, error) {
5656

5757
board.Structures = getBoardStructures(board)
5858

59-
// DEBUG
60-
for _, meas := range board.Measurements {
61-
println(meas.SafeRange[0], ", ", meas.SafeRange[1])
62-
println(meas.WarningRange[0], ", ", meas.WarningRange[1])
63-
}
64-
6559
boards[boardName] = board
6660
}
6761

0 commit comments

Comments
 (0)