Skip to content

Commit e50eb4c

Browse files
authored
Merge pull request #303 from HyperloopUPV-H8/feat/blcu-board-registration
feat: implement BLCU board registration and packet mapping
2 parents acaeba6 + d4408ec commit e50eb4c

1 file changed

Lines changed: 38 additions & 4 deletions

File tree

backend/cmd/main.go

Lines changed: 38 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -221,13 +221,20 @@ func main() {
221221
vehicle.SetTransport(transp)
222222

223223
// <--- BLCU Board --->
224-
// Register BLCU board for handling bootloader operations
225-
if blcuIP, exists := adj.Info.Addresses[BLCU]; exists {
224+
// Register BLCU board for handling bootloader operations if configured
225+
if common.Contains(config.Vehicle.Boards, "BLCU") {
226+
// Use BLCU address from config, ADJ, or default localhost
227+
blcuIP := config.Blcu.IP
228+
if blcuIP == "" {
229+
if adjBlcuIP, exists := adj.Info.Addresses[BLCU]; exists {
230+
blcuIP = adjBlcuIP
231+
} else {
232+
blcuIP = "127.0.0.1" // Default TFTP server address
233+
}
234+
}
226235
blcuBoard := boards.New(blcuIP)
227236
vehicle.AddBoard(blcuBoard)
228237
trace.Info().Str("ip", blcuIP).Msg("BLCU board registered")
229-
} else {
230-
trace.Warn().Msg("BLCU address not found in ADJ")
231238
}
232239

233240
// <--- transport --->
@@ -243,6 +250,33 @@ func main() {
243250
transp.SetTargetIp(adj.Info.Addresses[board.Name], abstraction.TransportTarget(board.Name))
244251
}
245252

253+
// Set BLCU packet ID mappings if BLCU is configured
254+
if common.Contains(config.Vehicle.Boards, "BLCU") {
255+
// Use configurable packet IDs or defaults
256+
downloadOrderId := config.Blcu.DownloadOrderId
257+
uploadOrderId := config.Blcu.UploadOrderId
258+
if downloadOrderId == 0 {
259+
downloadOrderId = boards.BlcuDownloadOrderId
260+
}
261+
if uploadOrderId == 0 {
262+
uploadOrderId = boards.BlcuUploadOrderId
263+
}
264+
265+
transp.SetIdTarget(abstraction.PacketId(downloadOrderId), abstraction.TransportTarget("BLCU"))
266+
transp.SetIdTarget(abstraction.PacketId(uploadOrderId), abstraction.TransportTarget("BLCU"))
267+
268+
// Use BLCU address from config, ADJ, or default
269+
blcuIP := config.Blcu.IP
270+
if blcuIP == "" {
271+
if adjBlcuIP, exists := adj.Info.Addresses[BLCU]; exists {
272+
blcuIP = adjBlcuIP
273+
} else {
274+
blcuIP = "127.0.0.1"
275+
}
276+
}
277+
transp.SetTargetIp(blcuIP, abstraction.TransportTarget("BLCU"))
278+
}
279+
246280
// Start handling TCP client connections
247281
i := 0
248282
serverTargets := make(map[string]abstraction.TransportTarget)

0 commit comments

Comments
 (0)