Updated layout
This commit is contained in:
parent
c3d29e6b49
commit
61bcb0d1f8
@ -22,7 +22,7 @@
|
||||
// ---------------------------------------------------------------
|
||||
// | Fn L| B2 U| B26 U| | B3 | | B28 U| B5 U| B4 L|
|
||||
// ---------------------------------------------------------------
|
||||
// | | TH | B6 | B8 | | B13 | B12 | B11 | |
|
||||
// | | B1 | B6 | B8 | | B13 | B12 | B11 | |
|
||||
// | |
|
||||
// | | B9 | | B14 | |
|
||||
// | | B10 | | B15 | |
|
||||
@ -34,7 +34,7 @@
|
||||
//
|
||||
// USB HID joystick map (Fn):
|
||||
// ---------------------------------------------------------------
|
||||
// | Fn L| B21 U| B27 U| | B3 | | B28 U| B5 U| B22 L|
|
||||
// | Fn L| B21 U| B27 U| | B3 | | B28 U| B32 U| B22 L|
|
||||
// ---------------------------------------------------------------
|
||||
// | | TH | B7 | B16 | | B17 | B24 | B23 | |
|
||||
// | |
|
||||
@ -310,8 +310,13 @@ fn main() -> ! {
|
||||
let mut buttons: [Button; NUMBER_OF_BUTTONS + 2] = [Button::default(); NUMBER_OF_BUTTONS + 2];
|
||||
let mut gimbal_mode: u8;
|
||||
|
||||
// Special button functions
|
||||
// Throttle hold:
|
||||
pub const TH_BUTTON: u8 = 5;
|
||||
pub const TH_BUTTON_TRIGGER: u8 = 0;
|
||||
|
||||
// Set up usb button layout
|
||||
buttons[0].usb_button = 0;
|
||||
buttons[0].usb_button = 0; // Fn
|
||||
buttons[1].usb_button = 2;
|
||||
buttons[1].usb_button_sec_enable = true;
|
||||
buttons[1].usb_button_sec = 21;
|
||||
@ -322,7 +327,15 @@ fn main() -> ! {
|
||||
buttons[3].usb_button_sec = 22;
|
||||
buttons[3].usb_button_sec_trigger_index = 0;
|
||||
buttons[4].usb_button = 5;
|
||||
buttons[5].usb_button = 0;
|
||||
buttons[4].usb_button_sec_enable = true;
|
||||
buttons[4].usb_button_sec = 32;
|
||||
buttons[4].usb_button_sec_trigger_index = 0;
|
||||
buttons[5].usb_button = 1;
|
||||
buttons[5].usb_button_sec_enable = true;
|
||||
// Dummy definition to inhibit button press on throttle hold
|
||||
buttons[5].usb_button_sec = 0;
|
||||
buttons[5].usb_button_sec_trigger_index = 0;
|
||||
// Dummy end -----------------------------------------------
|
||||
buttons[6].usb_button = 6;
|
||||
buttons[6].usb_button_sec_enable = true;
|
||||
buttons[6].usb_button_sec = 7;
|
||||
@ -332,10 +345,10 @@ fn main() -> ! {
|
||||
buttons[7].usb_button_sec = 16;
|
||||
buttons[7].usb_button_sec_trigger_index = 0;
|
||||
buttons[8].usb_button = 9;
|
||||
buttons[8].usb_button_sec_enable = true;
|
||||
buttons[8].usb_button_sec = 29;
|
||||
buttons[8].usb_button_sec_trigger_index = 0;
|
||||
buttons[9].usb_button = 10;
|
||||
buttons[9].usb_button_sec_enable = true;
|
||||
buttons[9].usb_button_sec = 29;
|
||||
buttons[9].usb_button_sec_trigger_index = 0;
|
||||
buttons[10].usb_button = 11;
|
||||
buttons[10].usb_button_sec_enable = true;
|
||||
buttons[10].usb_button_sec = 23;
|
||||
@ -349,10 +362,10 @@ fn main() -> ! {
|
||||
buttons[12].usb_button_sec = 17;
|
||||
buttons[12].usb_button_sec_trigger_index = 0;
|
||||
buttons[13].usb_button = 14;
|
||||
buttons[13].usb_button_sec_enable = true;
|
||||
buttons[13].usb_button_sec = 31;
|
||||
buttons[13].usb_button_sec_trigger_index = 0;
|
||||
buttons[14].usb_button = 15;
|
||||
buttons[14].usb_button_sec_enable = true;
|
||||
buttons[14].usb_button_sec = 31;
|
||||
buttons[14].usb_button_sec_trigger_index = 0;
|
||||
buttons[15].usb_button = 18;
|
||||
buttons[15].usb_button_sec_enable = true;
|
||||
buttons[15].usb_button_sec = 20;
|
||||
@ -587,6 +600,12 @@ fn main() -> ! {
|
||||
}
|
||||
|
||||
// Generate led activity when a button is pressed
|
||||
let mut th_trigger_pressed: bool = false;
|
||||
for (index, key) in buttons.iter_mut().enumerate() {
|
||||
if key.pressed && index == TH_BUTTON_TRIGGER.into() {
|
||||
th_trigger_pressed = true;
|
||||
}
|
||||
}
|
||||
for (index, key) in buttons.iter_mut().enumerate() {
|
||||
if key.pressed != key.previous_pressed {
|
||||
key.usb_changed = true;
|
||||
@ -596,14 +615,16 @@ fn main() -> ! {
|
||||
// Set throttle_hold_value
|
||||
if key.pressed != key.previous_pressed
|
||||
&& key.pressed
|
||||
&& index == 5
|
||||
&& index == TH_BUTTON.into()
|
||||
&& th_trigger_pressed
|
||||
&& unprocessed_value != AXIS_CENTER
|
||||
{
|
||||
axis[GIMBAL_AXIS_LEFT_Y].hold = axis[GIMBAL_AXIS_LEFT_Y].value;
|
||||
axis[GIMBAL_AXIS_LEFT_Y].hold_pending = true;
|
||||
} else if key.pressed != key.previous_pressed
|
||||
&& key.pressed
|
||||
&& index == 5
|
||||
&& index == TH_BUTTON.into()
|
||||
&& th_trigger_pressed
|
||||
&& unprocessed_value == AXIS_CENTER
|
||||
{
|
||||
axis[GIMBAL_AXIS_LEFT_Y].hold = AXIS_CENTER;
|
||||
@ -796,7 +817,12 @@ fn get_joystick_report(
|
||||
// Sec button mode
|
||||
} else if key.pressed && key.usb_button_sec != 0 && key.usb_button_sec_pressed {
|
||||
buttons |= 1 << (key.usb_button_sec - 1);
|
||||
} else if key.pressed && key.usb_button != 0 && !key.usb_button_toggle_enable {
|
||||
// Standard mode
|
||||
} else if key.pressed
|
||||
&& key.usb_button != 0
|
||||
&& !key.usb_button_toggle_enable
|
||||
&& !key.usb_button_sec_pressed
|
||||
{
|
||||
buttons |= 1 << (key.usb_button - 1);
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user