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|
|
// | 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 | |
|
// | | B9 | | B14 | |
|
||||||
// | | B10 | | B15 | |
|
// | | B10 | | B15 | |
|
||||||
@ -34,7 +34,7 @@
|
|||||||
//
|
//
|
||||||
// USB HID joystick map (Fn):
|
// 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 | |
|
// | | 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 buttons: [Button; NUMBER_OF_BUTTONS + 2] = [Button::default(); NUMBER_OF_BUTTONS + 2];
|
||||||
let mut gimbal_mode: u8;
|
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
|
// 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 = 2;
|
||||||
buttons[1].usb_button_sec_enable = true;
|
buttons[1].usb_button_sec_enable = true;
|
||||||
buttons[1].usb_button_sec = 21;
|
buttons[1].usb_button_sec = 21;
|
||||||
@ -322,7 +327,15 @@ fn main() -> ! {
|
|||||||
buttons[3].usb_button_sec = 22;
|
buttons[3].usb_button_sec = 22;
|
||||||
buttons[3].usb_button_sec_trigger_index = 0;
|
buttons[3].usb_button_sec_trigger_index = 0;
|
||||||
buttons[4].usb_button = 5;
|
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 = 6;
|
||||||
buttons[6].usb_button_sec_enable = true;
|
buttons[6].usb_button_sec_enable = true;
|
||||||
buttons[6].usb_button_sec = 7;
|
buttons[6].usb_button_sec = 7;
|
||||||
@ -332,10 +345,10 @@ fn main() -> ! {
|
|||||||
buttons[7].usb_button_sec = 16;
|
buttons[7].usb_button_sec = 16;
|
||||||
buttons[7].usb_button_sec_trigger_index = 0;
|
buttons[7].usb_button_sec_trigger_index = 0;
|
||||||
buttons[8].usb_button = 9;
|
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 = 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 = 11;
|
||||||
buttons[10].usb_button_sec_enable = true;
|
buttons[10].usb_button_sec_enable = true;
|
||||||
buttons[10].usb_button_sec = 23;
|
buttons[10].usb_button_sec = 23;
|
||||||
@ -349,10 +362,10 @@ fn main() -> ! {
|
|||||||
buttons[12].usb_button_sec = 17;
|
buttons[12].usb_button_sec = 17;
|
||||||
buttons[12].usb_button_sec_trigger_index = 0;
|
buttons[12].usb_button_sec_trigger_index = 0;
|
||||||
buttons[13].usb_button = 14;
|
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 = 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 = 18;
|
||||||
buttons[15].usb_button_sec_enable = true;
|
buttons[15].usb_button_sec_enable = true;
|
||||||
buttons[15].usb_button_sec = 20;
|
buttons[15].usb_button_sec = 20;
|
||||||
@ -587,6 +600,12 @@ fn main() -> ! {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Generate led activity when a button is pressed
|
// 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() {
|
for (index, key) in buttons.iter_mut().enumerate() {
|
||||||
if key.pressed != key.previous_pressed {
|
if key.pressed != key.previous_pressed {
|
||||||
key.usb_changed = true;
|
key.usb_changed = true;
|
||||||
@ -596,14 +615,16 @@ fn main() -> ! {
|
|||||||
// Set throttle_hold_value
|
// Set throttle_hold_value
|
||||||
if key.pressed != key.previous_pressed
|
if key.pressed != key.previous_pressed
|
||||||
&& key.pressed
|
&& key.pressed
|
||||||
&& index == 5
|
&& index == TH_BUTTON.into()
|
||||||
|
&& th_trigger_pressed
|
||||||
&& unprocessed_value != AXIS_CENTER
|
&& unprocessed_value != AXIS_CENTER
|
||||||
{
|
{
|
||||||
axis[GIMBAL_AXIS_LEFT_Y].hold = axis[GIMBAL_AXIS_LEFT_Y].value;
|
axis[GIMBAL_AXIS_LEFT_Y].hold = axis[GIMBAL_AXIS_LEFT_Y].value;
|
||||||
axis[GIMBAL_AXIS_LEFT_Y].hold_pending = true;
|
axis[GIMBAL_AXIS_LEFT_Y].hold_pending = true;
|
||||||
} else if key.pressed != key.previous_pressed
|
} else if key.pressed != key.previous_pressed
|
||||||
&& key.pressed
|
&& key.pressed
|
||||||
&& index == 5
|
&& index == TH_BUTTON.into()
|
||||||
|
&& th_trigger_pressed
|
||||||
&& unprocessed_value == AXIS_CENTER
|
&& unprocessed_value == AXIS_CENTER
|
||||||
{
|
{
|
||||||
axis[GIMBAL_AXIS_LEFT_Y].hold = AXIS_CENTER;
|
axis[GIMBAL_AXIS_LEFT_Y].hold = AXIS_CENTER;
|
||||||
@ -796,7 +817,12 @@ fn get_joystick_report(
|
|||||||
// Sec button mode
|
// Sec button mode
|
||||||
} else if key.pressed && key.usb_button_sec != 0 && key.usb_button_sec_pressed {
|
} else if key.pressed && key.usb_button_sec != 0 && key.usb_button_sec_pressed {
|
||||||
buttons |= 1 << (key.usb_button_sec - 1);
|
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);
|
buttons |= 1 << (key.usb_button - 1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user