From f8b9ee905c016ac68f6127dd4029e13d15ab413e Mon Sep 17 00:00:00 2001 From: kurokuro-tyan Date: Sat, 11 Jul 2026 14:31:38 +0900 Subject: [PATCH 1/9] Update tdfu_prv.h --- app/src/dfu/tdfu_prv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/dfu/tdfu_prv.h b/app/src/dfu/tdfu_prv.h index d1661018cde..4ae9e5ad3b6 100644 --- a/app/src/dfu/tdfu_prv.h +++ b/app/src/dfu/tdfu_prv.h @@ -1,6 +1,6 @@ #ifndef __MY_DFU_PRIVATE_H__ #define __MY_DFU_PRIVATE_H__ -#include "..\version.h"// +#include "../version.h"// unsigned char *my_dfu_get_prv_data(void); unsigned char my_dfu_get_prv_len(void); From f85e47b41bcf287eeb4720fc09cc24c1b8bb5754 Mon Sep 17 00:00:00 2001 From: kurokuro-tyan Date: Sat, 11 Jul 2026 14:32:24 +0900 Subject: [PATCH 2/9] Update tdfu_prv.h From 55005b571ea2db73de5cc8c2b936455f125e1e95 Mon Sep 17 00:00:00 2001 From: kurokuro-tyan Date: Sat, 11 Jul 2026 20:35:24 +0900 Subject: [PATCH 3/9] test --- app/src/dfu/tdfu_prv.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/dfu/tdfu_prv.h b/app/src/dfu/tdfu_prv.h index 4ae9e5ad3b6..d1661018cde 100644 --- a/app/src/dfu/tdfu_prv.h +++ b/app/src/dfu/tdfu_prv.h @@ -1,6 +1,6 @@ #ifndef __MY_DFU_PRIVATE_H__ #define __MY_DFU_PRIVATE_H__ -#include "../version.h"// +#include "..\version.h"// unsigned char *my_dfu_get_prv_data(void); unsigned char my_dfu_get_prv_len(void); From cec63b80edddeef50883c40406f7463663d94b48 Mon Sep 17 00:00:00 2001 From: kurokuro-tyan Date: Sat, 11 Jul 2026 20:41:13 +0900 Subject: [PATCH 4/9] Update pre-commit.yml --- .github/workflows/pre-commit.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pre-commit.yml b/.github/workflows/pre-commit.yml index a6583d4f71b..b5381f18089 100644 --- a/.github/workflows/pre-commit.yml +++ b/.github/workflows/pre-commit.yml @@ -12,4 +12,4 @@ jobs: - uses: actions/setup-python@v4 with: python-version: 3.x - - uses: pre-commit/action@v3.0.0 + - uses: pre-commit/action@v3.0.1 From 50aa0678082a2ff3c55d2e9fd963520278e6f707 Mon Sep 17 00:00:00 2001 From: kurokuro-tyan Date: Sat, 11 Jul 2026 21:18:19 +0900 Subject: [PATCH 5/9] Update version.h --- app/src/version.h | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/version.h b/app/src/version.h index 2258fe0d7b4..a277b3bb5d7 100644 --- a/app/src/version.h +++ b/app/src/version.h @@ -4,11 +4,11 @@ #if CONFIG_SHIELD_KEYCHRON_B1 #define VERSION_MAJOR 1 #define VERSION_MINOR 0 -#define PATCHLEVEL 4 +#define PATCHLEVEL 4 #elif CONFIG_SHIELD_KEYCHRON_B2 #define VERSION_MAJOR 1 #define VERSION_MINOR 0 -#define PATCHLEVEL 2 +#define PATCHLEVEL 2 #else #define VERSION_MAJOR 1 #define VERSION_MINOR 3 @@ -23,8 +23,8 @@ #define USB_DEC_TO_BCD(dec) ((((dec) / 10) << 4) | ((dec) % 10)) /** USB Device release number (bcdDevice Descriptor field) */ -#define USB_BCD_VER (USB_DEC_TO_BCD(VERSION_MAJOR) << 8 | \ - USB_DEC_TO_BCD((VERSION_MINOR*10)+PATCHLEVEL)) +#define USB_BCD_VER (USB_DEC_TO_BCD(VERSION_MAJOR) << 8 | \ + USB_DEC_TO_BCD((VERSION_MINOR*10)+PATCHLEVEL)) #define VER_STR1(a1,a2,a3,a4) "v"#a1"."#a2"."#a3"-"a4 #define VER_STR(a1,a2,a3,a4) VER_STR1(a1,a2,a3,a4) @@ -34,4 +34,4 @@ //(Get-Item ".\src\version.h").LastWriteTime=$(Get-Date -format o) //read version.h 's timestamp //Get-Item .\src\version.h | Format-List CreationTime, LastAccessTime, LastWriteTime -#endif \ No newline at end of file +#endif From 26a3764e3b3680214a8e6cbe771d1879ba562406 Mon Sep 17 00:00:00 2001 From: kurokuro-tyan Date: Sat, 11 Jul 2026 21:23:23 +0900 Subject: [PATCH 6/9] test2 --- app/src/version.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/version.h b/app/src/version.h index a277b3bb5d7..5e3ca476d7a 100644 --- a/app/src/version.h +++ b/app/src/version.h @@ -23,7 +23,7 @@ #define USB_DEC_TO_BCD(dec) ((((dec) / 10) << 4) | ((dec) % 10)) /** USB Device release number (bcdDevice Descriptor field) */ -#define USB_BCD_VER (USB_DEC_TO_BCD(VERSION_MAJOR) << 8 | \ +#define USB_BCD_VER (USB_DEC_TO_BCD(VERSION_MAJOR) << 8 | \ USB_DEC_TO_BCD((VERSION_MINOR*10)+PATCHLEVEL)) #define VER_STR1(a1,a2,a3,a4) "v"#a1"."#a2"."#a3"-"a4 #define VER_STR(a1,a2,a3,a4) VER_STR1(a1,a2,a3,a4) From 37503632e632b43b83c65b47d032446575ff7769 Mon Sep 17 00:00:00 2001 From: kurokuro-tyan Date: Sat, 11 Jul 2026 21:31:16 +0900 Subject: [PATCH 7/9] =?UTF-8?q?tabs=E7=BD=AE=E3=81=8D=E6=8F=9B=E3=81=88?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 0001-esb-nrf-fix.patch | 92 +- .../arm/keychron/keychron_z1-287f3d87.keymap | 26 +- .../keychron/b1/jis/keychron_b1_jis.keymap | 24 +- .../keychron/b1/uk/keychron_b1_uk.keymap | 24 +- .../keychron/b1/us/keychron_b1_us.keymap | 24 +- .../keychron/b2/jis/keychron_b2_jis.keymap | 24 +- .../keychron/b2/kr/keychron_b2_kr.keymap | 24 +- .../keychron/b2/us/keychron_b2_us.keymap | 24 +- .../keychron/b6/jis/keychron_b6_jis.keymap | 26 +- .../keychron/b6/uk/keychron_b6_uk.keymap | 26 +- .../keychron/b6/us/keychron_b6_us.keymap | 26 +- app/dts/bindings/vendor-prefixes.txt | 2 +- app/include/zmk/endpoints.h | 4 +- app/include/zmk/leds.h | 32 +- app/src/ble.c | 6 +- app/src/dfu/tdfu.c | 1032 ++++++++--------- app/src/dfu/tdfu.h | 68 +- app/src/dfu/tdfu_prv.c | 22 +- app/src/launcher/launcher.c | 8 +- app/src/led_effect.h | 398 +++---- app/src/leds.c | 734 ++++++------ app/src/version.h | 6 +- 22 files changed, 1326 insertions(+), 1326 deletions(-) diff --git a/0001-esb-nrf-fix.patch b/0001-esb-nrf-fix.patch index 12d4c3bbd7b..ed5adf701cc 100644 --- a/0001-esb-nrf-fix.patch +++ b/0001-esb-nrf-fix.patch @@ -14,15 +14,15 @@ index c0b661007..c2014c3ba 100644 --- a/drivers/usb/device/usb_dc_nrfx.c +++ b/drivers/usb/device/usb_dc_nrfx.c @@ -1075,7 +1075,9 @@ static void usbd_event_handler(nrfx_usbd_evt_t const *const p_event) - case NRFX_USBD_EVT_SOF: - if (IS_ENABLED(CONFIG_USB_DEVICE_SOF)) { - evt.evt_type = USBD_EVT_SOF; -- put_evt = true; -+ // put_evt = true; -+ extern uint32_t usb_sof_count; -+ usb_sof_count ++; - } - break; + case NRFX_USBD_EVT_SOF: + if (IS_ENABLED(CONFIG_USB_DEVICE_SOF)) { + evt.evt_type = USBD_EVT_SOF; +- put_evt = true; ++ // put_evt = true; ++ extern uint32_t usb_sof_count; ++ usb_sof_count ++; + } + break; diff --git a/subsys/bluetooth/controller/ll_sw/nordic/lll/lll.c b/subsys/bluetooth/controller/ll_sw/nordic/lll/lll.c index e3ce60282..5bfe7d38d 100644 @@ -38,77 +38,77 @@ index e3ce60282..5bfe7d38d 100644 ISR_DIRECT_DECLARE(radio_nrf5_isr) +#endif /* !CONFIG_DYNAMIC_DIRECT_INTERRUPTS */ { - DEBUG_RADIO_ISR(1); + DEBUG_RADIO_ISR(1); @@ -97,7 +101,9 @@ ISR_DIRECT_DECLARE(radio_nrf5_isr) - lll_prof_exit_radio(); + lll_prof_exit_radio(); - DEBUG_RADIO_ISR(0); + DEBUG_RADIO_ISR(0); +#if !defined(CONFIG_DYNAMIC_DIRECT_INTERRUPTS) - return 1; + return 1; +#endif /* !CONFIG_DYNAMIC_DIRECT_INTERRUPTS */ } static void rtc0_nrf5_isr(const void *arg) @@ -183,7 +189,27 @@ int lll_init(void) - /* Initialize SW IRQ structure */ - hal_swi_init(); + /* Initialize SW IRQ structure */ + hal_swi_init(); +#if defined(CONFIG_DYNAMIC_INTERRUPTS) +#if defined(CONFIG_DYNAMIC_DIRECT_INTERRUPTS) -+ ARM_IRQ_DIRECT_DYNAMIC_CONNECT(RADIO_IRQn, CONFIG_BT_CTLR_LLL_PRIO, -+ IRQ_CONNECT_FLAGS, no_reschedule); -+ irq_connect_dynamic(RADIO_IRQn, CONFIG_BT_CTLR_LLL_PRIO, -+ radio_nrf5_isr, NULL, IRQ_CONNECT_FLAGS); ++ ARM_IRQ_DIRECT_DYNAMIC_CONNECT(RADIO_IRQn, CONFIG_BT_CTLR_LLL_PRIO, ++ IRQ_CONNECT_FLAGS, no_reschedule); ++ irq_connect_dynamic(RADIO_IRQn, CONFIG_BT_CTLR_LLL_PRIO, ++ radio_nrf5_isr, NULL, IRQ_CONNECT_FLAGS); +#else /* !CONFIG_DYNAMIC_DIRECT_INTERRUPTS */ -+ IRQ_DIRECT_CONNECT(RADIO_IRQn, CONFIG_BT_CTLR_LLL_PRIO, -+ radio_nrf5_isr, IRQ_CONNECT_FLAGS); ++ IRQ_DIRECT_CONNECT(RADIO_IRQn, CONFIG_BT_CTLR_LLL_PRIO, ++ radio_nrf5_isr, IRQ_CONNECT_FLAGS); +#endif /* !CONFIG_DYNAMIC_DIRECT_INTERRUPTS */ -+ irq_connect_dynamic(RTC0_IRQn, CONFIG_BT_CTLR_ULL_HIGH_PRIO, -+ rtc0_nrf5_isr, NULL, 0U); -+ irq_connect_dynamic(HAL_SWI_RADIO_IRQ, CONFIG_BT_CTLR_LLL_PRIO, -+ swi_lll_nrf5_isr, NULL, IRQ_CONNECT_FLAGS); ++ irq_connect_dynamic(RTC0_IRQn, CONFIG_BT_CTLR_ULL_HIGH_PRIO, ++ rtc0_nrf5_isr, NULL, 0U); ++ irq_connect_dynamic(HAL_SWI_RADIO_IRQ, CONFIG_BT_CTLR_LLL_PRIO, ++ swi_lll_nrf5_isr, NULL, IRQ_CONNECT_FLAGS); +#if defined(CONFIG_BT_CTLR_LOW_LAT) || \ -+ (CONFIG_BT_CTLR_ULL_HIGH_PRIO != CONFIG_BT_CTLR_ULL_LOW_PRIO) -+ irq_connect_dynamic(HAL_SWI_JOB_IRQ, CONFIG_BT_CTLR_ULL_LOW_PRIO, -+ swi_ull_low_nrf5_isr, NULL, 0U); ++ (CONFIG_BT_CTLR_ULL_HIGH_PRIO != CONFIG_BT_CTLR_ULL_LOW_PRIO) ++ irq_connect_dynamic(HAL_SWI_JOB_IRQ, CONFIG_BT_CTLR_ULL_LOW_PRIO, ++ swi_ull_low_nrf5_isr, NULL, 0U); +#endif +#else /* !CONFIG_DYNAMIC_INTERRUPTS */ - /* Connect ISRs */ - IRQ_DIRECT_CONNECT(RADIO_IRQn, CONFIG_BT_CTLR_LLL_PRIO, - radio_nrf5_isr, IRQ_CONNECT_FLAGS); + /* Connect ISRs */ + IRQ_DIRECT_CONNECT(RADIO_IRQn, CONFIG_BT_CTLR_LLL_PRIO, + radio_nrf5_isr, IRQ_CONNECT_FLAGS); @@ -196,7 +222,8 @@ int lll_init(void) - IRQ_CONNECT(HAL_SWI_JOB_IRQ, CONFIG_BT_CTLR_ULL_LOW_PRIO, - swi_ull_low_nrf5_isr, NULL, 0); + IRQ_CONNECT(HAL_SWI_JOB_IRQ, CONFIG_BT_CTLR_ULL_LOW_PRIO, + swi_ull_low_nrf5_isr, NULL, 0); #endif - +#endif /* !CONFIG_DYNAMIC_INTERRUPTS */ -+ - /* Enable IRQs */ - irq_enable(RADIO_IRQn); - irq_enable(RTC0_IRQn); ++ + /* Enable IRQs */ + irq_enable(RADIO_IRQn); + irq_enable(RTC0_IRQn); diff --git a/subsys/bluetooth/services/bas.c b/subsys/bluetooth/services/bas.c index cf6482d53..ead09c15a 100644 --- a/subsys/bluetooth/services/bas.c +++ b/subsys/bluetooth/services/bas.c @@ -95,5 +95,19 @@ int bt_bas_set_battery_level(uint8_t level) - return rc == -ENOTCONN ? 0 : rc; + return rc == -ENOTCONN ? 0 : rc; } +//add by cwl @2023/11/23 +int bt_bas_set_battery_level_fix(struct bt_conn *conn,uint8_t level) +{ -+ int rc; -+ battery_level = level; -+ if (level > 100U || conn ==NULL) { -+ if(level > 100U) battery_level =100; -+ return -EINVAL; -+ } ++ int rc; ++ battery_level = level; ++ if (level > 100U || conn ==NULL) { ++ if(level > 100U) battery_level =100; ++ return -EINVAL; ++ } + -+ rc = bt_gatt_notify(conn, &bas.attrs[1], &level, sizeof(level)); ++ rc = bt_gatt_notify(conn, &bas.attrs[1], &level, sizeof(level)); + -+ return rc == -ENOTCONN ? 0 : rc; ++ return rc == -ENOTCONN ? 0 : rc; +} SYS_INIT(bas_init, APPLICATION, CONFIG_APPLICATION_INIT_PRIORITY); diff --git a/app/boards/arm/keychron/keychron_z1-287f3d87.keymap b/app/boards/arm/keychron/keychron_z1-287f3d87.keymap index bc061a0b81e..0c37a4e00ee 100644 --- a/app/boards/arm/keychron/keychron_z1-287f3d87.keymap +++ b/app/boards/arm/keychron/keychron_z1-287f3d87.keymap @@ -202,8 +202,8 @@ label ="user_custom"; #binding-cells =<1>; }; - keymap { - compatible = "zmk,keymap"; + keymap { + compatible = "zmk,keymap"; //mac default_layer { bindings = < @@ -232,14 +232,14 @@ >; }; //win - layer_two { - bindings = < - &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp PSCRN &kp SLCK &kp PAUS &kp C_AL_CALC &uc LG(TAB) &uc LG(LC(LEFT)) &uc LG(LC(RIGHT)) //21 - &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp INS &kp HOME &kp PG_UP &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS //42 - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp DEL &kp END &kp PG_DN &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS //63 - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 //63+21-5 - &kp LSHFT &kp NUBS &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp KP_N1 &kp KP_N2 &kp KP_N3 //79+21-5 - &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RGUI &mo 3 &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER + layer_two { + bindings = < + &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp PSCRN &kp SLCK &kp PAUS &kp C_AL_CALC &uc LG(TAB) &uc LG(LC(LEFT)) &uc LG(LC(RIGHT)) //21 + &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp INS &kp HOME &kp PG_UP &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS //42 + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp DEL &kp END &kp PG_DN &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS //63 + &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 //63+21-5 + &kp LSHFT &kp NUBS &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp KP_N1 &kp KP_N2 &kp KP_N3 //79+21-5 + &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RGUI &mo 3 &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER // &none &out OUT_BLE &out OUT_24G &out OUT_CHG &out OUT_CHGD >; @@ -260,9 +260,9 @@ }; - + - }; + }; }; - + diff --git a/app/boards/shields/keychron/b1/jis/keychron_b1_jis.keymap b/app/boards/shields/keychron/b1/jis/keychron_b1_jis.keymap index 145cca9f282..353b479fc66 100644 --- a/app/boards/shields/keychron/b1/jis/keychron_b1_jis.keymap +++ b/app/boards/shields/keychron/b1/jis/keychron_b1_jis.keymap @@ -190,8 +190,8 @@ #binding-cells =<1>; }; - keymap { - compatible = "zmk,keymap"; + keymap { + compatible = "zmk,keymap"; //mac default_layer { bindings = < @@ -220,13 +220,13 @@ }; //win layer_two { - bindings = < - &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL - &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp INT3 &kp BSPC - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp INT1 &kp RSHFT - &kp LCTRL &kp LGUI &kp LALT &kp INT5 &kp SPACE &kp INT4 &kp RALT &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT + bindings = < + &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL + &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp INT3 &kp BSPC + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT + &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp INT1 &kp RSHFT + &kp LCTRL &kp LGUI &kp LALT &kp INT5 &kp SPACE &kp INT4 &kp RALT &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT // &none &out OUT_BLE &out OUT_24G &out OUT_CHG &out OUT_CHGD >; @@ -247,9 +247,9 @@ }; - + - }; + }; }; - + diff --git a/app/boards/shields/keychron/b1/uk/keychron_b1_uk.keymap b/app/boards/shields/keychron/b1/uk/keychron_b1_uk.keymap index 4e90e435d2b..d9d7e5df222 100644 --- a/app/boards/shields/keychron/b1/uk/keychron_b1_uk.keymap +++ b/app/boards/shields/keychron/b1/uk/keychron_b1_uk.keymap @@ -190,8 +190,8 @@ #binding-cells =<1>; }; - keymap { - compatible = "zmk,keymap"; + keymap { + compatible = "zmk,keymap"; //mac default_layer { bindings = < @@ -220,13 +220,13 @@ }; //win layer_two { - bindings = < - &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL - &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET - &kp LSHFT &kp NUBS &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT - &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT + bindings = < + &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL + &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT + &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET + &kp LSHFT &kp NUBS &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT // &none &out OUT_BLE &out OUT_24G &out OUT_CHG &out OUT_CHGD >; @@ -247,9 +247,9 @@ }; - + - }; + }; }; - + diff --git a/app/boards/shields/keychron/b1/us/keychron_b1_us.keymap b/app/boards/shields/keychron/b1/us/keychron_b1_us.keymap index 9714174cde3..f40f623c87a 100644 --- a/app/boards/shields/keychron/b1/us/keychron_b1_us.keymap +++ b/app/boards/shields/keychron/b1/us/keychron_b1_us.keymap @@ -190,8 +190,8 @@ #binding-cells =<1>; }; - keymap { - compatible = "zmk,keymap"; + keymap { + compatible = "zmk,keymap"; //mac default_layer { bindings = < @@ -220,13 +220,13 @@ }; //win layer_two { - bindings = < - &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL - &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT - &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT + bindings = < + &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp DEL + &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH + &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT + &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT // &none &out OUT_BLE &out OUT_24G &out OUT_CHG &out OUT_CHGD >; @@ -247,9 +247,9 @@ }; - + - }; + }; }; - + diff --git a/app/boards/shields/keychron/b2/jis/keychron_b2_jis.keymap b/app/boards/shields/keychron/b2/jis/keychron_b2_jis.keymap index 8b3a4a85fff..407d4552d19 100644 --- a/app/boards/shields/keychron/b2/jis/keychron_b2_jis.keymap +++ b/app/boards/shields/keychron/b2/jis/keychron_b2_jis.keymap @@ -190,8 +190,8 @@ #binding-cells =<1>; }; - keymap { - compatible = "zmk,keymap"; + keymap { + compatible = "zmk,keymap"; //mac default_layer { bindings = < @@ -220,13 +220,13 @@ }; //win layer_two { - bindings = < - &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp DEL &kp HOME &kp PG_UP &kp PG_DN - &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp INT3 &kp BSPC &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp INT1 &kp RSHFT &kp KP_N1 &kp KP_N2 &kp KP_N3 - &kp LCTRL &kp LGUI &kp LALT &kp INT5 &kp SPACE &kp INT4 &kp RALT &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER + bindings = < + &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp DEL &kp HOME &kp PG_UP &kp PG_DN + &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp INT3 &kp BSPC &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS + &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp INT1 &kp RSHFT &kp KP_N1 &kp KP_N2 &kp KP_N3 + &kp LCTRL &kp LGUI &kp LALT &kp INT5 &kp SPACE &kp INT4 &kp RALT &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER // &none &out OUT_BLE &out OUT_24G &out OUT_CHG &out OUT_CHGD >; @@ -247,9 +247,9 @@ }; - + - }; + }; }; - + diff --git a/app/boards/shields/keychron/b2/kr/keychron_b2_kr.keymap b/app/boards/shields/keychron/b2/kr/keychron_b2_kr.keymap index d3dbab76caf..54868776954 100644 --- a/app/boards/shields/keychron/b2/kr/keychron_b2_kr.keymap +++ b/app/boards/shields/keychron/b2/kr/keychron_b2_kr.keymap @@ -190,8 +190,8 @@ #binding-cells =<1>; }; - keymap { - compatible = "zmk,keymap"; + keymap { + compatible = "zmk,keymap"; //mac default_layer { bindings = < @@ -220,13 +220,13 @@ }; //win layer_two { - bindings = < - &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp C_AL_CALC &uc LG(TAB) &uc LG(LC(LEFT)) &uc LG(LC(RIGHT)) - &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp KP_N1 &kp KP_N2 &kp KP_N3 - &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp LANG1 &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER + bindings = < + &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp C_AL_CALC &uc LG(TAB) &uc LG(LC(LEFT)) &uc LG(LC(RIGHT)) + &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS + &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp KP_N1 &kp KP_N2 &kp KP_N3 + &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp LANG1 &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER // &none &out OUT_BLE &out OUT_24G &out OUT_CHG &out OUT_CHGD >; @@ -247,9 +247,9 @@ }; - + - }; + }; }; - + diff --git a/app/boards/shields/keychron/b2/us/keychron_b2_us.keymap b/app/boards/shields/keychron/b2/us/keychron_b2_us.keymap index dfd28a5fbed..597f3aa8ce6 100644 --- a/app/boards/shields/keychron/b2/us/keychron_b2_us.keymap +++ b/app/boards/shields/keychron/b2/us/keychron_b2_us.keymap @@ -190,8 +190,8 @@ #binding-cells =<1>; }; - keymap { - compatible = "zmk,keymap"; + keymap { + compatible = "zmk,keymap"; //mac default_layer { bindings = < @@ -220,13 +220,13 @@ }; //win layer_two { - bindings = < - &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp DEL &kp HOME &kp PG_UP &kp PG_DN - &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp KP_N1 &kp KP_N2 &kp KP_N3 - &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER + bindings = < + &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp DEL &kp HOME &kp PG_UP &kp PG_DN + &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS + &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp KP_N1 &kp KP_N2 &kp KP_N3 + &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &mo 3 &kp LEFT &kp UP &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER // &none &out OUT_BLE &out OUT_24G &out OUT_CHG &out OUT_CHGD >; @@ -247,9 +247,9 @@ }; - + - }; + }; }; - + diff --git a/app/boards/shields/keychron/b6/jis/keychron_b6_jis.keymap b/app/boards/shields/keychron/b6/jis/keychron_b6_jis.keymap index 5b8b6b4231e..240530a6192 100644 --- a/app/boards/shields/keychron/b6/jis/keychron_b6_jis.keymap +++ b/app/boards/shields/keychron/b6/jis/keychron_b6_jis.keymap @@ -202,8 +202,8 @@ label ="user_custom"; #binding-cells =<1>; }; - keymap { - compatible = "zmk,keymap"; + keymap { + compatible = "zmk,keymap"; //mac default_layer { bindings = < @@ -232,14 +232,14 @@ >; }; //win - layer_two { - bindings = < - &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp PSCRN &kp SLCK &kp PAUS &kp C_AL_CALC &uc LG(TAB) &uc LG(LC(LEFT)) &uc LG(LC(RIGHT)) //21 - &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp INT3 &kp BSPC &kp INS &kp HOME &kp PG_UP &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS //42 - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp DEL &kp END &kp PG_DN &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS //63 - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 //63+21-5 - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp INT1 &kp RSHFT &kp UP &kp KP_N1 &kp KP_N2 &kp KP_N3 //79+21-5 - &kp LCTRL &kp LGUI &kp LALT &kp INT5 &kp SPACE &kp INT4 &kp RALT &mo 3 &kp RGUI &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER + layer_two { + bindings = < + &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp PSCRN &kp SLCK &kp PAUS &kp C_AL_CALC &uc LG(TAB) &uc LG(LC(LEFT)) &uc LG(LC(RIGHT)) //21 + &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp INT3 &kp BSPC &kp INS &kp HOME &kp PG_UP &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS //42 + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp DEL &kp END &kp PG_DN &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS //63 + &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 //63+21-5 + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp INT1 &kp RSHFT &kp UP &kp KP_N1 &kp KP_N2 &kp KP_N3 //79+21-5 + &kp LCTRL &kp LGUI &kp LALT &kp INT5 &kp SPACE &kp INT4 &kp RALT &mo 3 &kp RGUI &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER // &none &out OUT_BLE &out OUT_24G &out OUT_CHG &out OUT_CHGD >; @@ -260,9 +260,9 @@ }; - + - }; + }; }; - + diff --git a/app/boards/shields/keychron/b6/uk/keychron_b6_uk.keymap b/app/boards/shields/keychron/b6/uk/keychron_b6_uk.keymap index 0646f763f2f..8658bf797f7 100644 --- a/app/boards/shields/keychron/b6/uk/keychron_b6_uk.keymap +++ b/app/boards/shields/keychron/b6/uk/keychron_b6_uk.keymap @@ -201,8 +201,8 @@ label ="user_custom"; #binding-cells =<1>; }; - keymap { - compatible = "zmk,keymap"; + keymap { + compatible = "zmk,keymap"; //mac default_layer { bindings = < @@ -231,14 +231,14 @@ >; }; //win - layer_two { - bindings = < - &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp PSCRN &kp SLCK &kp PAUS &kp C_AL_CALC &uc LG(TAB) &uc LG(LC(LEFT)) &uc LG(LC(RIGHT)) //21 - &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp INS &kp HOME &kp PG_UP &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS //42 - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp DEL &kp END &kp PG_DN &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS //63 - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 //63+21-5 - &kp LSHFT &kp NUBS &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp KP_N1 &kp KP_N2 &kp KP_N3 //79+21-5 - &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RGUI &mo 3 &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER + layer_two { + bindings = < + &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp PSCRN &kp SLCK &kp PAUS &kp C_AL_CALC &uc LG(TAB) &uc LG(LC(LEFT)) &uc LG(LC(RIGHT)) //21 + &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp INS &kp HOME &kp PG_UP &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS //42 + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp DEL &kp END &kp PG_DN &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS //63 + &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp NUHS &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 //63+21-5 + &kp LSHFT &kp NUBS &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp KP_N1 &kp KP_N2 &kp KP_N3 //79+21-5 + &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RGUI &mo 3 &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER // &none &out OUT_BLE &out OUT_24G &out OUT_CHG &out OUT_CHGD >; @@ -259,9 +259,9 @@ }; - + - }; + }; }; - + diff --git a/app/boards/shields/keychron/b6/us/keychron_b6_us.keymap b/app/boards/shields/keychron/b6/us/keychron_b6_us.keymap index fbb7be638ae..31e7cccff09 100644 --- a/app/boards/shields/keychron/b6/us/keychron_b6_us.keymap +++ b/app/boards/shields/keychron/b6/us/keychron_b6_us.keymap @@ -202,8 +202,8 @@ label ="user_custom"; #binding-cells =<1>; }; - keymap { - compatible = "zmk,keymap"; + keymap { + compatible = "zmk,keymap"; //mac default_layer { bindings = < @@ -231,14 +231,14 @@ >; }; //win - layer_two { - bindings = < - &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp PSCRN &kp SLCK &kp PAUS &kp C_AL_CALC &uc LG(TAB) &uc LG(LC(LEFT)) &uc LG(LC(RIGHT)) //21 - &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp INS &kp HOME &kp PG_UP &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS //42 - &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp DEL &kp END &kp PG_DN &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS //63 - &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 //63+21-5 - &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp KP_N1 &kp KP_N2 &kp KP_N3 //79+21-5 - &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RGUI &mo 3 &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER + layer_two { + bindings = < + &kp ESC &kp F1 &kp F2 &kp F3 &kp F4 &kp F5 &kp F6 &kp F7 &kp F8 &kp F9 &kp F10 &kp F11 &kp F12 &kp F13 &kp PSCRN &kp SLCK &kp PAUS &kp C_AL_CALC &uc LG(TAB) &uc LG(LC(LEFT)) &uc LG(LC(RIGHT)) //21 + &kp GRAVE &kp N1 &kp N2 &kp N3 &kp N4 &kp N5 &kp N6 &kp N7 &kp N8 &kp N9 &kp N0 &kp MINUS &kp EQUAL &kp BSPC &kp INS &kp HOME &kp PG_UP &kp KP_NLCK &kp KP_SLASH &kp KP_ASTERISK &kp KP_MINUS //42 + &kp TAB &kp Q &kp W &kp E &kp R &kp T &kp Y &kp U &kp I &kp O &kp P &kp LBKT &kp RBKT &kp BSLH &kp DEL &kp END &kp PG_DN &kp KP_N7 &kp KP_N8 &kp KP_N9 &kp KP_PLUS //63 + &kp CLCK &kp A &kp S &kp D &kp F &kp G &kp H &kp J &kp K &kp L &kp SEMI &kp SQT &kp RET &kp KP_N4 &kp KP_N5 &kp KP_N6 //63+21-5 + &kp LSHFT &kp Z &kp X &kp C &kp V &kp B &kp N &kp M &kp COMMA &kp DOT &kp FSLH &kp RSHFT &kp UP &kp KP_N1 &kp KP_N2 &kp KP_N3 //79+21-5 + &kp LCTRL &kp LGUI &kp LALT &kp SPACE &kp RALT &kp RGUI &mo 3 &kp RCTRL &kp LEFT &kp DOWN &kp RIGHT &kp KP_N0 &kp KP_DOT &kp KP_ENTER // &none &out OUT_BLE &out OUT_24G &out OUT_CHG &out OUT_CHGD >; @@ -258,9 +258,9 @@ }; - + - }; + }; }; - + diff --git a/app/dts/bindings/vendor-prefixes.txt b/app/dts/bindings/vendor-prefixes.txt index 72066dfb94f..cded0dfe0a4 100644 --- a/app/dts/bindings/vendor-prefixes.txt +++ b/app/dts/bindings/vendor-prefixes.txt @@ -1 +1 @@ -zmk ZMK Project \ No newline at end of file +zmk ZMK Project \ No newline at end of file diff --git a/app/include/zmk/endpoints.h b/app/include/zmk/endpoints.h index af197c92b33..71d72eb568f 100644 --- a/app/include/zmk/endpoints.h +++ b/app/include/zmk/endpoints.h @@ -27,8 +27,8 @@ #endif enum { - REBOOT_ENDPOINT_BLE=0xc0, - REBOOT_ENDPOINT_24G + REBOOT_ENDPOINT_BLE=0xc0, + REBOOT_ENDPOINT_24G }; /** * The total number of different (struct zmk_endpoint_instance) values that can diff --git a/app/include/zmk/leds.h b/app/include/zmk/leds.h index dd64ecee370..638b9a53976 100644 --- a/app/include/zmk/leds.h +++ b/app/include/zmk/leds.h @@ -12,23 +12,23 @@ void led_bat_display(void); void led_bat_display_off(void); uint8_t get_charge_led_state(void); enum { - LED_PEER_STATE_DISCONNECTED, - LED_PEER_STATE_CONNECTED, - LED_PEER_STATE_PAIR, - LED_PEER_STATE_RECONN, - LED_PEER_STATE_FAILE, - LED_PEER_STATE_POWER_ON, - LED_PEER_STATE_ON_100MS, - LED_PEER_STATE_BAT_LOW, - LED_PEER_STATE_BAT_CHARGING, - LED_PEER_STATE_BAT_CHARGEDONE, - LED_PEER_STATE_RECOVER, + LED_PEER_STATE_DISCONNECTED, + LED_PEER_STATE_CONNECTED, + LED_PEER_STATE_PAIR, + LED_PEER_STATE_RECONN, + LED_PEER_STATE_FAILE, + LED_PEER_STATE_POWER_ON, + LED_PEER_STATE_ON_100MS, + LED_PEER_STATE_BAT_LOW, + LED_PEER_STATE_BAT_CHARGING, + LED_PEER_STATE_BAT_CHARGEDONE, + LED_PEER_STATE_RECOVER, }; enum { - LED_BAT_NONE, - LED_BAT_CHARGING, - LED_BAT_CHARGE_DONE, - LED_BAT_LOW, - LED_BAT_SHUT_DOWN, + LED_BAT_NONE, + LED_BAT_CHARGING, + LED_BAT_CHARGE_DONE, + LED_BAT_LOW, + LED_BAT_SHUT_DOWN, }; #endif \ No newline at end of file diff --git a/app/src/ble.c b/app/src/ble.c index acebe3e6a05..c79b483e197 100644 --- a/app/src/ble.c +++ b/app/src/ble.c @@ -210,9 +210,9 @@ struct switch_to_adv switch_state; // static uint8_t switch_to_pair; /* Bonded address queue. */ // K_MSGQ_DEFINE(bonds_queue, -// sizeof(bt_addr_le_t), -// CONFIG_BT_MAX_PAIRED, -// 4); +// sizeof(bt_addr_le_t), +// CONFIG_BT_MAX_PAIRED, +// 4); static void bond_cnt_cb(const struct bt_bond_info *info, void *user_data) { size_t *cnt = user_data; diff --git a/app/src/dfu/tdfu.c b/app/src/dfu/tdfu.c index 5dbdbb07656..945e25e8954 100644 --- a/app/src/dfu/tdfu.c +++ b/app/src/dfu/tdfu.c @@ -41,72 +41,72 @@ static unsigned short flash_wr_temp_idx=0; int zmk_usb_hid_send_report(const uint8_t *report, size_t len); int zmk_usb_hid_via_send(const uint8_t *report, size_t len); #if EN_ZEPHYR_DFU -#define SLOT0_PARTITION slot0_partition -#define SLOT1_PARTITION slot1_partition +#define SLOT0_PARTITION slot0_partition +#define SLOT1_PARTITION slot1_partition #define FIRMWARE_IMAGE_0_LABEL "image_0" #define FIRMWARE_IMAGE_1_LABEL "image_1" -#define USB_DFU_MAX_XFER_SIZE 32//CONFIG_USB_REQUEST_BUFFER_SIZE +#define USB_DFU_MAX_XFER_SIZE 32//CONFIG_USB_REQUEST_BUFFER_SIZE enum dfu_state { - appIDLE, - appDETACH, - dfuIDLE, - dfuDNLOAD_SYNC, - dfuDNBUSY, - dfuDNLOAD_IDLE, - dfuMANIFEST_SYNC, - dfuMANIFEST, - dfuMANIFEST_WAIT_RST, - dfuUPLOAD_IDLE, - dfuERROR, + appIDLE, + appDETACH, + dfuIDLE, + dfuDNLOAD_SYNC, + dfuDNBUSY, + dfuDNLOAD_IDLE, + dfuMANIFEST_SYNC, + dfuMANIFEST, + dfuMANIFEST_WAIT_RST, + dfuUPLOAD_IDLE, + dfuERROR, }; enum dfu_status { - statusOK, - errTARGET, - errFILE, - errWRITE, - errERASE, - errCHECK_ERASED, - errPROG, - errVERIFY, - errADDRESS, - errNOTDONE, - errFIRMWARE, - errVENDOR, - errUSB, - errPOR, - errUNKNOWN, - errSTALLEDPKT + statusOK, + errTARGET, + errFILE, + errWRITE, + errERASE, + errCHECK_ERASED, + errPROG, + errVERIFY, + errADDRESS, + errNOTDONE, + errFIRMWARE, + errVENDOR, + errUSB, + errPOR, + errUNKNOWN, + errSTALLEDPKT }; #if FIXED_PARTITION_EXISTS(SLOT1_PARTITION) - #define DOWNLOAD_FLASH_AREA_ID FIXED_PARTITION_ID(SLOT1_PARTITION) + #define DOWNLOAD_FLASH_AREA_ID FIXED_PARTITION_ID(SLOT1_PARTITION) #else - #define DOWNLOAD_FLASH_AREA_ID FIXED_PARTITION_ID(SLOT0_PARTITION) + #define DOWNLOAD_FLASH_AREA_ID FIXED_PARTITION_ID(SLOT0_PARTITION) #endif struct dfu_worker_data_t { - uint8_t buf[USB_DFU_MAX_XFER_SIZE]; - enum dfu_state worker_state; - uint16_t worker_len; + uint8_t buf[USB_DFU_MAX_XFER_SIZE]; + enum dfu_state worker_state; + uint16_t worker_len; }; struct dfu_data_t { - uint8_t flash_area_id; - uint32_t flash_upload_size; - /* Number of bytes sent during upload */ - uint32_t bytes_sent; - uint32_t alt_setting; /* DFU alternate setting */ - struct flash_img_context ctx; - enum dfu_state state; /* State of the DFU device */ - enum dfu_status status; /* Status of the DFU device */ - uint16_t block_nr; /* DFU block number */ - uint16_t bwPollTimeout; + uint8_t flash_area_id; + uint32_t flash_upload_size; + /* Number of bytes sent during upload */ + uint32_t bytes_sent; + uint32_t alt_setting; /* DFU alternate setting */ + struct flash_img_context ctx; + enum dfu_state state; /* State of the DFU device */ + enum dfu_status status; /* Status of the DFU device */ + uint16_t block_nr; /* DFU block number */ + uint16_t bwPollTimeout; }; static struct dfu_data_t dfu_data = { - .state = appIDLE, - .status = statusOK, - .flash_area_id = DOWNLOAD_FLASH_AREA_ID, - .alt_setting = 0, - .bwPollTimeout = 0, + .state = appIDLE, + .status = statusOK, + .flash_area_id = DOWNLOAD_FLASH_AREA_ID, + .alt_setting = 0, + .bwPollTimeout = 0, }; static struct dfu_worker_data_t dfu_data_worker; static struct k_work dfu_work; @@ -115,365 +115,365 @@ static void dfu_work_handler(struct k_work *item); #ifndef USE_VIA_USAGE_PAGE int usb_send_user_if_data(uint8_t id, uint8_t *data,uint8_t len) { - uint8_t buf[33]={0}; - buf[0]=id; - memcpy(buf+1,data,len); - // LOG_HEXDUMP_DBG(buf,33,"tx"); - return zmk_usb_hid_send_report(buf,sizeof(buf)); + uint8_t buf[33]={0}; + buf[0]=id; + memcpy(buf+1,data,len); + // LOG_HEXDUMP_DBG(buf,33,"tx"); + return zmk_usb_hid_send_report(buf,sizeof(buf)); } #else int usb_send_user_if_data(uint8_t id, uint8_t *data,uint8_t len) { - uint8_t buf[32]={0}; - buf[0]=0x03; - memcpy(buf+1,data,len>31?31:len); - return zmk_usb_hid_via_send(buf,sizeof(buf)); + uint8_t buf[32]={0}; + buf[0]=0x03; + memcpy(buf+1,data,len>31?31:len); + return zmk_usb_hid_via_send(buf,sizeof(buf)); } int usb_send_user_if_data_1(uint8_t id, uint8_t *data,uint8_t len) { - uint8_t buf[32]={0}; + uint8_t buf[32]={0}; - memcpy(buf,data,len); - return zmk_usb_hid_via_send(buf,sizeof(buf)); + memcpy(buf,data,len); + return zmk_usb_hid_via_send(buf,sizeof(buf)); } #endif #if EN_ZEPHYR_DFU static void dfu_reset_counters(void) { - dfu_data.bytes_sent = 0U; - dfu_data.block_nr = 0U; - dfu_data.state = dfuIDLE; - if (flash_img_init(&dfu_data.ctx)) { - LOG_ERR("flash img init error"); - dfu_data.state = dfuERROR; - dfu_data.status = errUNKNOWN; - } - - LOG_DBG("."); + dfu_data.bytes_sent = 0U; + dfu_data.block_nr = 0U; + dfu_data.state = dfuIDLE; + if (flash_img_init(&dfu_data.ctx)) { + LOG_ERR("flash img init error"); + dfu_data.state = dfuERROR; + dfu_data.status = errUNKNOWN; + } + + LOG_DBG("."); } static void dfu_flash_write(uint8_t *data, size_t len) { - bool flush = false; + bool flush = false; - if (!len) { - /* Download completed */ - flush = true; - } + if (!len) { + /* Download completed */ + flush = true; + } - if (flash_img_buffered_write(&dfu_data.ctx, data, len, flush)) { - LOG_ERR("flash write error"); - dfu_data.state = dfuERROR; - dfu_data.status = errWRITE; - sc_dfu_enable =0; - } else if (!len) { - const bool should_confirm = true;//IS_ENABLED(CONFIG_USB_DFU_PERMANENT_DOWNLOAD); + if (flash_img_buffered_write(&dfu_data.ctx, data, len, flush)) { + LOG_ERR("flash write error"); + dfu_data.state = dfuERROR; + dfu_data.status = errWRITE; + sc_dfu_enable =0; + } else if (!len) { + const bool should_confirm = true;//IS_ENABLED(CONFIG_USB_DFU_PERMANENT_DOWNLOAD); - LOG_DBG("flash write done"); - dfu_data.state = dfuMANIFEST_SYNC; + LOG_DBG("flash write done"); + dfu_data.state = dfuMANIFEST_SYNC; - LOG_DBG("Should confirm: %d", should_confirm); - if (boot_request_upgrade(should_confirm)) { - dfu_data.state = dfuERROR; - dfu_data.status = errWRITE; - } + LOG_DBG("Should confirm: %d", should_confirm); + if (boot_request_upgrade(should_confirm)) { + dfu_data.state = dfuERROR; + dfu_data.status = errWRITE; + } - } else { - dfu_data.state = dfuDNLOAD_IDLE; - } + } else { + dfu_data.state = dfuDNLOAD_IDLE; + } - // LOG_DBG("bytes written 0x%x", flash_img_bytes_written(&dfu_data.ctx)); + // LOG_DBG("bytes written 0x%x", flash_img_bytes_written(&dfu_data.ctx)); } static void dfu_work_handler(struct k_work *item) { - ARG_UNUSED(item); + ARG_UNUSED(item); - switch (dfu_data_worker.worker_state) { - case dfuIDLE: + switch (dfu_data_worker.worker_state) { + case dfuIDLE: /* * If progressive erase is enabled, then erase take place while * image collection, so not erase whole bank at DFU beginning */ #ifndef CONFIG_IMG_ERASE_PROGRESSIVELY - if (boot_erase_img_bank(DOWNLOAD_FLASH_AREA_ID)) { - dfu_data.state = dfuERROR; - dfu_data.status = errERASE; - break; - } + if (boot_erase_img_bank(DOWNLOAD_FLASH_AREA_ID)) { + dfu_data.state = dfuERROR; + dfu_data.status = errERASE; + break; + } #endif - case dfuDNLOAD_IDLE: - dfu_flash_write(dfu_data_worker.buf, - dfu_data_worker.worker_len); - break; - default: - LOG_ERR("OUT of state machine"); - break; - } + case dfuDNLOAD_IDLE: + dfu_flash_write(dfu_data_worker.buf, + dfu_data_worker.worker_len); + break; + default: + LOG_ERR("OUT of state machine"); + break; + } } #endif void my_scdfu_init(void) { - + } static unsigned char fw_sc_upgrade_over_myhid_start(void) -{ - sc_dfu_enable=1; - dfu_location=0; - sc_dfu_sq=0; - sc_dfu_wait_reboot=0; - Dfu_CRC_Val = 0xFFFFFFFF; - Dfu_CRC_Val_for_XXTEA =0xFFFFFFFF; - - flash_wr_temp_idx=0; - last_sn = 0; - +{ + sc_dfu_enable=1; + dfu_location=0; + sc_dfu_sq=0; + sc_dfu_wait_reboot=0; + Dfu_CRC_Val = 0xFFFFFFFF; + Dfu_CRC_Val_for_XXTEA =0xFFFFFFFF; + + flash_wr_temp_idx=0; + last_sn = 0; + #if (WATCH_DOG_ENABLE == 1) - app_watchdog_close(); - app_watchdog_open(MY_DFU_WATCH_DOG_TIMEOUT_MS, RESET_ALL_EXCEPT_AON); + app_watchdog_close(); + app_watchdog_open(MY_DFU_WATCH_DOG_TIMEOUT_MS, RESET_ALL_EXCEPT_AON); #endif -#if EN_ZEPHYR_DFU - k_work_init(&dfu_work, dfu_work_handler); - dfu_reset_counters(); -#endif - return 0; +#if EN_ZEPHYR_DFU + k_work_init(&dfu_work, dfu_work_handler); + dfu_reset_counters(); +#endif + return 0; } static void dfu_commit_temp_buff_to_flash(void) { -#if EN_ZEPHYR_DFU - dfu_flash_write(NULL,0); -#endif +#if EN_ZEPHYR_DFU + dfu_flash_write(NULL,0); +#endif } static unsigned char fw_sc_upgrade_over_myhid_write_to_flash(unsigned char *pdata ,unsigned char len) { - + #if EN_ZEPHYR_DFU - switch (dfu_data.state) { - case dfuIDLE: - LOG_DBG("DFU_DNLOAD start"); - dfu_reset_counters(); - - if (dfu_data.flash_area_id != DOWNLOAD_FLASH_AREA_ID) { - dfu_data.status = errWRITE; - dfu_data.state = dfuERROR; - LOG_ERR("This area can not be overwritten"); - break; - } - LOG_INF("flash id:%d",dfu_data.flash_area_id); - dfu_data.state = dfuDNBUSY; - dfu_data_worker.worker_state = dfuIDLE; - dfu_data_worker.worker_len = len; - memcpy(dfu_data_worker.buf, pdata, len); - k_work_submit_to_queue(&USB_WORK_Q, &dfu_work); - break; - case dfuDNLOAD_IDLE: - dfu_data.state = dfuDNBUSY; - dfu_data_worker.worker_state = dfuDNLOAD_IDLE; - dfu_data_worker.worker_len = len; - - memcpy(dfu_data_worker.buf, pdata, len); - k_work_submit_to_queue(&USB_WORK_Q, &dfu_work); - break; - default: - LOG_ERR("DFU_DNLOAD wrong state %d", dfu_data.state); - dfu_data.state = dfuERROR; - dfu_data.status = errUNKNOWN; - dfu_reset_counters(); - return -EINVAL; - } - - return dfu_data.state !=dfuERROR; + switch (dfu_data.state) { + case dfuIDLE: + LOG_DBG("DFU_DNLOAD start"); + dfu_reset_counters(); + + if (dfu_data.flash_area_id != DOWNLOAD_FLASH_AREA_ID) { + dfu_data.status = errWRITE; + dfu_data.state = dfuERROR; + LOG_ERR("This area can not be overwritten"); + break; + } + LOG_INF("flash id:%d",dfu_data.flash_area_id); + dfu_data.state = dfuDNBUSY; + dfu_data_worker.worker_state = dfuIDLE; + dfu_data_worker.worker_len = len; + memcpy(dfu_data_worker.buf, pdata, len); + k_work_submit_to_queue(&USB_WORK_Q, &dfu_work); + break; + case dfuDNLOAD_IDLE: + dfu_data.state = dfuDNBUSY; + dfu_data_worker.worker_state = dfuDNLOAD_IDLE; + dfu_data_worker.worker_len = len; + + memcpy(dfu_data_worker.buf, pdata, len); + k_work_submit_to_queue(&USB_WORK_Q, &dfu_work); + break; + default: + LOG_ERR("DFU_DNLOAD wrong state %d", dfu_data.state); + dfu_data.state = dfuERROR; + dfu_data.status = errUNKNOWN; + dfu_reset_counters(); + return -EINVAL; + } + + return dfu_data.state !=dfuERROR; #else - return 0; -#endif + return 0; +#endif } /* */ static void fw_sc_upgrade_rsp_ack(unsigned char *pdata,unsigned char len) { -#ifdef USE_VIA_USAGE_PAGE - #define MAX_SIZE (32-1) +#ifdef USE_VIA_USAGE_PAGE + #define MAX_SIZE (32-1) #else - #define MAX_SIZE (32) -#endif - CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)pdata; - unsigned short sum; - - len+=2; //len of sum - - ackhdr->hdr_h = 0x55; - ackhdr->hdr_l = 0xaa; - ackhdr->len = len; - ackhdr->len_n = ~len; - ackhdr->sn = sc_dfu_sn++; - - if(sc_dfu_sn==0) - sc_dfu_sn=1; - - sum=0; - for(unsigned char i=0;i<(len-2);i++) - sum+=sc_dfu_rsp_buf[i+5]; - - pdata[5+len-2] = sum&0xff; - pdata[5+len-1] = (sum>>8)&0xff; - - int ret = FW_SC_UPGRADE_HID_REPORT_SEND(MY_DFU_RPT_INPUT_ID,pdata,MAX_SIZE); - - - - //retry again - if(ret) - { - - ret = FW_SC_UPGRADE_HID_REPORT_SEND(MY_DFU_RPT_INPUT_ID,pdata,MAX_SIZE); - } - - if(ret==0) - { - if((len+5)>MAX_SIZE) - { - - #ifndef USE_VIA_USAGE_PAGE - ret = FW_SC_UPGRADE_HID_REPORT_SEND(MY_DFU_RPT_INPUT_ID,(pdata+MAX_SIZE),MAX_SIZE); - #else - ret = usb_send_user_if_data_1(MY_DFU_RPT_INPUT_ID,(pdata+MAX_SIZE),MAX_SIZE); - #endif - - if(ret) - { - #ifndef USE_VIA_USAGE_PAGE - ret = FW_SC_UPGRADE_HID_REPORT_SEND(MY_DFU_RPT_INPUT_ID,(pdata+32),MAX_SIZE); - #else - ret=usb_send_user_if_data_1(MY_DFU_RPT_INPUT_ID,(pdata+MAX_SIZE),MAX_SIZE); - #endif - } - } - } - - if(ret) - { - LOG_DBG("fw_sc_upgrade_rsp_ack fail,ret = %d",ret); - sc_dfu_enable = 0; - } + #define MAX_SIZE (32) +#endif + CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)pdata; + unsigned short sum; + + len+=2; //len of sum + + ackhdr->hdr_h = 0x55; + ackhdr->hdr_l = 0xaa; + ackhdr->len = len; + ackhdr->len_n = ~len; + ackhdr->sn = sc_dfu_sn++; + + if(sc_dfu_sn==0) + sc_dfu_sn=1; + + sum=0; + for(unsigned char i=0;i<(len-2);i++) + sum+=sc_dfu_rsp_buf[i+5]; + + pdata[5+len-2] = sum&0xff; + pdata[5+len-1] = (sum>>8)&0xff; + + int ret = FW_SC_UPGRADE_HID_REPORT_SEND(MY_DFU_RPT_INPUT_ID,pdata,MAX_SIZE); + + + + //retry again + if(ret) + { + + ret = FW_SC_UPGRADE_HID_REPORT_SEND(MY_DFU_RPT_INPUT_ID,pdata,MAX_SIZE); + } + + if(ret==0) + { + if((len+5)>MAX_SIZE) + { + + #ifndef USE_VIA_USAGE_PAGE + ret = FW_SC_UPGRADE_HID_REPORT_SEND(MY_DFU_RPT_INPUT_ID,(pdata+MAX_SIZE),MAX_SIZE); + #else + ret = usb_send_user_if_data_1(MY_DFU_RPT_INPUT_ID,(pdata+MAX_SIZE),MAX_SIZE); + #endif + + if(ret) + { + #ifndef USE_VIA_USAGE_PAGE + ret = FW_SC_UPGRADE_HID_REPORT_SEND(MY_DFU_RPT_INPUT_ID,(pdata+32),MAX_SIZE); + #else + ret=usb_send_user_if_data_1(MY_DFU_RPT_INPUT_ID,(pdata+MAX_SIZE),MAX_SIZE); + #endif + } + } + } + + if(ret) + { + LOG_DBG("fw_sc_upgrade_rsp_ack fail,ret = %d",ret); + sc_dfu_enable = 0; + } } static void fw_sc_upgrade_rsp_model_info(unsigned char sn) { - //unsigned char rsp_idx=0; - BT_INFORMATION_TYPE *ackpkt = (BT_INFORMATION_TYPE *)(&sc_dfu_rsp_buf[9]); - unsigned char str_len; - CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; - - memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); - - ackhdr->rsp_cmd = TX__OTA_REPORT; //rsp type - ackhdr->ack_sn = sn; - ackhdr->ack_cmd =SCFWU_OPCODE_GET_MODEL_INFO; - ackhdr->ack_status = 0; - - ackpkt->BR_LE_mode = SUPPORT_LE|SUPPORT_RF; - ackpkt->bluetooth_version = 0x03; - ackpkt->command_version[0] = 0x01; - - //model string - for(unsigned char i=0;i<10;i++) - { - ackpkt->model_number[i]=0; - ackpkt->fw_version[i]=0; - ackpkt->hw_version[i]=0; - } - - str_len=sizeof(MY_FWU_STRING_NAME)-1; - if(str_len>10) - str_len=10; - memcpy(((unsigned char*)(ackpkt->model_number)),MY_FWU_STRING_NAME,str_len); - - str_len=sizeof(MY_FW_VERSION)-1; - if(str_len>10) - str_len=10; - memcpy(((unsigned char*)(ackpkt->fw_version)),MY_FW_VERSION,str_len); - - str_len=sizeof(MY_HW_VERSION)-1; - if(str_len>10) - str_len=10; - memcpy(((unsigned char*)(ackpkt->hw_version)),MY_HW_VERSION,str_len); - - fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,sizeof(BT_INFORMATION_TYPE)+4); + //unsigned char rsp_idx=0; + BT_INFORMATION_TYPE *ackpkt = (BT_INFORMATION_TYPE *)(&sc_dfu_rsp_buf[9]); + unsigned char str_len; + CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; + + memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); + + ackhdr->rsp_cmd = TX__OTA_REPORT; //rsp type + ackhdr->ack_sn = sn; + ackhdr->ack_cmd =SCFWU_OPCODE_GET_MODEL_INFO; + ackhdr->ack_status = 0; + + ackpkt->BR_LE_mode = SUPPORT_LE|SUPPORT_RF; + ackpkt->bluetooth_version = 0x03; + ackpkt->command_version[0] = 0x01; + + //model string + for(unsigned char i=0;i<10;i++) + { + ackpkt->model_number[i]=0; + ackpkt->fw_version[i]=0; + ackpkt->hw_version[i]=0; + } + + str_len=sizeof(MY_FWU_STRING_NAME)-1; + if(str_len>10) + str_len=10; + memcpy(((unsigned char*)(ackpkt->model_number)),MY_FWU_STRING_NAME,str_len); + + str_len=sizeof(MY_FW_VERSION)-1; + if(str_len>10) + str_len=10; + memcpy(((unsigned char*)(ackpkt->fw_version)),MY_FW_VERSION,str_len); + + str_len=sizeof(MY_HW_VERSION)-1; + if(str_len>10) + str_len=10; + memcpy(((unsigned char*)(ackpkt->hw_version)),MY_HW_VERSION,str_len); + + fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,sizeof(BT_INFORMATION_TYPE)+4); } static void fw_sc_upgrade_rsp_dfu_version(unsigned char sn) { - tDFU_VERSION *ackpkt = (tDFU_VERSION *)(&sc_dfu_rsp_buf[9]); - CMD_RSP_HDR *ackhdr= (CMD_RSP_HDR *)sc_dfu_rsp_buf; - - memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); - - ackpkt->dfu_version_l = DFU_VERSION_VALUE&0xff; - ackpkt->dfu_version_h = (DFU_VERSION_VALUE>>8) & 0xff; - ackpkt->encrytion_m = DFU_ENC_SUPPORT; - - ackhdr->rsp_cmd = TX__OTA_REPORT; //rsp type - ackhdr->ack_sn = sn; - ackhdr->ack_cmd =SCFWU_OPCODE_GET_DFU_VERSION; - ackhdr->ack_status = 0; - - fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,sizeof(tDFU_VERSION)+4); + tDFU_VERSION *ackpkt = (tDFU_VERSION *)(&sc_dfu_rsp_buf[9]); + CMD_RSP_HDR *ackhdr= (CMD_RSP_HDR *)sc_dfu_rsp_buf; + + memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); + + ackpkt->dfu_version_l = DFU_VERSION_VALUE&0xff; + ackpkt->dfu_version_h = (DFU_VERSION_VALUE>>8) & 0xff; + ackpkt->encrytion_m = DFU_ENC_SUPPORT; + + ackhdr->rsp_cmd = TX__OTA_REPORT; //rsp type + ackhdr->ack_sn = sn; + ackhdr->ack_cmd =SCFWU_OPCODE_GET_DFU_VERSION; + ackhdr->ack_status = 0; + + fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,sizeof(tDFU_VERSION)+4); } static void fw_sc_upgrade_set_security_level(unsigned char sn,unsigned char mode) { - CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; - - memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); - - if(mode<=DFU_ENC_AES128) - sc_dfu_security_mode=mode; + CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; + + memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); + + if(mode<=DFU_ENC_AES128) + sc_dfu_security_mode=mode; -#if(MY_DFU_TRACE_ENABLE) +#if(MY_DFU_TRACE_ENABLE) - LOG_DBG("sc_dfu_security_mode = %d \r\n",sc_dfu_security_mode); + LOG_DBG("sc_dfu_security_mode = %d \r\n",sc_dfu_security_mode); #endif - ackhdr->rsp_cmd = TX__OTA_REPORT; //rsp type - ackhdr->ack_sn = sn; - ackhdr->ack_cmd =SCFWU_OPCODE_SET_SC_METHOED; - ackhdr->ack_status =(mode<=DFU_ENC_AES128)?0:1; - - fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,5+4); + ackhdr->rsp_cmd = TX__OTA_REPORT; //rsp type + ackhdr->ack_sn = sn; + ackhdr->ack_cmd =SCFWU_OPCODE_SET_SC_METHOED; + ackhdr->ack_status =(mode<=DFU_ENC_AES128)?0:1; + + fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,5+4); } static void fw_sc_upgrade_ack_success(unsigned char sn,unsigned char rx_cmd) { - CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; - memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); - - ackhdr->rsp_cmd = TX__RSP_RX_CMD_SUCCESS; //rsp type - ackhdr->ack_sn = sn; - ackhdr->ack_cmd = rx_cmd; - ackhdr->ack_status = 0; - - fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,1+4); + CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; + memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); + + ackhdr->rsp_cmd = TX__RSP_RX_CMD_SUCCESS; //rsp type + ackhdr->ack_sn = sn; + ackhdr->ack_cmd = rx_cmd; + ackhdr->ack_status = 0; + + fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,1+4); } static void fw_sc_upgrade_ack_fail(unsigned char sn,unsigned char rx_cmd,unsigned char reason) { - CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; - memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); - - ackhdr->rsp_cmd = TX__RSP_RX_CMD_SUCCESS; //rsp type - ackhdr->ack_sn = sn; - ackhdr->ack_cmd = rx_cmd; - ackhdr->ack_status = reason; - - fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,4); + CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; + memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); + + ackhdr->rsp_cmd = TX__RSP_RX_CMD_SUCCESS; //rsp type + ackhdr->ack_sn = sn; + ackhdr->ack_cmd = rx_cmd; + ackhdr->ack_status = reason; + + fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,4); } UINT32 CRC32(UINT32 crcval, UINT8 *buf, UINT32 length) @@ -509,231 +509,231 @@ UINT32 CRC32(UINT32 crcval, UINT8 *buf, UINT32 length) static void fw_sc_upgrade_write_bin_handle(unsigned char sn, unsigned char *dfu_data,unsigned char len) { - unsigned char ret=0; - - if(!sc_dfu_enable) - { - fw_sc_upgrade_ack_fail(sn,SCFWU_OPCODE_SEND_BIN,0x01); - return ; - } + unsigned char ret=0; + + if(!sc_dfu_enable) + { + fw_sc_upgrade_ack_fail(sn,SCFWU_OPCODE_SEND_BIN,0x01); + return ; + } - if(last_sn==sn) - { - fw_sc_upgrade_ack_success(sn,SCFWU_OPCODE_SEND_BIN); - return ; - } - - last_sn = sn; + if(last_sn==sn) + { + fw_sc_upgrade_ack_success(sn,SCFWU_OPCODE_SEND_BIN); + return ; + } + + last_sn = sn; - if(sc_dfu_security_mode==DFU_ENC_NONE) - { - Dfu_CRC_Val = CRC32(Dfu_CRC_Val, dfu_data, len); - } + if(sc_dfu_security_mode==DFU_ENC_NONE) + { + Dfu_CRC_Val = CRC32(Dfu_CRC_Val, dfu_data, len); + } - - ret=fw_sc_upgrade_over_myhid_write_to_flash(dfu_data,len); + + ret=fw_sc_upgrade_over_myhid_write_to_flash(dfu_data,len); - if(ret==0) - fw_sc_upgrade_ack_success(sn,SCFWU_OPCODE_SEND_BIN); - else - fw_sc_upgrade_ack_fail(sn,SCFWU_OPCODE_SEND_BIN,0x01); + if(ret==0) + fw_sc_upgrade_ack_success(sn,SCFWU_OPCODE_SEND_BIN); + else + fw_sc_upgrade_ack_fail(sn,SCFWU_OPCODE_SEND_BIN,0x01); } static void fw_sc_upgrade_verify_crc(unsigned char sn,unsigned char *pdata ,unsigned char len) { - unsigned int Ciphertext_CRC32; - unsigned int Plaintext_CRC32; - unsigned char crc=1; - - unsigned char *ackpkt = &sc_dfu_rsp_buf[9]; - CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; - - memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); - - Ciphertext_CRC32=0; - Ciphertext_CRC32|= (pdata[0] & 0xff); - Ciphertext_CRC32|= ((pdata[1]<<8) & 0xff00); - Ciphertext_CRC32|= ((pdata[2]<<16) & 0xff0000); - Ciphertext_CRC32|= ((pdata[3]<<24) & 0xff000000); - - Plaintext_CRC32=0; - Plaintext_CRC32|= (pdata[4] & 0xff); - Plaintext_CRC32|= ((pdata[5]<<8) & 0xff00); - Plaintext_CRC32|= ((pdata[6]<<16) & 0xff0000); - Plaintext_CRC32|= ((pdata[7]<<24) & 0xff000000); - -#if(MY_DFU_TRACE_ENABLE) - - LOG_DBG("fw_sc_upgrade_verify_crc(%d),rx crc:%x,%x,cal crc:%x,%x\r\n",sc_dfu_security_mode,Ciphertext_CRC32,Plaintext_CRC32,Dfu_CRC_Val,Dfu_CRC_Val_for_XXTEA); + unsigned int Ciphertext_CRC32; + unsigned int Plaintext_CRC32; + unsigned char crc=1; + + unsigned char *ackpkt = &sc_dfu_rsp_buf[9]; + CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; + + memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); + + Ciphertext_CRC32=0; + Ciphertext_CRC32|= (pdata[0] & 0xff); + Ciphertext_CRC32|= ((pdata[1]<<8) & 0xff00); + Ciphertext_CRC32|= ((pdata[2]<<16) & 0xff0000); + Ciphertext_CRC32|= ((pdata[3]<<24) & 0xff000000); + + Plaintext_CRC32=0; + Plaintext_CRC32|= (pdata[4] & 0xff); + Plaintext_CRC32|= ((pdata[5]<<8) & 0xff00); + Plaintext_CRC32|= ((pdata[6]<<16) & 0xff0000); + Plaintext_CRC32|= ((pdata[7]<<24) & 0xff000000); + +#if(MY_DFU_TRACE_ENABLE) + + LOG_DBG("fw_sc_upgrade_verify_crc(%d),rx crc:%x,%x,cal crc:%x,%x\r\n",sc_dfu_security_mode,Ciphertext_CRC32,Plaintext_CRC32,Dfu_CRC_Val,Dfu_CRC_Val_for_XXTEA); #endif - if(sc_dfu_security_mode==DFU_ENC_NONE) - { - if((Ciphertext_CRC32==Plaintext_CRC32) - && (Ciphertext_CRC32==Dfu_CRC_Val)) - { - crc=0; - } - } - - - ackhdr->rsp_cmd = TX__OTA_REPORT; //rsp type - ackhdr->ack_sn = sn; - ackhdr->ack_cmd = SCFWU_OPCODE_VERIFY_CRC32; - ackhdr->ack_status = 0; - - if(crc==0) - { - bool check_result = false; - #if EN_ZEPHYR_DFU - check_result = dfu_data.state != dfuERROR; - #endif - if(check_result==false) - { - crc = 2;//error - LOG_ERR("crc:%d",crc); - } - } - - ackpkt[0]= crc; - - fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,1+4); + if(sc_dfu_security_mode==DFU_ENC_NONE) + { + if((Ciphertext_CRC32==Plaintext_CRC32) + && (Ciphertext_CRC32==Dfu_CRC_Val)) + { + crc=0; + } + } + + + ackhdr->rsp_cmd = TX__OTA_REPORT; //rsp type + ackhdr->ack_sn = sn; + ackhdr->ack_cmd = SCFWU_OPCODE_VERIFY_CRC32; + ackhdr->ack_status = 0; + + if(crc==0) + { + bool check_result = false; + #if EN_ZEPHYR_DFU + check_result = dfu_data.state != dfuERROR; + #endif + if(check_result==false) + { + crc = 2;//error + LOG_ERR("crc:%d",crc); + } + } + + ackpkt[0]= crc; + + fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,1+4); } static unsigned char fw_sc_upgrade_image_switch(unsigned char sn) { - if(sc_dfu_enable) - sys_reboot(SYS_REBOOT_WARM); - return 1; + if(sc_dfu_enable) + sys_reboot(SYS_REBOOT_WARM); + return 1; } static void fw_sc_upgrade_build_info(unsigned char sn) { - CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; - unsigned char *str_buf = &sc_dfu_rsp_buf[9]; - unsigned char offset=0; - - memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); - - ackhdr->rsp_cmd = TX__OTA_REPORT; //rsp type - ackhdr->ack_sn = sn; - ackhdr->ack_cmd =APP_CMD_DFU_BUILD_INFO; - ackhdr->ack_status = 0; - - memcpy(str_buf,__DATE__,sizeof(__DATE__)); - str_buf[sizeof(__DATE__)-1]=' '; - offset += sizeof(__DATE__); - memcpy(str_buf+sizeof(__DATE__),__TIME__,sizeof(__TIME__)); - offset += sizeof(__TIME__); - - fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,offset+4); + CMD_RSP_HDR *ackhdr=(CMD_RSP_HDR *)sc_dfu_rsp_buf; + unsigned char *str_buf = &sc_dfu_rsp_buf[9]; + unsigned char offset=0; + + memset(sc_dfu_rsp_buf,0,sizeof(sc_dfu_rsp_buf)); + + ackhdr->rsp_cmd = TX__OTA_REPORT; //rsp type + ackhdr->ack_sn = sn; + ackhdr->ack_cmd =APP_CMD_DFU_BUILD_INFO; + ackhdr->ack_status = 0; + + memcpy(str_buf,__DATE__,sizeof(__DATE__)); + str_buf[sizeof(__DATE__)-1]=' '; + offset += sizeof(__DATE__); + memcpy(str_buf+sizeof(__DATE__),__TIME__,sizeof(__TIME__)); + offset += sizeof(__TIME__); + + fw_sc_upgrade_rsp_ack(sc_dfu_rsp_buf,offset+4); } void my_scdfu_data_handle(unsigned char *pdata,unsigned char rxlen) { - unsigned short hdr = 0; - unsigned char len = pdata[2]; - unsigned char len_n = (~pdata[3]); - unsigned char sn = pdata[4]; - - hdr= pdata[1]; - hdr |= pdata[0]<<8; - - if((hdr == SC_FWU_HEADER)||(hdr == SC_FWU_HEADER_ACK)) - { - if((len == len_n) && (len >2)) - { - unsigned short sum = 0; - unsigned short sum_rx=0; - unsigned char len_of_dfu = len -2; - unsigned char op_code = pdata[5]; - - for(unsigned char i=0;irsp_cmd = TX__OTA_REPORT; //rsp type - ackhdr->ack_sn = sn; - ackhdr->ack_cmd = 0xf2; - ackhdr->ack_status = 0; - - if(len>50) - len=50; - - for(unsigned char i=0;i2)) + { + unsigned short sum = 0; + unsigned short sum_rx=0; + unsigned char len_of_dfu = len -2; + unsigned char op_code = pdata[5]; + + for(unsigned char i=0;irsp_cmd = TX__OTA_REPORT; //rsp type + ackhdr->ack_sn = sn; + ackhdr->ack_cmd = 0xf2; + ackhdr->ack_status = 0; + + if(len>50) + len=50; + + for(unsigned char i=0;ic); i++) { - brightness += color->c[i]; - } - brightness /= ARRAY_SIZE(color->c); + for (size_t i = 0; i < ARRAY_SIZE(color->c); i++) { + brightness += color->c[i]; + } + brightness /= ARRAY_SIZE(color->c); - return led_set_brightness(led->dev, 0, brightness); + return led_set_brightness(led->dev, 0, brightness); } static int set_color_all_channels(struct led *led, struct led_color *color) { - int err = 0; + int err = 0; - for (size_t i = 0; (i < ARRAY_SIZE(color->c)) && !err; i++) { - err = led_set_brightness(led->dev, i, color->c[i]); - } + for (size_t i = 0; (i < ARRAY_SIZE(color->c)) && !err; i++) { + err = led_set_brightness(led->dev, i, color->c[i]); + } - return err; + return err; } static void set_color(struct led *led, struct led_color *color) { - int err; - // LOG_INF("color:%d,%d,%d",color->c[0],color->c[1],color->c[1]); - if (led->color_count == ARRAY_SIZE(color->c)) { - err = set_color_all_channels(led, color); - } else { - err = set_color_one_channel(led, color); - } - - if (err) { - LOG_ERR("Cannot set LED brightness (err: %d)", err); - } + int err; + // LOG_INF("color:%d,%d,%d",color->c[0],color->c[1],color->c[1]); + if (led->color_count == ARRAY_SIZE(color->c)) { + err = set_color_all_channels(led, color); + } else { + err = set_color_one_channel(led, color); + } + + if (err) { + LOG_ERR("Cannot set LED brightness (err: %d)", err); + } } static void set_off(struct led *led) { - struct led_color nocolor = {0}; + struct led_color nocolor = {0}; - set_color(led, &nocolor); + set_color(led, &nocolor); } // static void work_handler(struct k_work *work) static void timer_handler(struct k_timer *timer) { - // struct led *led = CONTAINER_OF(work, struct led, work); - struct led *led = CONTAINER_OF(timer, struct led, timer); - // LOG_INF("led ptr:%x,time:%d,%d",led,led->effect->steps[0].substep_time,led->effect->steps[1].substep_time); - const struct led_effect_step *effect_step = - &led->effect->steps[led->effect_step]; - - __ASSERT_NO_MSG(effect_step->substep_count > 0); - int substeps_left = effect_step->substep_count - led->effect_substep; - - for (size_t i = 0; i < ARRAY_SIZE(led->color.c); i++) { - int diff = (effect_step->color.c[i] - led->color.c[i]) / - substeps_left; - led->color.c[i] += diff; - } - set_color(led, &led->color); - - led->effect_substep++; - if (led->effect_substep == effect_step->substep_count) { - led->effect_substep = 0; - led->effect_step++; - - if (led->effect_step == led->effect->step_count) { - if (led->effect->loop_forever) { - led->effect_step = 0; - } else { - LOG_INF("led:%p effect finish",led); - if((led == &leds[ARRAY_SIZE(leds)-1]) && (led->effect == &led_peer_state_effect[LED_PEER_STATE_POWER_ON])) - { - LOG_INF("power_on_finish"); - // k_sem_give(&power_on_sem); - // k_timer_stop(&mode_check); - led_power_on_status =0; - k_work_submit(&power_on_finish); - } - - } - } - } - - if (led->effect_step < led->effect->step_count) { - int32_t next_delay = - led->effect->steps[led->effect_step].substep_time; - // LOG_INF("led ptr:%x,led->effect_step:%d,next delay:%d",led,led->effect_step,next_delay); - // k_work_reschedule(&led->work, K_MSEC(next_delay)); - k_timer_start(&led->timer,K_MSEC(next_delay),K_FOREVER); - } + // struct led *led = CONTAINER_OF(work, struct led, work); + struct led *led = CONTAINER_OF(timer, struct led, timer); + // LOG_INF("led ptr:%x,time:%d,%d",led,led->effect->steps[0].substep_time,led->effect->steps[1].substep_time); + const struct led_effect_step *effect_step = + &led->effect->steps[led->effect_step]; + + __ASSERT_NO_MSG(effect_step->substep_count > 0); + int substeps_left = effect_step->substep_count - led->effect_substep; + + for (size_t i = 0; i < ARRAY_SIZE(led->color.c); i++) { + int diff = (effect_step->color.c[i] - led->color.c[i]) / + substeps_left; + led->color.c[i] += diff; + } + set_color(led, &led->color); + + led->effect_substep++; + if (led->effect_substep == effect_step->substep_count) { + led->effect_substep = 0; + led->effect_step++; + + if (led->effect_step == led->effect->step_count) { + if (led->effect->loop_forever) { + led->effect_step = 0; + } else { + LOG_INF("led:%p effect finish",led); + if((led == &leds[ARRAY_SIZE(leds)-1]) && (led->effect == &led_peer_state_effect[LED_PEER_STATE_POWER_ON])) + { + LOG_INF("power_on_finish"); + // k_sem_give(&power_on_sem); + // k_timer_stop(&mode_check); + led_power_on_status =0; + k_work_submit(&power_on_finish); + } + + } + } + } + + if (led->effect_step < led->effect->step_count) { + int32_t next_delay = + led->effect->steps[led->effect_step].substep_time; + // LOG_INF("led ptr:%x,led->effect_step:%d,next delay:%d",led,led->effect_step,next_delay); + // k_work_reschedule(&led->work, K_MSEC(next_delay)); + k_timer_start(&led->timer,K_MSEC(next_delay),K_FOREVER); + } } static void led_update(struct led *led) { - // k_work_cancel_delayable(&led->work); - k_timer_stop(&led->timer); - - led->effect_step = 0; - led->effect_substep = 0; - - if (!led->effect) { - LOG_DBG("No effect set"); - return; - } - - __ASSERT_NO_MSG(led->effect->steps); - - if (led->effect->step_count > 0) { - int32_t next_delay = - led->effect->steps[led->effect_step].substep_time; - LOG_INF("next delay:%d",next_delay); - // k_work_reschedule(&led->work, K_MSEC(next_delay)); - k_timer_start(&led->timer,K_MSEC(next_delay),K_FOREVER); - } else { - LOG_WRN("LED effect with no effect"); - } + // k_work_cancel_delayable(&led->work); + k_timer_stop(&led->timer); + + led->effect_step = 0; + led->effect_substep = 0; + + if (!led->effect) { + LOG_DBG("No effect set"); + return; + } + + __ASSERT_NO_MSG(led->effect->steps); + + if (led->effect->step_count > 0) { + int32_t next_delay = + led->effect->steps[led->effect_step].substep_time; + LOG_INF("next delay:%d",next_delay); + // k_work_reschedule(&led->work, K_MSEC(next_delay)); + k_timer_start(&led->timer,K_MSEC(next_delay),K_FOREVER); + } else { + LOG_WRN("LED effect with no effect"); + } } void print_led_info(const struct device *dev,uint32_t led); int leds_init(const struct device *_arg) { - int err = 0; - - BUILD_ASSERT(DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) > 0, "No LEDs defined"); - - for (size_t i = 0; (i < ARRAY_SIZE(leds)) && !err; i++) { - struct led *led = &leds[i]; - LOG_INF("led :%d,color count:%d",i,led->color_count); - // print_led_info(led->dev,i); - if(led->color_count>3) continue; - __ASSERT_NO_MSG((led->color_count == 1) || (led->color_count == 3)); - - if (!device_is_ready(led->dev)) { - LOG_ERR("Device %s is not ready", led->dev->name); - err = -ENODEV; - } else { - // k_work_init_delayable(&led->work, work_handler); - k_timer_init(&led->timer,timer_handler,NULL); - - // led_set_state(i,LED_PEER_STATE_POWER_ON); - // led->effect = &led_peer_state_effect[LED_PEER_STATE_POWER_ON]; - - led_update(led); - } - } - // k_work_reschedule(&test_led_work, K_MSEC(1000)); - return err; + int err = 0; + + BUILD_ASSERT(DT_HAS_COMPAT_STATUS_OKAY(DT_DRV_COMPAT) > 0, "No LEDs defined"); + + for (size_t i = 0; (i < ARRAY_SIZE(leds)) && !err; i++) { + struct led *led = &leds[i]; + LOG_INF("led :%d,color count:%d",i,led->color_count); + // print_led_info(led->dev,i); + if(led->color_count>3) continue; + __ASSERT_NO_MSG((led->color_count == 1) || (led->color_count == 3)); + + if (!device_is_ready(led->dev)) { + LOG_ERR("Device %s is not ready", led->dev->name); + err = -ENODEV; + } else { + // k_work_init_delayable(&led->work, work_handler); + k_timer_init(&led->timer,timer_handler,NULL); + + // led_set_state(i,LED_PEER_STATE_POWER_ON); + // led->effect = &led_peer_state_effect[LED_PEER_STATE_POWER_ON]; + + led_update(led); + } + } + // k_work_reschedule(&test_led_work, K_MSEC(1000)); + return err; } void leds_start(void) { - for (size_t i = 0; i < ARRAY_SIZE(leds); i++) { + for (size_t i = 0; i < ARRAY_SIZE(leds); i++) { #if defined(CONFIG_PM_DEVICE) && !defined(CONFIG_ZMK_LEDS_GPIO) - /* Zephyr power management API is not implemented for GPIO LEDs. - * LEDs are turned off by CAF LEDs module. - */ - int err = pm_device_action_run(leds[i].dev, PM_DEVICE_ACTION_RESUME); - - if (err) { - LOG_ERR("Failed to set LED driver into active state (err: %d)", err); - } + /* Zephyr power management API is not implemented for GPIO LEDs. + * LEDs are turned off by CAF LEDs module. + */ + int err = pm_device_action_run(leds[i].dev, PM_DEVICE_ACTION_RESUME); + + if (err) { + LOG_ERR("Failed to set LED driver into active state (err: %d)", err); + } #endif - led_update(&leds[i]); - } + led_update(&leds[i]); + } } void leds_stop(void) { - for (size_t i = 0; i < ARRAY_SIZE(leds); i++) { - // k_work_cancel_delayable(&leds[i].work); - k_timer_stop(&leds[i].timer); + for (size_t i = 0; i < ARRAY_SIZE(leds); i++) { + // k_work_cancel_delayable(&leds[i].work); + k_timer_stop(&leds[i].timer); - set_off(&leds[i]); + set_off(&leds[i]); #if defined(CONFIG_PM_DEVICE) && !defined(CONFIG_ZMK_LEDS_GPIO) - /* Zephyr power management API is not implemented for GPIO LEDs. - * LEDs are turned off by CAF LEDs module. - */ - int err = pm_device_action_run(leds[i].dev, PM_DEVICE_ACTION_SUSPEND); - - if (err) { - LOG_ERR("Failed to set LED driver into suspend state (err: %d)", err); - } + /* Zephyr power management API is not implemented for GPIO LEDs. + * LEDs are turned off by CAF LEDs module. + */ + int err = pm_device_action_run(leds[i].dev, PM_DEVICE_ACTION_SUSPEND); + + if (err) { + LOG_ERR("Failed to set LED driver into suspend state (err: %d)", err); + } #endif - } + } } void led_set_state(uint8_t index,uint8_t led_state) { - LOG_INF("led_set_state index:%d,state:%d",index,led_state); - if(index< ARRAY_SIZE(leds)) - { - //why leds in dts is enable? - for(int i=0;i #include struct led_gpio_config { - size_t num_leds; - const struct gpio_dt_spec *led; + size_t num_leds; + const struct gpio_dt_spec *led; }; void print_led_info(const struct device *dev,uint32_t led) { - const struct led_gpio_config *config = dev->config; - const struct gpio_dt_spec *led_gpio; - LOG_INF("LED NUM:%d,dev name:%s",config->num_leds,dev->name); - - for(int i=0;inum_leds;i++) - { - led_gpio = &config->led[i]; - LOG_INF("LED gpio pin:%d",led_gpio->pin); - } - // keyboard_led_init(); + const struct led_gpio_config *config = dev->config; + const struct gpio_dt_spec *led_gpio; + LOG_INF("LED NUM:%d,dev name:%s",config->num_leds,dev->name); + + for(int i=0;inum_leds;i++) + { + led_gpio = &config->led[i]; + LOG_INF("LED gpio pin:%d",led_gpio->pin); + } + // keyboard_led_init(); } static uint8_t keyboard_led_state; static uint8_t charge_led_state; void keyboad_led_set_onoff(uint8_t led_state) { - if(led_power_on_status) - { - keyboard_led_state =led_state; - return; - } - uint8_t num =led_state &0x01; - uint8_t caps= (led_state &0x02); - struct led_color color=LED_COLOR(0xff,0xff,0xff); - LOG_DBG("led state:%d,num:%d,caps:%d",led_state,num,caps); + if(led_power_on_status) + { + keyboard_led_state =led_state; + return; + } + uint8_t num =led_state &0x01; + uint8_t caps= (led_state &0x02); + struct led_color color=LED_COLOR(0xff,0xff,0xff); + LOG_DBG("led state:%d,num:%d,caps:%d",led_state,num,caps); #if !(CONFIG_SHIELD_KEYCHRON_B1) - num ? set_color(&leds[LED_NUMLOCK],&color):set_off(&leds[LED_NUMLOCK]); + num ? set_color(&leds[LED_NUMLOCK],&color):set_off(&leds[LED_NUMLOCK]); #endif - caps ? set_color(&leds[LED_CAPSLOCK],&color):set_off(&leds[LED_CAPSLOCK]); - keyboard_led_state =led_state; + caps ? set_color(&leds[LED_CAPSLOCK],&color):set_off(&leds[LED_CAPSLOCK]); + keyboard_led_state =led_state; } uint8_t keyboard_get_led_state(void) { - return keyboard_led_state; + return keyboard_led_state; } uint8_t get_charge_led_state(void) { - return charge_led_state; + return charge_led_state; } void blue_led_set_state(uint8_t led_state) { - if(get_current_transport()!=ZMK_TRANSPORT_BLE) return; - LOG_DBG("set:%d",led_state); - - if((leds[LED_BLUE].effect !=&led_peer_state_effect[led_state]) || k_timer_remaining_get(&leds[LED_BLUE].timer)==0)// k_work_delayable_remaining_get(&leds[LED_BLUE].work)==0) - { - leds[LED_BLUE].effect = &led_peer_state_effect[led_state]; - led_update(&leds[LED_BLUE]); - } + if(get_current_transport()!=ZMK_TRANSPORT_BLE) return; + LOG_DBG("set:%d",led_state); + + if((leds[LED_BLUE].effect !=&led_peer_state_effect[led_state]) || k_timer_remaining_get(&leds[LED_BLUE].timer)==0)// k_work_delayable_remaining_get(&leds[LED_BLUE].work)==0) + { + leds[LED_BLUE].effect = &led_peer_state_effect[led_state]; + led_update(&leds[LED_BLUE]); + } } void led_24G_set_state(uint8_t led_state) { - if(get_current_transport()!=ZMK_TRANSPORT_24G) return; - LOG_DBG("set:%d",led_state); - if((leds[LED_24G].effect !=&led_peer_state_effect[led_state]) || k_timer_remaining_get(&leds[LED_24G].timer)==0)//k_work_delayable_remaining_get(&leds[LED_24G].work)==0) - { - LOG_DBG("."); - leds[LED_24G].effect = &led_peer_state_effect[led_state]; - led_update(&leds[LED_24G]); - } + if(get_current_transport()!=ZMK_TRANSPORT_24G) return; + LOG_DBG("set:%d",led_state); + if((leds[LED_24G].effect !=&led_peer_state_effect[led_state]) || k_timer_remaining_get(&leds[LED_24G].timer)==0)//k_work_delayable_remaining_get(&leds[LED_24G].work)==0) + { + LOG_DBG("."); + leds[LED_24G].effect = &led_peer_state_effect[led_state]; + led_update(&leds[LED_24G]); + } } void led_charge_set_state(uint8_t led_state) { - if(led_power_on_status) - { - charge_led_state =led_state; - return; - } - if(led_state == LED_BAT_CHARGING) - { - leds[LED_BAT].effect = &led_peer_state_effect[LED_PEER_STATE_BAT_CHARGING]; - led_update(&leds[LED_BAT]); - } - else if(led_state == LED_BAT_CHARGE_DONE) - { - leds[LED_BAT].effect = &led_peer_state_effect[LED_PEER_STATE_BAT_CHARGEDONE]; - led_update(&leds[LED_BAT]); - } - else if(led_state == LED_BAT_LOW) - { - leds[LED_BAT].effect = &led_peer_state_effect[LED_PEER_STATE_BAT_LOW]; - led_update(&leds[LED_BAT]); - } - else if(led_state == LED_BAT_NONE) - { - leds[LED_BAT].effect = &led_peer_state_effect[LED_PEER_STATE_DISCONNECTED]; - led_update(&leds[LED_BAT]); - } - charge_led_state =led_state; + if(led_power_on_status) + { + charge_led_state =led_state; + return; + } + if(led_state == LED_BAT_CHARGING) + { + leds[LED_BAT].effect = &led_peer_state_effect[LED_PEER_STATE_BAT_CHARGING]; + led_update(&leds[LED_BAT]); + } + else if(led_state == LED_BAT_CHARGE_DONE) + { + leds[LED_BAT].effect = &led_peer_state_effect[LED_PEER_STATE_BAT_CHARGEDONE]; + led_update(&leds[LED_BAT]); + } + else if(led_state == LED_BAT_LOW) + { + leds[LED_BAT].effect = &led_peer_state_effect[LED_PEER_STATE_BAT_LOW]; + led_update(&leds[LED_BAT]); + } + else if(led_state == LED_BAT_NONE) + { + leds[LED_BAT].effect = &led_peer_state_effect[LED_PEER_STATE_DISCONNECTED]; + led_update(&leds[LED_BAT]); + } + charge_led_state =led_state; } void led_recover(void) { - for (size_t i = 0; i < ARRAY_SIZE(leds);i++) - { - #if (CONFIG_SHIELD_KEYCHRON_B1) - if(i== LED_NUMLOCK) continue; - #endif - leds[i].effect = &led_peer_state_effect[LED_PEER_STATE_RECOVER]; - led_update(&leds[i]); - } + for (size_t i = 0; i < ARRAY_SIZE(leds);i++) + { + #if (CONFIG_SHIELD_KEYCHRON_B1) + if(i== LED_NUMLOCK) continue; + #endif + leds[i].effect = &led_peer_state_effect[LED_PEER_STATE_RECOVER]; + led_update(&leds[i]); + } } void power_on_finish_cb(struct k_work * work) { - keyboad_led_set_onoff(keyboard_led_state); - led_charge_set_state(charge_led_state); + keyboad_led_set_onoff(keyboard_led_state); + led_charge_set_state(charge_led_state); } bool bat_is_shutdown(void); void led_power_on(void) { - if(bat_is_shutdown()) return; - // k_sem_reset(&power_on_sem); - led_power_on_status =1; - - for (size_t i = 0; i < ARRAY_SIZE(leds);i++) - { - #if (CONFIG_SHIELD_KEYCHRON_B1) - if(i== LED_NUMLOCK) continue; - #endif - if(get_current_transport()==ZMK_TRANSPORT_BLE) - { - if(i==LED_24G) continue; - } - else if(get_current_transport()==ZMK_TRANSPORT_24G) - { - if(i==LED_BLUE) continue; - } - leds[i].effect = &led_peer_state_effect[LED_PEER_STATE_POWER_ON]; - - led_update(&leds[i]); - } - // last_mode = get_mode_status(); - // k_timer_start(&mode_check,K_MSEC(100),K_FOREVER); - // k_sem_take(&power_on_sem,K_MSEC(3000)); - // LOG_INF("power on finish"); - // led_charge_set_state(charge_led_state); + if(bat_is_shutdown()) return; + // k_sem_reset(&power_on_sem); + led_power_on_status =1; + + for (size_t i = 0; i < ARRAY_SIZE(leds);i++) + { + #if (CONFIG_SHIELD_KEYCHRON_B1) + if(i== LED_NUMLOCK) continue; + #endif + if(get_current_transport()==ZMK_TRANSPORT_BLE) + { + if(i==LED_24G) continue; + } + else if(get_current_transport()==ZMK_TRANSPORT_24G) + { + if(i==LED_BLUE) continue; + } + leds[i].effect = &led_peer_state_effect[LED_PEER_STATE_POWER_ON]; + + led_update(&leds[i]); + } + // last_mode = get_mode_status(); + // k_timer_start(&mode_check,K_MSEC(100),K_FOREVER); + // k_sem_take(&power_on_sem,K_MSEC(3000)); + // LOG_INF("power on finish"); + // led_charge_set_state(charge_led_state); } void reset_led_power_on(void) { - // k_sem_give(&power_on_sem); - led_power_on_status=0; - leds_stop(); + // k_sem_give(&power_on_sem); + led_power_on_status=0; + leds_stop(); } static const struct led_effect * bat_bak_effect ; extern uint8_t bt_bas_get_battery_level(void); void led_bat_display(void) { - bat_bak_effect = leds[LED_BAT].effect; - LOG_DBG("."); - // led_charge_set_state(LED_BAT_NONE); - - // k_sem_take(&led_semi,K_MSEC(1000)); - - uint8_t level =bt_bas_get_battery_level(); - - if(level >=70) - { - struct led_color color=LED_COLOR(0,0xff,0); //green; - set_color(&leds[LED_BAT],&color); - LOG_DBG("green,level:%d",level); - - } - else if(level >=30) - { - struct led_color color=LED_COLOR(0,0,0xff); //blue; - set_color(&leds[LED_BAT],&color); - LOG_DBG("blue,level:%d",level); - } - else - { - struct led_color color=LED_COLOR(0xff,0,0); //red - set_color(&leds[LED_BAT],&color); - LOG_DBG("red,level:%d",level); - } + bat_bak_effect = leds[LED_BAT].effect; + LOG_DBG("."); + // led_charge_set_state(LED_BAT_NONE); + + // k_sem_take(&led_semi,K_MSEC(1000)); + + uint8_t level =bt_bas_get_battery_level(); + + if(level >=70) + { + struct led_color color=LED_COLOR(0,0xff,0); //green; + set_color(&leds[LED_BAT],&color); + LOG_DBG("green,level:%d",level); + + } + else if(level >=30) + { + struct led_color color=LED_COLOR(0,0,0xff); //blue; + set_color(&leds[LED_BAT],&color); + LOG_DBG("blue,level:%d",level); + } + else + { + struct led_color color=LED_COLOR(0xff,0,0); //red + set_color(&leds[LED_BAT],&color); + LOG_DBG("red,level:%d",level); + } } void led_bat_display_off(void) { - LOG_DBG("."); - // if(bat_bak_effect) - // { - // leds[LED_BAT].effect = bat_bak_effect; - // led_update(&leds[LED_BAT]); - // } - // else - if(charge_led_state !=LED_BAT_LOW) - { - led_charge_set_state(charge_led_state); - } - else - { - led_charge_set_state(LED_BAT_NONE); - } + LOG_DBG("."); + // if(bat_bak_effect) + // { + // leds[LED_BAT].effect = bat_bak_effect; + // led_update(&leds[LED_BAT]); + // } + // else + if(charge_led_state !=LED_BAT_LOW) + { + led_charge_set_state(charge_led_state); + } + else + { + led_charge_set_state(LED_BAT_NONE); + } } void leds_turnoff(void) { - for (size_t i = 0; i < ARRAY_SIZE(leds);i++) - { - set_off(&leds[i]); - } + for (size_t i = 0; i < ARRAY_SIZE(leds);i++) + { + set_off(&leds[i]); + } led_charge_set_state(LED_BAT_NONE); blue_led_set_state( LED_PEER_STATE_DISCONNECTED); led_24G_set_state(LED_PEER_STATE_DISCONNECTED); diff --git a/app/src/version.h b/app/src/version.h index 5e3ca476d7a..e2224917353 100644 --- a/app/src/version.h +++ b/app/src/version.h @@ -12,7 +12,7 @@ #else #define VERSION_MAJOR 1 #define VERSION_MINOR 3 -#define PATCHLEVEL 3 +#define PATCHLEVEL 3 #endif #define VERSION_TWEAK 0 #define EXTRAVERSION "ZK" @@ -20,10 +20,10 @@ #define ZMK_VERSION (VERSION_MAJOR<<16| VERSION_MINOR<<8 | PATCHLEVEL)//0x00010209 #define VIA_FIRMWARE_VERSION ZMK_VERSION -#define USB_DEC_TO_BCD(dec) ((((dec) / 10) << 4) | ((dec) % 10)) +#define USB_DEC_TO_BCD(dec) ((((dec) / 10) << 4) | ((dec) % 10)) /** USB Device release number (bcdDevice Descriptor field) */ -#define USB_BCD_VER (USB_DEC_TO_BCD(VERSION_MAJOR) << 8 | \ +#define USB_BCD_VER (USB_DEC_TO_BCD(VERSION_MAJOR) << 8 | \ USB_DEC_TO_BCD((VERSION_MINOR*10)+PATCHLEVEL)) #define VER_STR1(a1,a2,a3,a4) "v"#a1"."#a2"."#a3"-"a4 #define VER_STR(a1,a2,a3,a4) VER_STR1(a1,a2,a3,a4) From 432887964fc55394e4c8542cf7ef95dbf20231d4 Mon Sep 17 00:00:00 2001 From: kurokuro-tyan Date: Sat, 11 Jul 2026 21:36:54 +0900 Subject: [PATCH 8/9] clang-format From 8644510c425f26d08ae1fa374a7c61f35f592770 Mon Sep 17 00:00:00 2001 From: kurokuro-tyan Date: Sat, 11 Jul 2026 23:34:27 +0900 Subject: [PATCH 9/9] =?UTF-8?q?=E3=81=A8=E3=82=8A=E3=81=82=E3=81=88?= =?UTF-8?q?=E3=81=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/launcher/dynamic_macro.h | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/app/src/launcher/dynamic_macro.h b/app/src/launcher/dynamic_macro.h index 64c532e6ce5..18e32043fe3 100644 --- a/app/src/launcher/dynamic_macro.h +++ b/app/src/launcher/dynamic_macro.h @@ -18,7 +18,8 @@ #pragma once /* Warn users that this is now deprecated and they should use the core feature instead. */ -#pragma message "Dynamic Macros is now a core feature. See updated documentation to see how to configure it: https://docs.qmk.fm/#/feature_dynamic_macros" +#pragma message + "Dynamic Macros is now a core feature. See updated documentation to see how to configure it: https://docs.qmk.fm/#/feature_dynamic_macros" #include "action_layer.h" @@ -32,7 +33,7 @@ * there have been reports of it being too much in some users' cases, * so 128 is considered a safe default. */ -# define DYNAMIC_MACRO_SIZE 128 +#define DYNAMIC_MACRO_SIZE 128 #endif /* Blink the LEDs to notify the user about some event. */ @@ -57,7 +58,8 @@ void dynamic_macro_led_blink(void) { * @param[out] macro_pointer The new macro buffer iterator. * @param[in] macro_buffer The macro buffer used to initialize macro_pointer. */ -void dynamic_macro_record_start(keyrecord_t **macro_pointer, keyrecord_t *macro_buffer) { +void dynamic_macro_record_start(keyrecord_t **macro_pointer, + keyrecord_t *macro_buffer) { dprintln("dynamic macro recording: started"); dynamic_macro_led_blink(); @@ -118,14 +120,17 @@ void dynamic_macro_record_key(keyrecord_t *macro_buffer, keyrecord_t **macro_poi dynamic_macro_led_blink(); } - dprintf("dynamic macro: slot %d length: %d/%d\n", DYNAMIC_MACRO_CURRENT_SLOT(), DYNAMIC_MACRO_CURRENT_LENGTH(macro_buffer, *macro_pointer), DYNAMIC_MACRO_CURRENT_CAPACITY(macro_buffer, macro2_end)); + dprintf("dynamic macro: slot %d length: %d/%d\n", DYNAMIC_MACRO_CURRENT_SLOT(), + DYNAMIC_MACRO_CURRENT_LENGTH(macro_buffer, *macro_pointer), + DYNAMIC_MACRO_CURRENT_CAPACITY(macro_buffer, macro2_end)); } /** * End recording of the dynamic macro. Essentially just update the * pointer to the end of the macro. */ -void dynamic_macro_record_end(keyrecord_t *macro_buffer, keyrecord_t *macro_pointer, int8_t direction, keyrecord_t **macro_end) { +void dynamic_macro_record_end(keyrecord_t *macro_buffer, keyrecord_t *macro_pointer, + int8_t direction, keyrecord_t **macro_end) { dynamic_macro_led_blink(); /* Do not save the keys being held when stopping the recording, @@ -136,7 +141,8 @@ void dynamic_macro_record_end(keyrecord_t *macro_buffer, keyrecord_t *macro_poin macro_pointer -= direction; } - dprintf("dynamic macro: slot %d saved, length: %d\n", DYNAMIC_MACRO_CURRENT_SLOT(), DYNAMIC_MACRO_CURRENT_LENGTH(macro_buffer, macro_pointer)); + dprintf("dynamic macro: slot %d saved, length: %d\n", DYNAMIC_MACRO_CURRENT_SLOT(), + DYNAMIC_MACRO_CURRENT_LENGTH(macro_buffer, macro_pointer)); *macro_end = macro_pointer; } @@ -234,7 +240,6 @@ bool process_record_dynamic_macro(uint16_t keycode, keyrecord_t *record) { dynamic_macro_record_end(r_macro_buffer, macro_pointer, -1, &r_macro_end); break; } - macro_id = 0; } return false; case QK_DYNAMIC_MACRO_PLAY_1: