From a826d09dfacabd32e046ca04d99d3520ed7bc97b Mon Sep 17 00:00:00 2001 From: jhchun Date: Thu, 16 Apr 2026 01:07:37 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B8=B0=EA=B8=B0=20=EC=A0=95=EB=B3=B4=20?= =?UTF-8?q?=EC=9D=BC=EA=B4=84=20=EC=9D=BD=EA=B8=B0=20=EC=BB=A4=EB=A7=A8?= =?UTF-8?q?=EB=93=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - HW Version, Serial Version, FW Version --- .../ble_app_bladder_patch/command/parser.c | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/project/ble_peripheral/ble_app_bladder_patch/command/parser.c b/project/ble_peripheral/ble_app_bladder_patch/command/parser.c index 971e1e1..cda563e 100644 --- a/project/ble_peripheral/ble_app_bladder_patch/command/parser.c +++ b/project/ble_peripheral/ble_app_bladder_patch/command/parser.c @@ -390,6 +390,7 @@ static int Cmd_mws(const ParsedCmd *cmd); /* mws? 시리얼 넘버 FDS에 쓰 static int Cmd_mrh(const ParsedCmd *cmd); /* mrh? HW 넘버 FDS에서 읽기 */ static int Cmd_mrs(const ParsedCmd *cmd); /* mrs? 시리얼 넘버 FDS에서 읽기 */ static int Cmd_mfv(const ParsedCmd *cmd); /* mfv? 펌웨어 버전 읽기 */ +static int Cmd_mid(const ParsedCmd *cmd); /* mid? HW 넘버 + 시리얼 넘버 + FW 버전 일괄 읽기 */ static int Cmd_mpz(const ParsedCmd *cmd); /* mpz? BLE 패스키 FDS에 쓰기 */ static int Cmd_mqz(const ParsedCmd *cmd); /* mqz? BLE 패스키 FDS에서 읽기 */ @@ -440,6 +441,7 @@ static CmdEntry g_cmd_table[] = { { "mpz?", true, Cmd_mpz }, { "mqz?", true, Cmd_mqz }, { "mfv?", true, Cmd_mfv }, + { "mid?", true, Cmd_mid }, /* D. 각종 센서 측정 */ { "msn?", true, Cmd_msn }, @@ -677,6 +679,28 @@ static int Cmd_mfv(const ParsedCmd *cmd) return 1; } +/* mid? - HW 넘버 + 시리얼 넘버 + FW 버전 일괄 읽기 + * + * 응답: "rid:" + HW_NO(12) + SERIAL_NO(12) + FIRMWARE_VERSION(12) = 40바이트 = 20워드 + */ +static int Cmd_mid(const ParsedCmd *cmd) +{ + uint8_t *buf = ble_bin_buffer; + (void)cmd; + + memcpy(HW_NO, m_config.hw_no, 12); + memcpy(SERIAL_NO, m_config.serial_no, 12); + + buf[0] = 'r'; buf[1] = 'i'; buf[2] = 'd'; buf[3] = ':'; + memcpy(&buf[4], HW_NO, 12); + memcpy(&buf[16], SERIAL_NO, 12); + memcpy(&buf[28], FIRMWARE_VERSION, 12); + + dr_binary_tx_safe(buf, 20); /* 40바이트 = 20워드 */ + return 1; +} + + /* mpa? - 피에조 초음파 TX/RX 회로 활성화 * * 동작: 피에조 전원 ON → 시스템 초기화 (DAC, MUX, ADC 설정)