@@ -85,6 +85,8 @@ class CustomizableParameter<T> {
8585}
8686
8787export const useMainVehicleStore = defineStore ( 'main-vehicle' , ( ) => {
88+ const controllerStore = useControllerStore ( )
89+
8890 const cpuLoad = ref < number > ( )
8991 const globalAddress = useStorage ( 'cockpit-vehicle-address' , defaultGlobalAddress )
9092 const _mainConnectionURI = new CustomizableParameter < Connection . URI > ( ( ) => {
@@ -398,8 +400,19 @@ export const useMainVehicleStore = defineStore('main-vehicle', () => {
398400
399401 const heartbeat = pack . message as Message . Heartbeat
400402 firmwareType . value = heartbeat . autopilot . type
403+ const oldVehicleType = vehicleType . value
401404 vehicleType . value = heartbeat . mavtype . type
402405 lastHeartbeat . value = new Date ( )
406+
407+ if ( oldVehicleType !== vehicleType . value && vehicleType . value !== undefined ) {
408+ console . log ( 'Vehicle type changed to' , vehicleType . value )
409+ try {
410+ controllerStore . loadDefaultProtocolMappingForVehicle ( vehicleType . value )
411+ console . info ( `Loaded default joystick protocol mapping for vehicle type ${ vehicleType . value } .` )
412+ } catch ( error ) {
413+ console . error ( `Could not load default protocol mapping for vehicle type ${ vehicleType . value } : ${ error } ` )
414+ }
415+ }
403416 } )
404417 // eslint-disable-next-line @typescript-eslint/no-explicit-any
405418 getAutoPilot ( vehicles ) . onMode . add ( ( vehicleMode : any ) => {
@@ -430,7 +443,6 @@ export const useMainVehicleStore = defineStore('main-vehicle', () => {
430443 registerActionCallback ( availableCockpitActions . mavlink_disarm , disarm )
431444 } )
432445
433- const controllerStore = useControllerStore ( )
434446 const mavlinkManualControlManager = new MavlinkManualControlManager ( )
435447 const cockpitActionsManager = new CockpitActionsManager ( )
436448 controllerStore . registerControllerUpdateCallback ( mavlinkManualControlManager . updateControllerData )
0 commit comments