Deadzone:
@@ -221,7 +235,7 @@
{{getSectionTitle()}}
/>
-
+
Anti-deadzone:
{{getSectionTitle()}}
menu
-
keyboard_arrow_up
+
keyboard_arrow_up
Y
@@ -549,11 +563,11 @@
{{getSectionTitle()}}
B
-
keyboard_arrow_down
+
keyboard_arrow_down
arrow_upward
-
keyboard_arrow_up
+
keyboard_arrow_up
A
@@ -569,7 +583,7 @@
{{getSectionTitle()}}
arrow_downward
-
keyboard_arrow_down
+
keyboard_arrow_down
diff --git a/src/components/profile/section.ts b/src/components/profile/section.ts
index dd7690f..9ac2f5f 100644
--- a/src/components/profile/section.ts
+++ b/src/components/profile/section.ts
@@ -32,6 +32,7 @@ import { delay } from 'lib/delay'
export class SectionComponent {
@Input() profileIndex: number = 0
@Input() section: CtrlSection = new CtrlSectionMeta(0, SectionIndex.META, '', 0, 0, 0, 0)
+ @Input() analog: boolean = false
dialogKeyPicker: any
pickerGroup = 0
pickerProfile = 1
@@ -115,7 +116,7 @@ export class SectionComponent {
getGyroMode() {
const profile = this.profiles.getProfile(this.profileIndex) as Profile
- return profile.gyro.mode
+ return profile.settingsGyro.mode
}
async profileOverwrite() {
@@ -275,7 +276,7 @@ export class SectionComponent {
if (this.pickerGroup==1 && this.section.hold) cls += ' holdBG'
if (this.pickerGroup==2 && this.section.double) cls += ' doubleBG'
}
- if (sectionIsAnalog(this.section.sectionIndex) && isAxis(action)) {
+ if (this.analog && sectionIsAnalog(this.section.sectionIndex) && isAxis(action)) {
cls += ' analogBG'
}
if (actions.has(action)) return cls
@@ -289,7 +290,7 @@ export class SectionComponent {
if (index==1 && this.section.hold) cls += ' hold'
if (index==2 && this.section.double) cls += ' double'
}
- if (sectionIsAnalog(this.section.sectionIndex) && isAxis(action)) {
+ if (this.analog && sectionIsAnalog(this.section.sectionIndex) && isAxis(action)) {
cls += ' analog'
}
return cls
@@ -322,26 +323,31 @@ const sectionTitles: SectionTitles = {
[SectionIndex.R1]: 'Trigger R1',
[SectionIndex.R2]: 'Trigger R2',
[SectionIndex.R4]: 'Trigger R4',
- [SectionIndex.DHAT_LEFT]: 'DHat Left',
- [SectionIndex.DHAT_RIGHT]: 'DHat Right',
- [SectionIndex.DHAT_UP]: 'DHat Up',
- [SectionIndex.DHAT_DOWN]: 'DHat Down',
- [SectionIndex.DHAT_UL]: 'DHat Up-Left',
- [SectionIndex.DHAT_UR]: 'DHat Up-Right',
- [SectionIndex.DHAT_DL]: 'DHat Down-Left',
- [SectionIndex.DHAT_DR]: 'DHat Down-Right',
- [SectionIndex.DHAT_PUSH]: 'DHat Push',
+ [SectionIndex.LSTICK_SETTINGS]: 'LStick Settings',
+ [SectionIndex.LSTICK_LEFT]: 'LStick Left',
+ [SectionIndex.LSTICK_RIGHT]: 'LStick Right',
+ [SectionIndex.LSTICK_UP]: 'LStick Up',
+ [SectionIndex.LSTICK_DOWN]: 'LStick Down',
+ [SectionIndex.LSTICK_UL]: 'LStick Up-Left',
+ [SectionIndex.LSTICK_UR]: 'LStick Up-Right',
+ [SectionIndex.LSTICK_DL]: 'LStick Down-Left',
+ [SectionIndex.LSTICK_DR]: 'LStick Down-Right',
+ [SectionIndex.LSTICK_PUSH]: 'LStick Push',
+ [SectionIndex.LSTICK_INNER]: 'LStick Inner',
+ [SectionIndex.LSTICK_OUTER]: 'LStick Outer',
+ [SectionIndex.RSTICK_SETTINGS]: 'RStick Settings',
+ [SectionIndex.RSTICK_LEFT]: 'RStick Left',
+ [SectionIndex.RSTICK_RIGHT]: 'RStick Right',
+ [SectionIndex.RSTICK_UP]: 'RStick Up',
+ [SectionIndex.RSTICK_DOWN]: 'RStick Down',
+ [SectionIndex.RSTICK_UL]: 'RStick Up-Left',
+ [SectionIndex.RSTICK_UR]: 'RStick Up-Right',
+ [SectionIndex.RSTICK_DL]: 'RStick Down-Left',
+ [SectionIndex.RSTICK_DR]: 'RStick Down-Right',
+ [SectionIndex.RSTICK_PUSH]: 'RStick Push',
[SectionIndex.ROTARY_UP]: 'Rotary up',
[SectionIndex.ROTARY_DOWN]: 'Rotary down',
- [SectionIndex.THUMBSTICK]: 'Thumbstick settings',
- [SectionIndex.THUMBSTICK_LEFT]: 'Thumbstick Left',
- [SectionIndex.THUMBSTICK_RIGHT]: 'Thumbstick Right',
- [SectionIndex.THUMBSTICK_UP]: 'Thumbstick Up',
- [SectionIndex.THUMBSTICK_DOWN]: 'Thumbstick Down',
- [SectionIndex.THUMBSTICK_PUSH]: 'Thumbstick Push',
- [SectionIndex.THUMBSTICK_INNER]: 'Thumbstick Inner',
- [SectionIndex.THUMBSTICK_OUTER]: 'Thumbstick Outer',
- [SectionIndex.GYRO]: 'Gyro settings',
+ [SectionIndex.GYRO_SETTINGS]: 'Gyro settings',
[SectionIndex.GYRO_X]: 'Gyro Axis X',
[SectionIndex.GYRO_Y]: 'Gyro Axis Y',
[SectionIndex.GYRO_Z]: 'Gyro Axis Z',
diff --git a/src/lib/ctrl.ts b/src/lib/ctrl.ts
index 79f50f1..85e58e7 100644
--- a/src/lib/ctrl.ts
+++ b/src/lib/ctrl.ts
@@ -40,8 +40,8 @@ export enum ConfigIndex {
export enum SectionIndex {
NONE,
- META,
- A = 2,
+ META = 1,
+ A,
B,
X,
Y,
@@ -59,26 +59,33 @@ export enum SectionIndex {
R2,
L4,
R4,
- DHAT_LEFT,
- DHAT_RIGHT,
- DHAT_UP,
- DHAT_DOWN,
- DHAT_UL,
- DHAT_UR,
- DHAT_DL,
- DHAT_DR,
- DHAT_PUSH,
- ROTARY_UP,
+ ROTARY_UP = 29,
ROTARY_DOWN,
- THUMBSTICK,
- THUMBSTICK_LEFT,
- THUMBSTICK_RIGHT,
- THUMBSTICK_UP,
- THUMBSTICK_DOWN,
- THUMBSTICK_PUSH,
- THUMBSTICK_INNER,
- THUMBSTICK_OUTER,
- GLYPHS_0,
+ LSTICK_SETTINGS = 31,
+ LSTICK_LEFT,
+ LSTICK_RIGHT,
+ LSTICK_UP,
+ LSTICK_DOWN,
+ LSTICK_UL = 55,
+ LSTICK_UR,
+ LSTICK_DL,
+ LSTICK_DR,
+ LSTICK_PUSH = 36,
+ LSTICK_INNER,
+ LSTICK_OUTER,
+ RSTICK_SETTINGS = 59,
+ RSTICK_LEFT = 20,
+ RSTICK_RIGHT,
+ RSTICK_UP,
+ RSTICK_DOWN,
+ RSTICK_UL,
+ RSTICK_UR,
+ RSTICK_DL,
+ RSTICK_DR,
+ RSTICK_PUSH,
+ RSTICK_INNER = 60,
+ RSTICK_OUTER,
+ GLYPHS_0 = 39,
GLYPHS_1,
GLYPHS_2,
GLYPHS_3,
@@ -86,7 +93,7 @@ export enum SectionIndex {
DAISY_1,
DAISY_2,
DAISY_3,
- GYRO,
+ GYRO_SETTINGS,
GYRO_X,
GYRO_Y,
GYRO_Z,
@@ -117,6 +124,7 @@ export enum ThumbstickMode {
OFF,
DIR4,
ALPHANUMERIC,
+ DIR8,
}
export enum ThumbstickDistanceMode {
@@ -136,31 +144,30 @@ export function sectionIsMeta(section: SectionIndex) {
return section == SectionIndex.META
}
-export function sectionIsButton(section: SectionIndex) {
- return (
- (section >= SectionIndex.A && section <= SectionIndex.DHAT_PUSH) ||
- (section >= SectionIndex.THUMBSTICK_LEFT && section <= SectionIndex.THUMBSTICK_OUTER)
- )
-}
-
export function sectionIsRotary(section: SectionIndex) {
return section == SectionIndex.ROTARY_UP || section == SectionIndex.ROTARY_DOWN
}
export function sectionIsThumbtick(section: SectionIndex) {
- return section == SectionIndex.THUMBSTICK
+ return (
+ section==SectionIndex.LSTICK_SETTINGS ||
+ section==SectionIndex.RSTICK_SETTINGS
+ )
}
export function sectionIsThumbtickDirection(section: SectionIndex) {
- return section >= SectionIndex.THUMBSTICK_LEFT && section <= SectionIndex.THUMBSTICK_DOWN
+ return (
+ (section >= SectionIndex.LSTICK_LEFT && section <= SectionIndex.LSTICK_DOWN) ||
+ (section >= SectionIndex.RSTICK_LEFT && section <= SectionIndex.RSTICK_DOWN)
+ )
}
export function sectionIsThumbtickButton(section: SectionIndex) {
- return sectionIsThumbtickDirection(section) || section == SectionIndex.THUMBSTICK_PUSH
+ return sectionIsThumbtickDirection(section) || section == SectionIndex.LSTICK_PUSH
}
export function sectionIsGyro(section: SectionIndex) {
- return section == SectionIndex.GYRO
+ return section == SectionIndex.GYRO_SETTINGS
}
export function sectionIsGyroAxis(section: SectionIndex) {
@@ -213,17 +220,17 @@ export class Ctrl {
// See: https://github.com/inputlabs/alpakka_firmware/blob/main/docs/ctrl_protocol.md
const data = Array.from(buffer)
const msgType = data[2]
- if (msgType== MessageType.LOG) return CtrlLog.decode(buffer)
- if (msgType== MessageType.STATUS_SHARE) return CtrlStatusShare.decode(buffer)
+ if (msgType == MessageType.LOG) return CtrlLog.decode(buffer)
+ if (msgType == MessageType.STATUS_SHARE) return CtrlStatusShare.decode(buffer)
if (msgType == MessageType.CONFIG_SHARE) return CtrlConfigShare.decode(buffer)
if (msgType == MessageType.SECTION_SHARE) {
const section = data[5]
if (sectionIsMeta(section)) return CtrlSectionMeta.decode(buffer)
- if (sectionIsButton(section)) return CtrlButton.decode(buffer)
- if (sectionIsRotary(section)) return CtrlRotary.decode(buffer)
- if (sectionIsThumbtick(section)) return CtrlThumbstick.decode(buffer)
- if (sectionIsGyro(section)) return CtrlGyro.decode(buffer)
- if (sectionIsGyroAxis(section)) return CtrlGyroAxis.decode(buffer)
+ else if (sectionIsRotary(section)) return CtrlRotary.decode(buffer)
+ else if (sectionIsThumbtick(section)) return CtrlThumbstick.decode(buffer)
+ else if (sectionIsGyro(section)) return CtrlGyro.decode(buffer)
+ else if (sectionIsGyroAxis(section)) return CtrlGyroAxis.decode(buffer)
+ else return CtrlButton.decode(buffer)
}
return false
}
@@ -552,6 +559,7 @@ export class CtrlThumbstick extends CtrlSection {
public overlap : number,
public deadzone_override: boolean,
public antideadzone: number,
+ public saturation: number,
) {
super(1, DeviceId.ALPAKKA, MessageType.SECTION_SHARE)
}
@@ -568,7 +576,8 @@ export class CtrlThumbstick extends CtrlSection {
data[8], // Deadzone.
data[9] <= 128 ? data[9] : data[9]-256, // Axis overlap (unsigned to signed).
Boolean(data[10]), // Deadzone override.
- data[11], // Antideadzone.
+ data[11], // Antideadzone.
+ data[12], // Saturation.
)
}
@@ -582,6 +591,7 @@ export class CtrlThumbstick extends CtrlSection {
this.overlap,
Number(this.deadzone_override),
this.antideadzone,
+ this.saturation,
]
}
}
diff --git a/src/lib/device.ts b/src/lib/device.ts
index e09288c..4aa70b5 100644
--- a/src/lib/device.ts
+++ b/src/lib/device.ts
@@ -85,12 +85,11 @@ export class Device {
async listen() {
this.isListening = true
try {
- // console.log('Listening...')
const response = await this.usbDevice.transferIn(ADDR_IN, PACKAGE_SIZE)
let data = response.data as any
const array = new Uint8Array(data.buffer)
const ctrl = Ctrl.decode(array)
- // console.log('received', ctrl)
+ // console.log('Received', ctrl)
if (ctrl instanceof CtrlLog) this.handleCtrlLog(ctrl)
if (ctrl instanceof CtrlStatusShare) this.handleCtrlStatusShare(ctrl)
if (ctrl instanceof CtrlConfigShare) {
@@ -137,6 +136,18 @@ export class Device {
return false
}
+ isDongle() {
+ return !this.isController()
+ }
+
+ isAlpakkaV0() {
+ return this.usbDevice.serialNumber == 'v0'
+ }
+
+ isAlpakkaV1() {
+ return this.usbDevice.serialNumber == 'v1'
+ }
+
handleCtrlLog(ctrl: CtrlLog) {
if (!this.logs[0] || this.logs[0]?.endsWith('\n')) {
this.logs.unshift(ctrl.logMessage)
diff --git a/src/lib/hid.ts b/src/lib/hid.ts
index 53d7f63..150b4b3 100644
--- a/src/lib/hid.ts
+++ b/src/lib/hid.ts
@@ -201,16 +201,16 @@ export enum HID {
GAMEPAD_Y,
GAMEPAD_AXIS_LX = GAMEPAD_AXIS_INDEX,
- GAMEPAD_AXIS_LY,
+ GAMEPAD_AXIS_LY_NEG, // Inverted display of the vertical axis.
GAMEPAD_AXIS_LZ,
GAMEPAD_AXIS_RX,
- GAMEPAD_AXIS_RY,
+ GAMEPAD_AXIS_RY_NEG, // Inverted.
GAMEPAD_AXIS_RZ,
GAMEPAD_AXIS_LX_NEG,
- GAMEPAD_AXIS_LY_NEG,
+ GAMEPAD_AXIS_LY, // Inverted.
GAMEPAD_AXIS_LZ_NEG,
GAMEPAD_AXIS_RX_NEG,
- GAMEPAD_AXIS_RY_NEG,
+ GAMEPAD_AXIS_RY, // Inverted.
GAMEPAD_AXIS_RZ_NEG,
PROC_PROFILE_0 = PROC_INDEX,
diff --git a/src/lib/profile.ts b/src/lib/profile.ts
index 52ea31f..e92b652 100644
--- a/src/lib/profile.ts
+++ b/src/lib/profile.ts
@@ -29,26 +29,35 @@ export class Profile {
public buttonR1: CtrlButton = new CtrlButton(0, 0, 0),
public buttonR2: CtrlButton = new CtrlButton(0, 0, 0),
public buttonR4: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonDhatLeft: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonDhatRight: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonDhatUp: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonDhatDown: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonDhatUL: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonDhatUR: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonDhatDL: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonDhatDR: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonDhatPush: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonThumbstickLeft: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonThumbstickRight: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonThumbstickUp: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonThumbstickDown: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonThumbstickPush: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonThumbstickInner: CtrlButton = new CtrlButton(0, 0, 0),
- public buttonThumbstickOuter: CtrlButton = new CtrlButton(0, 0, 0),
+ // Left stick.
+ public settingsLStick: CtrlThumbstick = new CtrlThumbstick(0, 0, 0, 0, 0, 0, false, 0, 0),
+ public buttonLStickLeft: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonLStickRight: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonLStickUp: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonLStickDown: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonLStickUL: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonLStickUR: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonLStickDL: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonLStickDR: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonLStickPush: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonLStickInner: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonLStickOuter: CtrlButton = new CtrlButton(0, 0, 0),
+ // Right stick (stick or dhat).
+ public settingsRStick: CtrlThumbstick = new CtrlThumbstick(0, 0, 0, 0, 0, 0, false, 0, 0),
+ public buttonRStickLeft: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonRStickRight: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonRStickUp: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonRStickDown: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonRStickUL: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonRStickUR: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonRStickDL: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonRStickDR: CtrlButton = new CtrlButton(0, 0, 0),
+ public buttonRStickPush: CtrlButton = new CtrlButton(0, 0, 0),
+ // Rotary.
public rotaryUp: CtrlRotary = new CtrlRotary(0, 0),
public rotaryDown: CtrlRotary = new CtrlRotary(0, 0),
- public thumbstick: CtrlThumbstick = new CtrlThumbstick(0, 0, 0, 0, 0, 0, false, 0),
- public gyro: CtrlGyro = new CtrlGyro(0, 0, 0, 0),
+ // Gyro.
+ public settingsGyro: CtrlGyro = new CtrlGyro(0, 0, 0, 0),
public gyroX: CtrlGyroAxis = CtrlGyroAxis.default(),
public gyroY: CtrlGyroAxis = CtrlGyroAxis.default(),
public gyroZ: CtrlGyroAxis = CtrlGyroAxis.default(),
diff --git a/src/lib/profiles.ts b/src/lib/profiles.ts
index a43705d..e63a041 100644
--- a/src/lib/profiles.ts
+++ b/src/lib/profiles.ts
@@ -71,33 +71,41 @@ export class Profiles {
profile.buttonR1 = await getButton(SectionIndex.R1)
profile.buttonR2 = await getButton(SectionIndex.R2)
profile.buttonR4 = await getButton(SectionIndex.R4)
- profile.buttonDhatLeft = await getButton(SectionIndex.DHAT_LEFT)
- profile.buttonDhatRight = await getButton(SectionIndex.DHAT_RIGHT)
- profile.buttonDhatUp = await getButton(SectionIndex.DHAT_UP)
- profile.buttonDhatDown = await getButton(SectionIndex.DHAT_DOWN)
- profile.buttonDhatUL = await getButton(SectionIndex.DHAT_UL)
- profile.buttonDhatUR = await getButton(SectionIndex.DHAT_UR)
- profile.buttonDhatDL = await getButton(SectionIndex.DHAT_DL)
- profile.buttonDhatDR = await getButton(SectionIndex.DHAT_DR)
- profile.buttonDhatPush = await getButton(SectionIndex.DHAT_PUSH)
- profile.buttonThumbstickLeft = await getButton(SectionIndex.THUMBSTICK_LEFT)
- profile.buttonThumbstickRight = await getButton(SectionIndex.THUMBSTICK_RIGHT)
- profile.buttonThumbstickUp = await getButton(SectionIndex.THUMBSTICK_UP)
- profile.buttonThumbstickDown = await getButton(SectionIndex.THUMBSTICK_DOWN)
- profile.buttonThumbstickPush = await getButton(SectionIndex.THUMBSTICK_PUSH)
- profile.buttonThumbstickInner = await getButton(SectionIndex.THUMBSTICK_INNER)
- profile.buttonThumbstickOuter = await getButton(SectionIndex.THUMBSTICK_OUTER)
+ // Left stick.
+ profile.buttonLStickLeft = await getButton(SectionIndex.LSTICK_LEFT)
+ profile.buttonLStickRight = await getButton(SectionIndex.LSTICK_RIGHT)
+ profile.buttonLStickUp = await getButton(SectionIndex.LSTICK_UP)
+ profile.buttonLStickDown = await getButton(SectionIndex.LSTICK_DOWN)
+ profile.buttonLStickUL = await getButton(SectionIndex.LSTICK_UL)
+ profile.buttonLStickUR = await getButton(SectionIndex.LSTICK_UR)
+ profile.buttonLStickDL = await getButton(SectionIndex.LSTICK_DL)
+ profile.buttonLStickDR = await getButton(SectionIndex.LSTICK_DR)
+ profile.buttonLStickPush = await getButton(SectionIndex.LSTICK_PUSH)
+ profile.buttonLStickInner = await getButton(SectionIndex.LSTICK_INNER)
+ profile.buttonLStickOuter = await getButton(SectionIndex.LSTICK_OUTER)
+ // Right stick (thumbstick or dhat).
+ profile.buttonRStickLeft = await getButton(SectionIndex.RSTICK_LEFT)
+ profile.buttonRStickRight = await getButton(SectionIndex.RSTICK_RIGHT)
+ profile.buttonRStickUp = await getButton(SectionIndex.RSTICK_UP)
+ profile.buttonRStickDown = await getButton(SectionIndex.RSTICK_DOWN)
+ profile.buttonRStickUL = await getButton(SectionIndex.RSTICK_UL)
+ profile.buttonRStickUR = await getButton(SectionIndex.RSTICK_UR)
+ profile.buttonRStickDL = await getButton(SectionIndex.RSTICK_DL)
+ profile.buttonRStickDR = await getButton(SectionIndex.RSTICK_DR)
+ profile.buttonRStickPush = await getButton(SectionIndex.RSTICK_PUSH)
// Rotary.
const rotaryUp = await this.device.getSection(profileIndex, SectionIndex.ROTARY_UP) as CtrlRotary
const rotaryDown = await this.device.getSection(profileIndex, SectionIndex.ROTARY_DOWN) as CtrlRotary
profile.rotaryUp = rotaryUp
profile.rotaryDown = rotaryDown
// Thumbstick mode.
- const ts = await this.device.getSection(profileIndex, SectionIndex.THUMBSTICK) as CtrlThumbstick
- profile.thumbstick = ts
+ const lStick = await this.device.getSection(profileIndex, SectionIndex.LSTICK_SETTINGS) as CtrlThumbstick
+ const rStick = await this.device.getSection(profileIndex, SectionIndex.RSTICK_SETTINGS) as CtrlThumbstick
+ profile.settingsLStick = lStick
+ profile.settingsRStick = rStick
// Gyro mode.
- const gyro = await this.device.getSection(profileIndex, SectionIndex.GYRO) as CtrlGyro
- profile.gyro = gyro
+ const gyro = await this.device.getSection(profileIndex, SectionIndex.GYRO_SETTINGS) as CtrlGyro
+ profile.settingsGyro = gyro
// Gyro Axes.
profile.gyroX = await this.device.getSection(profileIndex, SectionIndex.GYRO_X) as CtrlGyroAxis
profile.gyroY = await this.device.getSection(profileIndex, SectionIndex.GYRO_Y) as CtrlGyroAxis