@@ -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