From 2e3fca2f801c0686185cb1777f83e00505c65b58 Mon Sep 17 00:00:00 2001 From: jhchun Date: Wed, 5 Aug 2026 13:55:29 +0900 Subject: [PATCH] =?UTF-8?q?=EB=B3=B8=EB=94=A9=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EC=82=AD=EC=A0=9C=20=ED=9B=84=20=EC=9E=AC=EB=B6=80=ED=8C=85=20?= =?UTF-8?q?msr=3F=20=EC=9D=91=EB=8B=B5=20=EB=A1=9C=EC=A7=81=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - msr? 수신 시 rsr: 응답 후 disconnect - 버튼 본딩 정보 삭제 후 재부팅 로직과 동일하게 주황 LED 2초 표시 후 재부팅 --- src/command/handlers/cmd_device.c | 56 +++++++++++++++---------------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/command/handlers/cmd_device.c b/src/command/handlers/cmd_device.c index 646d680..731959f 100644 --- a/src/command/handlers/cmd_device.c +++ b/src/command/handlers/cmd_device.c @@ -4,6 +4,7 @@ ******************************************************************************/ #include #include +#include #if IS_ENABLED(CONFIG_BT_SMP) #include #include @@ -65,38 +66,15 @@ int cmd_msr(const uint8_t *data, uint8_t data_len) ARG_UNUSED(data); ARG_UNUSED(data_len); -#if IS_ENABLED(CONFIG_BT_SMP) - int err = bt_unpair(BT_ID_DEFAULT, NULL); - if (err) + int nvs_err = app_nvs_save_production_done(1U); + if (nvs_err) { - status = (uint16_t)(-err); - DBG_ERR("[CMD] msr bt_unpair failed err=%d\r\n", err); + status = (uint16_t)(-nvs_err); + DBG_ERR("[CMD] msr production_done save failed err=%d\r\n", nvs_err); } else { - led_set_state(LED_STATE_BOND_DELETE); - bond_data_delete = true; - ble_pairing_window_mark_reset_open(); - DBG_PRINTF("[CMD] msr bond data deleted\r\n"); - } -#else - bond_data_delete = true; - ble_pairing_window_mark_reset_open(); - DBG_PRINTF("[CMD] msr bond delete skipped (BT_SMP disabled)\r\n"); -#endif - - if (status == 0x0000) - { - int nvs_err = app_nvs_save_production_done(1U); - if (nvs_err) - { - status = (uint16_t)(-nvs_err); - DBG_ERR("[CMD] msr production_done save failed err=%d\r\n", nvs_err); - } - else - { - m_production_done = 1U; - } + m_production_done = 1U; } int tx_err = cmd_send_response_u16("rsr:", status); @@ -108,7 +86,29 @@ int cmd_msr(const uint8_t *data, uint8_t data_len) if (status == 0x0000) { + led_set_state(LED_STATE_BOND_DELETE); + k_msleep(2000); + + bond_data_delete = true; + ble_pairing_window_mark_reset_open(); + ble_advertising_restart_suspend(true); + +#if IS_ENABLED(CONFIG_BT_SMP) + int err = bt_unpair(BT_ID_DEFAULT, NULL); + if (err) + { + DBG_ERR("[CMD] msr bt_unpair failed err=%d\r\n", err); + } + else + { + DBG_PRINTF("[CMD] msr bond data deleted\r\n"); + } +#else + DBG_PRINTF("[CMD] msr bond delete skipped (BT_SMP disabled)\r\n"); +#endif + DBG_PRINTF("[CMD] msr complete -> production done, reboot\r\n"); + sys_reboot(SYS_REBOOT_COLD); } cmd_reboot_after_response();