Piezo 측정 파라미터 공용 헤더 추가 및 최대 샘플 수 118개로 변경

- reb: 패킷에 채널 정보 2바이트가 추가되어 단일 패킷 최대 샘플 수를 119개에서 118개로 조정
This commit is contained in:
2026-06-26 17:40:05 +09:00
parent 80d7086d09
commit 763abb0fcc
5 changed files with 61 additions and 28 deletions
@@ -17,6 +17,7 @@
#include "dr_piezo.h"
#include "dr_adc121s051.h"
#include "led_control.h"
#include "../../measurement/piezo/piezo_config.h"
static void mtb_send_rim_after_piezo(void)
{
@@ -64,48 +65,48 @@ static uint8_t clamp_piezo_freq_option(uint16_t raw_freq)
static uint8_t clamp_piezo_cycles(uint16_t cycles)
{
if (cycles < 3)
if (cycles < PIEZO_CONFIG_CYCLES_MIN)
{
return 3;
return (uint8_t)PIEZO_CONFIG_CYCLES_MIN;
}
if (cycles > 7)
if (cycles > PIEZO_CONFIG_CYCLES_MAX)
{
return 7;
return (uint8_t)PIEZO_CONFIG_CYCLES_MAX;
}
return (uint8_t)cycles;
}
static uint16_t clamp_piezo_averaging(uint16_t averaging)
{
if (averaging < 1)
if (averaging < PIEZO_CONFIG_AVERAGING_MIN)
{
return 1;
return PIEZO_CONFIG_AVERAGING_MIN;
}
if (averaging > 10)
if (averaging > PIEZO_CONFIG_AVERAGING_MAX)
{
return 10;
return PIEZO_CONFIG_AVERAGING_MAX;
}
return averaging;
}
static uint16_t clamp_piezo_delay_us(uint16_t delay_us)
{
if (delay_us > 50)
if (delay_us > PIEZO_CONFIG_DELAY_US_MAX)
{
return 50;
return PIEZO_CONFIG_DELAY_US_MAX;
}
return delay_us;
}
static uint16_t clamp_piezo_num_samples(uint16_t num_samples)
{
if (num_samples < 80)
if (num_samples < PIEZO_CONFIG_NUM_SAMPLES_MIN)
{
return 80;
return PIEZO_CONFIG_NUM_SAMPLES_MIN;
}
if (num_samples > 119)
if (num_samples > PIEZO_CONFIG_NUM_SAMPLES_MAX)
{
return 119;
return PIEZO_CONFIG_NUM_SAMPLES_MAX;
}
return num_samples;
}
@@ -164,8 +165,8 @@ int Cmd_mpb(const ParsedCmd *cmd)
*============================================================================*/
int Cmd_mpc(const ParsedCmd *cmd)
{
uint16_t cycles = 5;
uint16_t freq_option = 1;
uint16_t cycles = DR_PIEZO_DEFAULT_CYCLES;
uint16_t freq_option = PIEZO_CONFIG_FREQ_OPTION_DEFAULT;
uint16_t piezo_ch = 0;
(void)dr_get_u16(cmd, 0, &cycles);
@@ -177,7 +178,7 @@ int Cmd_mpc(const ParsedCmd *cmd)
piezo_ch = 0;
}
if (cycles < 3 || cycles > 7)
if (cycles < PIEZO_CONFIG_CYCLES_MIN || cycles > PIEZO_CONFIG_CYCLES_MAX)
{
dr_ble_return_1("rpc:", 2);
return 1;
@@ -224,7 +225,7 @@ int Cmd_mec(const ParsedCmd *cmd)
uint16_t freq_option = 0;
uint16_t delay_us = 20;
uint16_t num_samples = 140;
uint16_t cycles = 5;
uint16_t cycles = DR_PIEZO_DEFAULT_CYCLES;
uint16_t averaging = 1;
uint16_t piezo_ch = 0;