Skip to content

Commit

Permalink
even better!!!
Browse files Browse the repository at this point in the history
  • Loading branch information
rafaellehmkuhl committed Dec 5, 2023
1 parent 7626a1f commit d45cc63
Showing 1 changed file with 14 additions and 16 deletions.
30 changes: 14 additions & 16 deletions src/libs/joystick/protocols/mavlink-manual-control.ts
Expand Up @@ -434,22 +434,20 @@ export class MavlinkManualControlManager {
.filter(([k]) => k.includes('BTN') && k.includes('S'))
.map((btn) => ({ button: btn[0], actionId: buttonParametersNamedObject[btn[1]] }))

// Always map the shift key to BTN0_FUNCTION and BTN0_SFUNCTION
const r0Function = currentRegularButtonParameters.find((v) => v.button === MAVLinkManualControlButton.R0)
if (r0Function === undefined) return
if (r0Function.actionId !== MAVLinkButtonFunction.shift) {
const mavlinkActionValue = this.vehicleButtonParameterTable.find((e) => e.title === MAVLinkButtonFunction.shift)
if (mavlinkActionValue === undefined) return
this.vehicle.setParameter({ id: r0Function.button, value: mavlinkActionValue.value })
return
}
const s0Function = currentShiftButtonParameters.find((v) => v.button === MAVLinkManualControlButton.S0)
if (s0Function === undefined) return
if (s0Function.actionId !== MAVLinkButtonFunction.shift) {
const mavlinkActionValue = this.vehicleButtonParameterTable.find((e) => e.title === MAVLinkButtonFunction.shift)
if (mavlinkActionValue === undefined) return
this.vehicle.setParameter({ id: s0Function.button, value: mavlinkActionValue.value })
return
// Re-use shift button if already mapped. Otherwise use R0 and S0.
const regularShiftFunction = currentRegularButtonParameters.find((v) => v.actionId === MAVLinkButtonFunction.shift)
const shiftActionValue = this.vehicleButtonParameterTable.find((e) => e.title === MAVLinkButtonFunction.shift)
if (regularShiftFunction === undefined) {
// Map shift to R0
const r0Function = currentRegularButtonParameters.find((v) => v.button === MAVLinkManualControlButton.R0)
this.vehicle.setParameter({ id: r0Function!.button, value: shiftActionValue!.value })

// Map shift to S0
const s0Function = currentShiftButtonParameters.find((v) => v.button === MAVLinkManualControlButton.S0)
this.vehicle.setParameter({ id: s0Function!.button, value: shiftActionValue!.value })
} else {
const sFunction = regularShiftFunction.button.replace('FUNCTION', 'SFUNCTION')
this.vehicle.setParameter({ id: sFunction, value: shiftActionValue!.value })
}

const currentMappedActionsInRegularButtons = currentRegularButtonParameters.map((v) => v.actionId)
Expand Down

0 comments on commit d45cc63

Please sign in to comment.