Compare commits

..

2 Commits

Author SHA1 Message Date
jhChun 217d741d31 LED 상태 설정 명령 추가
- BLE 명령으로 LED 상태 설정
2026-03-31 14:01:02 +09:00
jhChun f464838ed4 Connection Interval 30ms로 변경
- 기존: MIN=20, MAX=75
- 변경: MIN=30, MAX=30
- GAP Event Length=24(30ms)에 맞춰 변경함
- Piezo 6채널 ADC 데이터 7패킷 송신 시 3~4패킷/CI로, ~60ms 소요
2026-03-31 09:55:47 +09:00
3 changed files with 40 additions and 4 deletions
+37 -1
View File
@@ -32,7 +32,8 @@
#include "dr_util.h" #include "dr_util.h"
#include "main.h" #include "main.h"
#include "dr_adc121s051.h" #include "dr_adc121s051.h"
#include "led_control.h"
#include "app_timer.h"
/*============================================================================== /*==============================================================================
* 외부 함수 선언부 * 외부 함수 선언부
@@ -408,6 +409,9 @@ static int Cmd_mbb(const ParsedCmd *cmd); /* mbb? 6채널 캡처 + 센서 측
static int Cmd_mcf(const ParsedCmd *cmd); /* mcf? 피에조 파라미터 읽기 (FDS) */ static int Cmd_mcf(const ParsedCmd *cmd); /* mcf? 피에조 파라미터 읽기 (FDS) */
static int Cmd_mcs(const ParsedCmd *cmd); /* mcs? 피에조 파라미터 쓰기 (FDS) */ static int Cmd_mcs(const ParsedCmd *cmd); /* mcs? 피에조 파라미터 쓰기 (FDS) */
/* E. LED 제어 */
static int Cmd_mls(const ParsedCmd *cmd); /* mls? LED 상태 설정 (앱 → 기기) */
/* ---- 명령 테이블 ---- */ /* ---- 명령 테이블 ---- */
@@ -452,6 +456,9 @@ static CmdEntry g_cmd_table[] = {
{ "mbb?", true, Cmd_mbb }, { "mbb?", true, Cmd_mbb },
{ "mcf?", true, Cmd_mcf }, { "mcf?", true, Cmd_mcf },
{ "mcs?", true, Cmd_mcs }, { "mcs?", true, Cmd_mcs },
/* F. LED 제어 */
{ "mls?", true, Cmd_mls },
}; };
/* 명령 테이블 엔트리 수 (컴파일 타임 계산) */ /* 명령 테이블 엔트리 수 (컴파일 타임 계산) */
@@ -1194,6 +1201,35 @@ static int Cmd_mcs(const ParsedCmd *cmd)
} }
/**
* @brief mls? - LED 상태 설정 (앱 → 기기)
*
* 파라미터: [state(2)] - led_state_t enum 값
* 0: OFF, 4: DETACH_WARNING, 5: ALIGN_SEARCHING, 6: ALIGN_COMPLETE
* 응답: rls: [state(2)] - 에코
*/
static int Cmd_mls(const ParsedCmd *cmd)
{
if (cmd->data_len < 2) {
dr_ble_return_1("rls:", 0xFFFF);
return 1;
}
uint16_t state;
dr_get_u16(cmd, 0, &state);
if (state > LED_STATE_ERROR) {
dr_ble_return_1("rls:", 0xFFFE);
return 1;
}
led_set_state((led_state_t)state);
dr_ble_return_1("rls:", state);
return 1;
}
/*============================================================================== /*==============================================================================
* 설정: HW/시리얼 넘버 FDS 읽기/쓰기 * 설정: HW/시리얼 넘버 FDS 읽기/쓰기
* *
@@ -144,8 +144,8 @@
#define APP_ADV_DURATION 18000 /* 광고 지속시간: 18000 x 10ms = 3분 → 타임아웃 시 슬립 */ #define APP_ADV_DURATION 18000 /* 광고 지속시간: 18000 x 10ms = 3분 → 타임아웃 시 슬립 */
#endif #endif
#define MIN_CONN_INTERVAL MSEC_TO_UNITS(20, UNIT_1_25_MS) /* 최소 연결 간격: 20ms */ #define MIN_CONN_INTERVAL MSEC_TO_UNITS(30, UNIT_1_25_MS) /* 최소 연결 간격: 30ms */
#define MAX_CONN_INTERVAL MSEC_TO_UNITS(75, UNIT_1_25_MS) /* 최대 연결 간격: 75ms */ #define MAX_CONN_INTERVAL MSEC_TO_UNITS(30, UNIT_1_25_MS) /* 최대 연결 간격: 30ms */
#define SLAVE_LATENCY 4 /* 슬레이브 지연: 0 (매 연결 이벤트마다 응답) */ #define SLAVE_LATENCY 4 /* 슬레이브 지연: 0 (매 연결 이벤트마다 응답) */
#define CONN_SUP_TIMEOUT MSEC_TO_UNITS(4000, UNIT_10_MS) /* 연결 감독 타임아웃: 4초 */ #define CONN_SUP_TIMEOUT MSEC_TO_UNITS(4000, UNIT_10_MS) /* 연결 감독 타임아웃: 4초 */
#define FIRST_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(5000) /* 첫 파라미터 갱신 요청까지 5초 대기 */ #define FIRST_CONN_PARAMS_UPDATE_DELAY APP_TIMER_TICKS(5000) /* 첫 파라미터 갱신 요청까지 5초 대기 */