- FDS 피에조 파라미터 구조체 변경 (pd_adc_cnt/pd_delay_us 삭제, piezo 5개 필드 추가)

- maa/mbb 앱 파라미터 수신 → FDS 저장 기능 추가
- magic_number 변경 (0x20260319), cycles 범위 3~7로 제한

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
jhChun
2026-03-18 18:20:52 +09:00
parent 4881c7f937
commit ce81cd949f
6 changed files with 120 additions and 50 deletions

View File

@@ -976,17 +976,30 @@ static int Cmd_cmd(const ParsedCmd *cmd)
static int Cmd_maa(const ParsedCmd *cmd)
{
uint16_t mode = 0;
dr_adc_err_t err;
/* mode 파라미터 추출 */
(void)dr_get_u16(cmd, 0, &mode);
/* 파라미터 5개 수신 시 FDS에 저장 — 디버그 중 비활성화
if (cmd->data_len >= 10) {
uint16_t freq, cycles, averaging, delay_us, num_samples;
dr_get_u16(cmd, 0, &freq);
dr_get_u16(cmd, 1, &cycles);
dr_get_u16(cmd, 2, &averaging);
dr_get_u16(cmd, 3, &delay_us);
dr_get_u16(cmd, 4, &num_samples);
/* mode 검증 - mode 0(비동기 원시)만 지원 */
if (mode > 0) {
dr_ble_return_1("raa:", 0xFFFF); /* 미지원 모드 에러 */
return 1;
m_config.piezo_freq_option = (uint8_t)freq;
m_config.piezo_cycles = (uint8_t)cycles;
m_config.piezo_averaging = averaging;
m_config.piezo_delay_us = delay_us;
m_config.piezo_num_samples = num_samples;
config_save();
if (g_plat.log) g_plat.log("[Cmd_maa] params updated: freq=%u cyc=%u avg=%u delay=%u samples=%u\r\n",
m_config.piezo_freq_option, m_config.piezo_cycles,
m_config.piezo_averaging, m_config.piezo_delay_us,
m_config.piezo_num_samples);
}
*/
/* 이전 캡처가 진행 중인지 확인 (비동기이므로 중복 실행 방지) */
if (maa_async_is_busy()) {
@@ -1108,16 +1121,30 @@ static void all_sensors(void)
*/
static int Cmd_mbb(const ParsedCmd *cmd)
{
uint16_t mode = 0;
dr_adc_err_t err;
(void)dr_get_u16(cmd, 0, &mode);
/* 파라미터 5개 수신 시 FDS에 저장 — 디버그 중 비활성화
if (cmd->data_len >= 10) {
uint16_t freq, cycles, averaging, delay_us, num_samples;
dr_get_u16(cmd, 0, &freq);
dr_get_u16(cmd, 1, &cycles);
dr_get_u16(cmd, 2, &averaging);
dr_get_u16(cmd, 3, &delay_us);
dr_get_u16(cmd, 4, &num_samples);
if (mode > 0)
{
dr_ble_return_1("raa:", 0xFFFF);
return 1;
m_config.piezo_freq_option = (uint8_t)freq;
m_config.piezo_cycles = (uint8_t)cycles;
m_config.piezo_averaging = averaging;
m_config.piezo_delay_us = delay_us;
m_config.piezo_num_samples = num_samples;
config_save();
if (g_plat.log) g_plat.log("[Cmd_mbb] params updated: freq=%u cyc=%u avg=%u delay=%u samples=%u\r\n",
m_config.piezo_freq_option, m_config.piezo_cycles,
m_config.piezo_averaging, m_config.piezo_delay_us,
m_config.piezo_num_samples);
}
*/
all_sensors();
@@ -1134,6 +1161,11 @@ static int Cmd_mbb(const ParsedCmd *cmd)
dr_piezo_system_init();
}
if (g_plat.log) g_plat.log("[Cmd_mbb] freq=%u cyc=%u avg=%u delay=%u samples=%u\r\n",
m_config.piezo_freq_option, m_config.piezo_cycles,
m_config.piezo_averaging, m_config.piezo_delay_us,
m_config.piezo_num_samples);
/* 비동기 6채널 캡처 시작 (m_config 파라미터 사용) */
err = maa_async_start(
m_config.piezo_freq_option,