| A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | AD | AE | AF | AG | AH | AI | AJ | AK | AL | AM | AN | AO | AP | AQ | AR | AS | AT | AU | AV | AW | AX | AY | AZ | BA | BB | BC | BD | BE | |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||
3 | VAPS 단위 테스트 정의서 (Unit Test Definition) | MAIN ECU 단위 테스트 (TC375#1) | RPi 단위 테스트 | CLU ECU 단위 테스트 (TC275) | ACT ECU 단위 테스트 (TC375#2) | D / R / N단 기능 단위 테스트 (기능 시나리오 기반) | |||||||||||||||||||||||||||||||||||||||||||||||||||
4 | Vehicle Anti-rollaway Protection System — 차량 무인 이동 방지 자동 제어 시스템 | 운전자 감지 · 위험 판단 · 제어 명령 생성 | 로그 수신 · 저장 · 웹 대시보드 · 외부 알림 | 경고 출력 · LED 제어 · LCD 표시 · UART 로그 전송 | 센서 수집 · 속도 산출 · 모터/서보 제어 | FR-JDG, FR-CTL, FR-DSP, FR-LOG, FR-SAF 통합 기능 검증 | |||||||||||||||||||||||||||||||||||||||||||||||||||
5 | # | 테스트 ID | 테스트 항목 | 관련 요구사항 ID | 입력 조건 (사전 조건) | 테스트 절차 | 기대 결과 | 중요도 | 결과(P, F, N/A) | # | 테스트 ID | 테스트 항목 | 관련 요구사항 ID | 입력 조건 (사전 조건) | 테스트 절차 | 기대 결과 | 중요도 | 결과(P, F, N/A) | # | 테스트 ID | 테스트 항목 | 관련 요구사항 ID | 입력 조건 (사전 조건) | 테스트 절차 | 기대 결과 | 중요도 | 결과(P, F, N/A) | # | 테스트 ID | 테스트 항목 | 관련 요구사항 ID | 입력 조건 (사전 조건) | 테스트 절차 | 기대 결과 | 중요도 | 결과(P, F, N/A) | # | 테스트 ID | 테스트 항목 | 관련 요구사항 ID | 입력 조건 (사전 조건) | 테스트 절차 | 기대 결과 | 중요도 | 결과(P, F, N/A) | ||||||||||||
6 | 문서 버전 | v1.0 | ▶ 1. 압력 센서 (FSR) 단위 테스트 — IF-ADC-01, FR-DET-01 | ▶ 1. 로그 수신 및 저장 기능 | ▶ 1. 비상등 LED 제어 — FR-CTL-10, EXT01_EXT01 | ▶ 1. 인코더 기반 속도 산출 — FR-DET-04 | ▶ 1. D단 감지 및 판단 | ||||||||||||||||||||||||||||||||||||||||||||||||||
7 | 작성 기준 | FR-DET, FR-JDG, FR-CTL, FR-DSP, FR-LOG, FR-SAF, FR-NFR, SR-DRV 전체 | 1 | UT-M-01 | EVADC Group8 초기화 | IF-ADC-01 | MAIN 부팅 직후 | init_pressure_sensor() 호출 후 EVADC Group8 Queue0 동작 확인 | Queue0 연속 변환 시작 (REFILL 모드) | 상 | P | 1 | UT-RPI-LOG-01 | 경고 이벤트 자동 저장 확인 | FR-LOG-01, FR-LOG-03, FR-LOG-04 | RPi 프로그램 실행 중, 직렬 입력 가능 상태 | ① 경고 이벤트 데이터 입력 ② 로그 저장 여부 확인 ③ 웹 화면 또는 API에서 저장 결과 확인 | 경고 이벤트가 정상 수신되어 저장되고 발생 시각과 이벤트 종류가 확인 가능하다. | 하 | P | 1 | UT-HAZ-001 | 정상 상태 비상등 OFF | FR-CTL-10 | risk_level=0 | risk_level=0 전달 후 비상등 GPIO 확인 | GPIO LOW 유지 (비상등 OFF) | 중 | P | 1 | UT-ACT-ENC-01 | 인코더 펄스 카운팅 | FR-DET-04 | DC 모터 100 PPR 회전 | 인코더 펄스 카운트 함수 호출 | 100 펄스 정확 카운트 | 상 | P | 1 | UT-D-01 | D단 스위치 인식 | FR-DET-02 | 기어=P→D | D단 GPIO 전환 후 상태 확인 | D단 정확 인식 | 상 | P | ||||||||||
8 | 대상 ECU | MAIN (TC375#1) / CLU (TC275) / ACT (TC375#2) / RPi | 2 | UT-M-02 | FSR 3채널 ADC 값 읽기 | IF-ADC-01 | FSR 3개 미가압 상태 | read_pressure_adc_average() 호출 CH4/5/6 ADC 값 확인 | 3채널 평균 ADC ≈ 0 (각 채널 0~50 이내) | 상 | P | 2 | UT-RPI-LOG-02 | 제동 이벤트 자동 저장 확인 | FR-LOG-01, FR-LOG-03, FR-LOG-04 | RPi 프로그램 실행 중, 직렬 입력 가능 상태 | ① 제동 이벤트 데이터 입력 ② 로그 저장 여부 확인 ③ 이벤트 종류 확인 | 제동 이벤트가 정상 저장되고 brake 이벤트로 구분된다. | 하 | P | 2 | UT-HAZ-002 | 1차 경고 비상등 점멸 | FR-CTL-10 | risk_level=1 | risk_level=1 전달 후 GPIO 출력 확인 | 1초 간격 점멸 시작 | 중 | P | 2 | UT-ACT-ENC-02 | D/R단 2 km/h 이상 이동 판정 | FR-DET-04 | 기어=D 또는 R, 인코더 기반 계산 속도 = 2.0 km/h | 이동 판정 함수 호출 | MOTION_MOVING 반환 → 즉시 제동 트리거 | 상 | P | 2 | UT-D-02 | D단 반영 시간 200 ms | FR-DET-02 | 기어 전환 시점 측정 | 전환 후 상태 반영 시간 측정 | 200 ms 이내 반영 | 상 | P | ||||||||||
9 | 총 테스트 수 | 204 | 3 | UT-M-03 | FSR 가압 시 ADC 증가 | IF-ADC-01, FR-DET-01 | FSR에 4kg 이상 하중 인가 | read_pressure_adc_average() 반복 호출 | ADC 평균 ≥ 1600 (≈4000g 이상) | 상 | P | 3 | UT-RPI-LOG-03 | 제동 당시 차량 상태 저장 확인 | FR-LOG-03, FR-LOG-04 | 기어, 도어, 운전자, 속도 정보가 포함된 이벤트 입력 가능 상태 | ① 제동 이벤트 입력 ② 저장된 로그 확인 ③ 기어/도어/운전자/속도 값 확인 | 이벤트 발생 당시 차량 상태 정보가 함께 저장된다. | 하 | P | 3 | UT-HAZ-003 | 2차 경고 비상등 점멸 유지 | FR-CTL-10 | risk_level=2 | risk_level=2 전달 후 GPIO 확인 | 1초 간격 점멸 시작 | 중 | P | 3 | UT-ACT-ENC-03 | D/R단 1.9 km/h 미만 정지 판정 | FR-DET-04 | 기어=D 또는 R, 계산 속도 = 1.9 km/h | 이동 판정 함수 호출 | MOTION_STOPPED 반환 (2 km/h 미만) | 상 | P | 3 | UT-D-03 | 운전자 존재 판정 (D단) | FR-DET-01 | 압력 25 kg 이상 + 인체 감지 60 cm 이내 | 탑승 판정 알고리즘 실행 | DRIVER_PRESENT 반환 | 상 | P | ||||||||||
10 | 판정 기준 | P=성공 / F=실패 / N/A=수행 불가, 해당 없음 | 4 | UT-M-04 | FSR 점수 변환 정확성 | FR-DET-01 | ADC 값 0/100/800/1600/3000 입력 | pressure_adc_to_g() → score_pressure() | 0→0점, 100→0점, 800→1점, 1600→3점, 3000→5점 | 상 | P | 4 | UT-RPI-LOG-04 | 0/1 상태워드 이벤트 저장 확인 | FR-LOG-02, FR-LOG-04 | 16bit 상태워드 형식 입력 가능 상태 | ① 0/1 binary 상태워드 입력 ② 이벤트 저장 여부 확인 ③ 이벤트 종류 및 상태 값 확인 | 상태워드가 정상 해석되어 이벤트 로그로 저장된다. | 하 | P | 4 | UT-HAZ-004 | Rollaway 경고 비상등 점멸 | FR-CTL-10 | risk_level=3 | risk_level=3 전달 후 확인 | 1초 간격 점멸 시작 | 중 | P | 4 | UT-ACT-ENC-04 | D/R단 이동 판정 경계값 (2.0 km/h) | FR-DET-04 | 기어=D 또는 R, 계산 속도 = 2.0 km/h | 경계값 판정 | MOTION_MOVING 반환 (경계 포함) | 상 | P | 4 | UT-D-04 | 운전자 부재 판정 (D단) | FR-DET-01 | 두 조건 모두 미충족 | 탑승 판정 알고리즘 실행 | DRIVER_ABSENT 반환 | 상 | P | ||||||||||
11 | 5 | UT-M-05 | 압력 3샘플 중앙값 필터 | FR-DET-01 | 연속 3회 ADC: 100, 3000, 200 | 중앙값 필터 결과 확인 | median3_u32 → 200 출력 (이상치 3000 제거) | 중 | P | 5 | UT-RPI-LOG-05 | 잘못된 이벤트 차단 확인 | FR-LOG-03 | 필수 항목이 누락되거나 형식이 잘못된 이벤트 준비 | ① 잘못된 이벤트 입력 ② 저장 여부 확인 | 유효하지 않은 이벤트는 저장되지 않는다. | 하 | N/A | 5 | UT-HAZ-005 | D단 제동 비상등 점멸 | FR-CTL-10 | risk_level=4 | risk_level=4 전달 후 확인 | 1초 간격 점멸 시작 | 중 | P | 4-1 | UT-ACT-ENC-08 | N단 7 km/h 이상 이동 판정 | FR-DET-04, FR-JDG-05 | 기어=N, 인코더 기반 계산 속도 = 7.0 km/h | 이동 판정 함수 호출 (N단 모드) | MOTION_MOVING 반환 → Rollaway 제동 트리거 | 상 | P | 5 | UT-D-05 | 판정 불확실 상태 | FR-DET-01 | 단일 센서만 충족 | 탑승 판정 알고리즘 실행 | DRIVER_UNCERTAIN 반환 | 상 | P | ||||||||||||
12 | ECU 색상 범례 | ▶ 2. ToF 센서 (VL53L0X) 단위 테스트 — IF-I2C-01, FR-DET-01 | 6 | UT-RPI-LOG-06 | Raw Frame 표시 정보 저장 확인 | FR-LOG-05 | raw_payload 또는 binary 정보가 포함된 이벤트 준비 | ① 이벤트 입력 ② 저장 후 목록 조회 ③ Raw Frame 표시 확인 | 사용자가 확인 가능한 Raw Frame 정보가 함께 표시된다. | 하 | P | 6 | UT-HAZ-006 | R단 제동 비상등 점멸 | FR-CTL-10 | risk_level=5 | risk_level=5 전달 후 확인 | 1초 간격 점멸 시작 | 중 | P | 4-2 | UT-ACT-ENC-09 | N단 6.9 km/h 미만 정지 판정 | FR-DET-04, FR-JDG-05 | 기어=N, 계산 속도 = 6.9 km/h | 이동 판정 함수 호출 (N단 모드) | MOTION_STOPPED 반환 (7 km/h 미만 → 제동 미트리거) | 상 | P | 6 | UT-D-06 | D단 위험 판단 개시 (2초) | FR-JDG-02 | D단 + 부재 지속 | D단 제동 판단 로직 | D단 제동 위험 판단 수행 | 상 | P | |||||||||||||||||||
13 | MAIN (TC375#1) | 운전자 감지·위험 판단·제어 명령 생성 (핵심 ECU) | 1 | UT-M-06 | ToF 초기화 시퀀스 | IF-I2C-01 | MAIN 부팅 직후 | TofSensor_Init() 호출 g_tof_init_debug 확인 | g_tof_init_debug == 0 g_tofReady == TRUE | 상 | P | 7 | UT-RPI-LOG-07 | 기동 시 로그 저장소 준비 확인 | FR-LOG-05 | 빈 저장소 또는 최초 실행 환경 | ① 프로그램 기동 ② 로그 저장소 준비 여부 확인 ③ 초기 화면 확인 | 저장소가 자동 준비되고 화면이 정상 표시된다. | 하 | P | 7 | UT-HAZ-007 | Rollaway 제동 비상등 점멸 | FR-CTL-10 | risk_level=6 | risk_level=6 전달 후 확인 | 1초 간격 점멸 시작 | 중 | P | 5 | UT-ACT-ENC-05 | 속도 10 km/h 정확 산출 | FR-DET-04 | 고속 회전 입력 | 속도 계산 함수 실행 | 10.0 km/h ± 0.1 km/h 반환 | 상 | P | 7 | UT-D-09 | 부재 중 순간 복귀 → 타이머 리셋 | FR-JDG-02 | 부재 후 0.5초 착석 | 타이머 리셋 로직 확인 | 제동 판단 취소, 타이머 리셋 | 상 | P | ||||||||||
14 | CLU (TC275) | 경고 출력·LED 제어·LCD 표시·UART 로그 전송 | 2 | UT-M-07 | ToF 거리 측정 (착석) | IF-I2C-01, FR-DET-01 | 센서 위 10cm 위치에 물체 배치 | Task_ToF 50ms 주기 실행 TofSensor_GetDistanceMm() 확인 | 거리 90~110mm 범위 | 상 | P | ▶ 2. 대시보드 및 조회 기능 | 8 | UT-HAZ-008 | 경고 해제 → 비상등 OFF | FR-CTL-10 | risk_level=3→0 | risk_level 3→0 변경 후 GPIO 확인 | 즉시 OFF 전환 | 중 | P | 6 | UT-ACT-ENC-07 | 방향 판별 (정방향/역방향) | FR-DET-04 | A채널 B채널 위상차 입력 | 방향 판별 함수 호출 | 정방향/역방향 정확 구별 | 중 | P | 8 | UT-D-10 | 단일 센서 오류 — 제동 금지 | FR-NFR-03 | 압력 오검출, ToF 정상 | 다중 조건 판단 로직 | 단독 조건으로 제동 금지 | 상 | P | ||||||||||||||||||
15 | ACT (TC375#2) | 센서 수집·모터/서보 제어·속도 피드백 | 3 | UT-M-08 | ToF 거리 측정 (부재) | IF-I2C-01, FR-DET-01 | 센서 위 20cm+ 물체 없음 | TofSensor_GetDistanceMm() 확인 | 거리 ≥ 180mm | 상 | P | 1 | UT-RPI-WEB-01 | 메인 대시보드 표시 확인 | FR-LOG-06 | 이벤트 로그가 1건 이상 저장된 상태 | ① 웹 메인 화면 접속 ② 통계와 목록 표시 확인 | 총 이벤트 수, 경고 건수, 제동 건수, 최신 이벤트 목록이 정상 표시된다. | 하 | P | 9 | UT-HAZ-009 | 경계값 0→1 즉시 전환 | FR-CTL-10 | risk_level=0→1 | 전환 타이밍 측정 | 0: OFF, 1: 점멸 즉시 전환 | 중 | P | ▶ 2. 가속도 센서 (MPU6050) — FR-DET-04 | 9 | UT-D-11 | ToF만 오검출 — 제동 금지 | FR-NFR-03 | 압력 정상, ToF 부재 | 다중 조건 판단 로직 | 제동 금지 | 상 | P | ||||||||||||||||||
16 | RPi | 로그 저장·웹 대시보드·외부 알림 | 4 | UT-M-09 | ToF I2C 에러 복구 | IF-I2C-01 | I2C 통신 3회 연속 실패 유도 (SDA 라인 단락) | g_tofI2cErrorStreak ≥ 3 확인 TofSensor_Recover() 자동 실행 | Soft Reset + 재초기화 수행 g_tof_recover_count 증가 | 상 | N/A | 2 | UT-RPI-WEB-02 | 조건 검색 기능 확인 | FR-LOG-07 | 서로 다른 종류의 이벤트가 여러 건 저장된 상태 | ① category 조건 조회 ② keyword 조건 조회 ③ limit 조건 조회 | 조건에 맞는 로그만 필터링되어 표시된다. | 하 | P | ▶ 2. 브레이크등 LED 제어 — FR-CTL-11, EXT01_EXT02 | 1 | UT-ACT-ACC-01 | 정지 상태 가속도 읽기 | FR-DET-04 | 차체 정지, 수평 배치 | 3축 가속도 읽기 (I2C) | X≈0g, Y≈0g, Z≈1g 반환 | 중 | P | 10 | UT-D-12 | 도어 무관 D단 제동 확인 | FR-JDG-02 | D단 + 도어 닫힘 + 운전자 부재 | 판단 로직 확인 | 운전자 부재 조건 중심 제동 가능 | 중 | P | ||||||||||||||||||
17 | 5 | UT-M-10 | ToF 점수 변환 정확성 | FR-DET-01 | ToF mm 값: 30/80/140/170/200 | tof_mm_to_cm() → score_tof() | 3cm→0점, 8cm→5점, 14cm→3점, 17cm→1점, 20cm→0점 | 중 | P | 3 | UT-RPI-WEB-03 | 최근 로그 API 조회 확인 | FR-LOG-08 | 이벤트 로그가 여러 건 저장된 상태 | ① /api/events GET 요청 ② 응답 내용 확인 | 최근 로그 목록과 통계 정보가 JSON으로 반환된다. | 하 | P | 1 | UT-BRK-001 | 정상 상태 브레이크등 OFF | FR-CTL-11 | risk_level=0 | brake_state=0 시 브레이크등 GPIO 확인 | GPIO LOW (OFF) | 중 | P | 2 | UT-ACT-ACC-02 | 이동 중 X축 가속도 감지 | FR-DET-04 | 전방 가속 시뮬레이션 | X축 가속도 읽기 | 양수 X축 가속도 감지 | 중 | P | 11 | UT-D-13 | 부재 직전 P단 전환 → 비활성 | FR-SAF-01 | 부재 직후 P단 전환 | P단 억제 로직 | 시스템 비활성, 제동 없음 | 상 | P | ||||||||||||
18 | 6 | UT-M-11 | ToF 미준비 상태 출력 | IF-I2C-01 | 초기화 실패 상태 | TofSensor_GetDistanceMm() 확인 | TOF_ERROR_MM(0) 반환 | 중 | N/A | 4 | UT-RPI-WEB-04 | 외부 이벤트 등록 API 확인 | FR-LOG-09 | POST 요청 가능한 상태 | ① /api/events POST 요청 ② 응답 확인 ③ 목록 또는 API 재조회 | 외부에서 등록한 이벤트가 정상 저장된다. | 하 | P | 2 | UT-BRK-002 | D단 제동 브레이크등 ON | FR-CTL-11 | risk_level=4 | D단 제동 시 GPIO 확인 | GPIO HIGH (ON) | 중 | P | 3 | UT-ACT-ACC-03 | g×100 정수 인코딩 | 통신 아키텍처 | accel_x=0.50g | CAN 전송용 인코딩 | accel_x=50 (0.50g×100) 정수 변환 | 중 | P | ▶ 2. D단 경고/제어 및 표시/로그 | ||||||||||||||||||||
19 | ▶ 3. 초음파 센서 (HC-SR04) 단위 테스트 — IF-ERU-01, IF-GPIO-03, FR-DET-01 | ▶ 3. 상태 감시 및 실시간 알림 기능 | 3 | UT-BRK-003 | R단 제동 브레이크등 ON | FR-CTL-11 | risk_level=5 | R단 제동 시 GPIO 확인 | GPIO HIGH (ON) | 중 | P | 4 | UT-ACT-ACC-05 | I2C 통신 정상 동작 | FR-DET-04 | MPU6050 I2C 주소 0x68 | I2C 읽기 함수 호출 | 정상 데이터 수신 (응답 확인) | 중 | P | 1 | UT-D-14 | D단 1차 경고 출력 | FR-JDG-01, FR-CTL-01 | 기어=D, 도어=열림 | 경고 출력 확인 | 부저/LCD 1차 경고 출력 | 상 | P | ||||||||||||||||||||||||||||
20 | 1 | UT-M-12 | ERU 인터럽트 초기화 | IF-ERU-01 | MAIN 부팅 직후 | Ultrasonic_Init() 후 ERU ISR 카운트 확인 (g_eru_isr_count) | Trig 후 ISR 2회 발생 (Rising + Falling) | 상 | P | 1 | UT-RPI-STS-01 | 직렬 연결 상태 조회 확인 | FR-LOG-11 | RPi 프로그램 실행 중 | ① /health 조회 ② /api/serial/status 조회 | 직렬 연결 여부, 최근 오류, 수신 상태 등 진단 정보가 정상 표시된다. | 하 | P | 4 | UT-BRK-004 | Rollaway 제동 브레이크등 ON | FR-CTL-11 | risk_level=6 | Rollaway 제동 시 GPIO 확인 | GPIO HIGH (ON) | 중 | P | ▶ 3. 기어별 DC 모터 제어 — ACT ECU 기어 시뮬레이션 | 2 | UT-D-15 | D단 1차 경고 타이밍 500 ms | FR-JDG-01 | D단 + 도어 열림 판단 시점 | 경고 명령 시간 측정 | 500 ms 이내 경고 명령 | 상 | P | ||||||||||||||||||||
21 | 2 | UT-M-13 | 초음파 거리 측정 (착석) | IF-GPIO-03, FR-DET-01 | 센서 위 5cm 위치에 물체 배치 | ultrasonic_update() 상태머신 실행 latest_distance_mm 확인 | 거리 40~60mm 범위 | 상 | P | 2 | UT-RPI-STS-02 | 신규 이벤트 실시간 알림 확인 | FR-LOG-12, FR-LOG-13 | 브라우저에서 메인 화면 접속 상태 | ① 신규 이벤트 저장 ② 화면 알림 확인 | 신규 이벤트 발생 시 웹 화면에 실시간 알림이 표시된다. | 하 | P | 5 | UT-BRK-005 | 제동 해제 → 브레이크등 OFF | FR-CTL-11 | risk_level=6→0 | brake_state 2→0 후 GPIO 확인 | 즉시 OFF | 중 | P | 1 | UT-ACT-MOT-01 | D단 저속 정회전 | 기어 D단 모터 제어 | MAIN으로부터 motor_cmd=FWD 수신 | 모터 제어 함수 실행 | 저속 정회전 (크리프 속도 5~8 km/h) | 상 | P | 3 | UT-D-16 | D단 경고 강화 | FR-JDG-06, FR-CTL-02 | 1차 경고 + 부재 | 강화 경고 출력 확인 | 연속음/강화 메시지 출력 | 중 | P | ||||||||||||
22 | 3 | UT-M-14 | 초음파 거리 측정 (부재) | IF-GPIO-03, FR-DET-01 | 센서 위 20cm+ 물체 없음 | latest_distance_mm 확인 | 거리 ≥ 150mm | 상 | P | 3 | UT-RPI-STS-03 | SSE 연결 유지 확인 | FR-LOG-12 | 실시간 구독 가능한 브라우저 환경 | ① 실시간 스트림 연결 ② 일정 시간 유지 ③ 연결 상태 확인 | 실시간 이벤트 스트림이 유지되고 신규 이벤트를 수신할 수 있다. | 하 | P | 6 | UT-BRK-006 | 경고만(제동 아님) 브레이크등 OFF | FR-CTL-11 | risk_level=1 (제동 아님) | 경고 상태에서 브레이크등 확인 | GPIO LOW (비상등만 점멸) | 중 | P | 2 | UT-ACT-MOT-02 | R단 저속 역회전 | 기어 R단 모터 제어 | MAIN motor_cmd=REV 수신 | 모터 제어 함수 실행 | 저속 역회전 시뮬레이션 | 상 | P | 4 | UT-D-17 | D단 경고 해제 | FR-CTL-03 | 경고 상태 + 복귀 조건 | 해제 확인 | 500 ms 이내 해제 | 중 | P | ||||||||||||
23 | 4 | UT-M-15 | 초음파 타임아웃 처리 | IF-ERU-01 | Echo 핀 미연결 (신호 없음) | 50ms 타임아웃 후 상태 확인 | latest_distance_mm = 0 ultra_phase → US_COOLDOWN | 상 | P | 4 | UT-RPI-STS-04 | 직렬 상태 갱신 표시 확인 | FR-LOG-11, FR-LOG-13 | 메인 화면 접속 상태 | ① 직렬 연결 상태 변화 유도 ② 화면 상태 표시 확인 | 직렬 연결 상태 변화가 화면에 반영된다. | 하 | P | ▶ 3. 부저 제어 — FR-CTL-01~02, FR-CTL-06 | 3 | UT-ACT-MOT-03 | N단 자유회전 (개방) | 기어 N단 모터 제어 | MAIN motor_cmd=NEUTRAL 수신 | 모터 단자 개방 함수 실행 | 모터 단자 개방, 자유회전 상태 | 상 | P | 5 | UT-D-18 | D단 자동 제동 명령 | FR-CTL-04 | D단 위험 판단 완료 | ACT 제동 명령 확인 | ACT에 제동 명령 출력 | 상 | P | ||||||||||||||||||||
24 | 5 | UT-M-16 | 초음파 비블로킹 상태머신 | IF-ERU-01 | Task_Sensor 10ms 주기 동작 중 | US_TRIGGER→US_WAIT→US_COOLDOWN 전이 확인 | 총 사이클 ≈ 30ms Task_Sensor 10ms 주기 유지 | 중 | P | ▶ 4. 이벤트 표시 기능 | 1 | UT-BUZ-001 | 정상 상태 부저 무음 | FR-CTL-01 | risk_level=0 | risk_level=0 전달 후 부저 출력 확인 | 부저 OFF (무음) | 중 | P | 4 | UT-ACT-MOT-04 | P단 쇼트 브레이킹 (잠금) | 기어 P단 모터 제어 | MAIN motor_cmd=PARK 수신 | 쇼트 브레이킹 함수 실행 | 모터 단락, 회전 저항 최대 | 상 | P | 6 | UT-D-19 | D단 제동 응답 시간 500 ms | FR-NFR-02 | 위험 판단 시점 기준 | CAN 제동 명령 시간 측정 | 500 ms 이내 | 상 | P | ||||||||||||||||||||
25 | 6 | UT-M-17 | 초음파 점수 변환 정확성 | FR-DET-01 | ultra_cm 값: 1/5/10/13/20 | score_ultrasonic() | 1cm→0점, 5cm→5점, 10cm→3점, 13cm→1점, 20cm→0점 | 중 | P | 1 | UT-RPI-LED-01 | 경고 이벤트 LED 표시 확인 | FR-LOG-14 | warning 이벤트 저장 가능 상태 | ① 경고 이벤트 저장 ② LED 상태 확인 | 경고 이벤트 발생 시 Orange LED가 표시된다. | 하 | P | 2 | UT-BUZ-002 | 1차 경고 단속음 (1초 간격) | FR-CTL-01 | risk_level=1 | 부저 패턴 측정 | 1초 간격 토글 | 중 | P | 5 | UT-ACT-MOT-05 | 모터 제어 명령 응답 시간 | 기어 D단 모터 제어 | CAN 명령 수신 시점 측정 | 모터 구동 시작 시간 측정 | CAN 수신 후 100 ms 이내 구동 | 중 | P | 7 | UT-D-20 | D단 2 km/h 이상 즉시 자동 제동 | FR-CTL-04 | D단 + 속도 2 km/h 이상 감지 | 이동 2 km/h 도달 즉시 제동 명령 → 서보 제동 확인 | 2 km/h 이상 즉시 제동, 2초 이내 완전 정지 | 상 | P | ||||||||||||
26 | ▶ 4. 기어/도어 스위치 단위 테스트 — IF-GPIO-01/02, FR-DET-02/03 | 2 | UT-RPI-LED-02 | 제동 이벤트 LED 표시 확인 | FR-LOG-15 | brake 이벤트 저장 가능 상태 | ① 제동 이벤트 저장 ② LED 상태 확인 | 제동 이벤트 발생 시 Red LED가 표시된다. | 하 | P | 3 | UT-BUZ-003 | 2차 강화 경고 빠른 단속음 | FR-CTL-02 | risk_level=2 | 부저 패턴 측정 | 0.3초 간격 빠른 토글 | 중 | P | 6 | UT-ACT-MOT-07 | 모터 방향 전환 (D→R) | 기어 전환 모터 제어 | motor_cmd=FWD→REV | 방향 전환 함수 실행 | 역회전으로 즉시 전환 | 중 | P | 8 | UT-D-21 | D단 제동 유지 | FR-CTL-08 | 자동 제동 후 조건 미충족 | 제동 유지 확인 | 제동 유지 | 상 | P | ||||||||||||||||||||
27 | 1 | UT-M-18 | 기어 P 버튼 인식 | IF-GPIO-01a, FR-DET-02 | P버튼(P02.3) press→release | 3샘플 디바운싱 + press-release 래치 gear_ok 확인 | gear_ok = GEAR_P | 상 | P | 3 | UT-RPI-LED-03 | 시스템 해제 이벤트 LED 표시 확인 | FR-LOG-16 | system release 이벤트 저장 가능 상태 | ① system release 이벤트 저장 ② LED 상태 확인 | 시스템 해제 또는 정상 복귀 시 Green LED가 표시된다. | 하 | F | 4 | UT-BUZ-004 | Rollaway 경고 단속음 | FR-CTL-06 | risk_level=3 | 부저 패턴 확인 | 단속음 (0.1초 단속음) | 중 | P | ▶ 4. 서보 브레이크 제어 — FR-CTL-04~09 | 9 | UT-D-22 | D단 제동 해제 | FR-CTL-09 | 착석 + 도어 닫힘 | 해제 확인 | 제동 해제 | 상 | P | ||||||||||||||||||||
28 | 2 | UT-M-19 | 기어 R 버튼 인식 | IF-GPIO-01b, FR-DET-02 | R버튼(P02.5) press→release | 동일 래치 로직 확인 | gear_ok = GEAR_R | 상 | P | 4 | UT-RPI-LED-04 | status/OK 이벤트 LED 소등 확인 | FR-LOG-17 | status 또는 OK 이벤트 저장 가능 상태 | ① status/OK 이벤트 저장 ② LED 상태 확인 | 정상 상태 이벤트에서는 LED가 소등된다. | 하 | P | 5 | UT-BUZ-005 | D단 제동 연속음 | FR-CTL-01 | risk_level=4 | 부저 패턴 확인 | 제동 경고 연속음 | 중 | P | 1 | UT-ACT-SRV-01 | D단 제동 명령 수신 → 서보 제동 | FR-CTL-04 | MAIN CAN brake_cmd=1 (D단 제동) | 서보 제동 함수 실행 | 서보 제동 각도로 이동, 모터 정지 | 상 | P | 10 | UT-D-23 | D단 해제 안내 문구 | FR-CTL-09 | 착석X 또는 도어 열림 | LCD 안내 메시지 확인 | 적절한 LCD 안내 표시 | 중 | P | ||||||||||||
29 | 3 | UT-M-20 | 기어 N 버튼 인식 | IF-GPIO-01c, FR-DET-02 | N버튼(P02.4) press→release | 동일 래치 로직 확인 | gear_ok = GEAR_N | 상 | P | 5 | UT-RPI-AUD-01 | 경고 이벤트 음향 경고 확인 | FR-LOG-18 | MP3 모듈 사용 가능 상태 | ① warning 이벤트 저장 ② 음향 출력 확인 | 경고 이벤트 발생 시 warning 음원이 재생된다. | 하 | P | 6 | UT-BUZ-006 | R단 제동 연속음 | FR-CTL-01 | risk_level=5 | 부저 패턴 확인 | 제동 경고 연속음 | 중 | P | 2 | UT-ACT-SRV-02 | R단 제동 명령 수신 → 서보 제동 | FR-CTL-05 | MAIN CAN brake_cmd=1 (R단 제동) | 서보 제동 함수 실행 | 서보 제동 각도로 이동 | 상 | P | 11 | UT-D-24 | D단 비상등 점멸 | FR-CTL-10 | D단 자동 제동 발생 | LED 동작 확인 | 1초 간격 점멸 | 중 | P | ||||||||||||
30 | 4 | UT-M-21 | 기어 D 버튼 인식 | IF-GPIO-01d, FR-DET-02 | D버튼(P02.6) press→release | 동일 래치 로직 확인 | gear_ok = GEAR_D | 상 | P | 6 | UT-RPI-AUD-02 | 제동 이벤트 음향 경고 확인 | FR-LOG-18 | MP3 모듈 사용 가능 상태 | ① brake 이벤트 저장 ② 음향 출력 확인 | 제동 이벤트 발생 시 brake 음원이 재생된다. | 하 | P | 7 | UT-BUZ-007 | Rollaway 제동 연속음 | FR-CTL-01 | risk_level=6 | 부저 패턴 확인 | 제동 경고 연속음 | 중 | P | 3 | UT-ACT-SRV-03 | Rollaway 제동 → 서보 제동 (모터 개방 유지) | FR-CTL-07 | MAIN CAN Rollaway 제동 명령 | 서보 제동 함수 실행 (N단) | 서보 제동, 모터는 개방 상태 유지 | 상 | P | 12 | UT-D-25 | D단 브레이크등 점등 | FR-CTL-11 | D단 자동 제동 발생 | 후방 표시 확인 | 브레이크등 점등 | 중 | P | ||||||||||||
31 | 5 | UT-M-22 | 기어 디바운싱 노이즈 제거 | IF-GPIO-01, FR-DET-02 | 10ms 주기 3샘플 중 1샘플 불일치 | 불일치 시 기어 미전환 확인 | 기어 유지 (노이즈 무시) | 중 | P | ▶ 5. 외부 연동 및 운영 기능 | 8 | UT-BUZ-008 | risk 상승 시 패턴 전환 | FR-CTL-02 | risk=1→2 | 전환 시 패턴 변화 확인 | 단속음→빠른 단속음 즉시 전환 | 중 | P | 4 | UT-ACT-SRV-04 | D단 2 km/h 이상 즉시 서보 제동 | FR-CTL-04, FR-JDG-02 | D단 크리프 전진 2 km/h 이상 감지 | 이동 감지 시점 → 서보 제동 시작 시점 측정 | 2 km/h 이상 감지 즉시 서보 제동, 2초 이내 완전 정지 | 상 | P | 13 | UT-D-26 | D단 기어 표시 | FR-DSP-01 | D단 전환 | LCD D 표시 확인 | D 표시 200 ms 이내 | 중 | P | ||||||||||||||||||||
32 | 6 | UT-M-23 | 기어 반영 시간 | FR-DET-02 | 기어 전환 시점 측정 | press→release 후 g_sensor.gear 반영 시간 | 30ms 이내 반영 (3샘플 × 10ms) | 상 | P | 1 | UT-RPI-EXT-01 | 부팅 후 URL 알림 전송 확인 | FR-LOG-19 | 네트워크 연결 가능 상태 | ① 웹 서버 기동 ② 외부 알림 수신 확인 | MON 접속 URL이 외부 알림 채널로 정상 전송된다. | 하 | P | 9 | UT-BUZ-009 | risk 하강 시 부저 OFF | FR-CTL-03 | risk=3→0 | 전환 후 부저 확인 | 즉시 OFF | 중 | P | 5 | UT-ACT-SRV-05 | R단 2 km/h 이상 즉시 서보 제동 | FR-CTL-05, FR-JDG-03 | R단 크리프 후진 2 km/h 이상 감지 | 이동 감지 시점 → 서보 제동 시작 시점 측정 | 2 km/h 이상 감지 즉시 서보 제동, 2초 이내 완전 정지 | 상 | P | 14 | UT-D-27 | D단 경고 상태 표시 | FR-DSP-03 | D단 경고/강화 상태 | 상태 표시 확인 | 상태 정확 표시 | 중 | P | ||||||||||||
33 | 7 | UT-M-24 | 도어 열림 감지 | IF-GPIO-02, FR-DET-03 | 도어 스위치(P02.7) 해제 | 3샘플 다수결 후 door_ok 확인 | door_ok = DOOR_OPEN | 상 | P | 2 | UT-RPI-OPR-01 | 자동 실행 설정 확인 | FR-LOG-20 | systemd 서비스 파일 존재 상태 | ① 서비스 설정 확인 ② 실행 조건 확인 | network-online 이후 자동 실행 및 재시작 조건이 설정되어 있다. | 하 | P | 10 | UT-BUZ-010 | 0~6 단계별 패턴 구별 | FR-CTL-01~02 | risk=0~6 순차 입력 | 각 단계 패턴 측정 | 각 단계별 고유 패턴 출력 | 중 | P | 5-1 | UT-ACT-SRV-11 | N단 7 km/h 이상 Rollaway 서보 제동 | FR-CTL-07, FR-JDG-05 | N단 자유회전 중 속도 7.0 km/h 감지 | 이동 감지 시점 → 서보 제동 시작 시점 측정 | 7 km/h 이상 감지 즉시 서보 제동, 2초 이내 완전 정지 (모터는 개방 상태 유지) | 상 | P | 15 | UT-D-28 | D단 제동 상태 표시 | FR-DSP-04 | 제동 진입/유지/해제 | 상태 표시 확인 | 상태 정확 표시 | 중 | P | ||||||||||||
34 | 8 | UT-M-25 | 도어 닫힘 감지 | IF-GPIO-02, FR-DET-03 | 도어 스위치(P02.7) 눌림 | 3샘플 다수결 후 door_ok 확인 | door_ok = DOOR_CLOSE | 상 | P | 3 | UT-RPI-OPR-02 | 직렬 연결 실패 후 재시도 확인 | FR-LOG-21 | 직렬 포트 연결 실패 상황 준비 | ① 직렬 연결 실패 유도 ② 상태 조회 확인 | 직렬 연결 실패 시 재시도가 수행되고 오류 정보가 상태 화면에 표시된다. | 하 | P | ▶ 4. LCD1 표시 (운전자 안내) — FR-DSP-01~05 | 6 | UT-ACT-SRV-06 | 제동 유지 — 해제 조건 전까지 | FR-CTL-08 | 제동 후 control_release_flag=0 | 제동 유지 상태 확인 | 해제 명령 없으면 서보 제동 유지 | 상 | P | 16 | UT-D-29 | D단 운전자 상태 표시 | FR-DSP-05 | 센서 조합 변화 | 운전자 상태 표시 확인 | 존재/부재/불확실 정확 표시 | 중 | P | ||||||||||||||||||||
35 | ▶ 5. 운전자 융합 판정 단위 테스트 — FR-DET-01 | 1 | UT-LCD1-001 | 기어 P단 표시 | FR-DSP-01 | gear_state=0 | LCD1 1행 확인 | P 0km stop' 형식 표시 | 중 | P | 7 | UT-ACT-SRV-07 | 제동 해제 → 서보 해제 + 기어 모드 전환 | FR-CTL-09 | 제동 중 control_release_flag=1 | 해제 함수 실행 | 서보 해제, 현재 기어에 맞는 모터 모드 전환 | 상 | P | 17 | UT-D-30 | D단 경고 이벤트 기록 | FR-LOG-01 | D단 경고 발생 | 로그 저장 확인 | 3초 이내 기록 | 하 | P | |||||||||||||||||||||||||||||
36 | 1 | UT-M-26 | 착석 판정 (3센서 모두 충족) | FR-DET-01 | 초음파=5cm, ToF=10cm, 압력=4000g | WS = 0.3×5 + 0.3×5 + 0.4×5 = 5.0 judge_driver_final() 확인 | DRIVER_SEATED (WS=5.0 > 1.0) | 상 | P | 2 | UT-LCD1-002 | 기어 R단 표시 | FR-DSP-01 | gear_state=1 | LCD1 1행 확인 | R단 표시 | 중 | P | 8 | UT-ACT-SRV-09 | 서보 PWM 해제 각도 검증 | FR-CTL-09 | 서보 해제 명령 | PWM 신호 측정 | 해제 목표 각도에 맞는 PWM 출력 | 중 | P | 18 | UT-D-31 | D단 제동 이벤트 기록 | FR-LOG-02 | 자동 제동 발생 | 제동 로그 저장 확인 | 시각/종류 저장 | 하 | P | |||||||||||||||||||||
37 | 2 | UT-M-27 | 부재 판정 (3센서 모두 미충족) | FR-DET-01 | 초음파=20cm, ToF=25cm, 압력=0g | WS = 0.3×0 + 0.3×0 + 0.4×0 = 0 judge_driver_final() 확인 | DRIVER_ABSENT (WS=0 ≤ 1.0) | 상 | P | 3 | UT-LCD1-003 | 기어 N단 표시 | FR-DSP-01 | gear_state=2 | LCD1 1행 확인 | N단 표시 | 중 | P | 9 | UT-ACT-SRV-10 | MAIN 명령 타임아웃 → 제동 유지 Fail-safe | 통신 Fail-safe | MAIN_ACT_CTRL 500 ms 이상 미수신 | 타임아웃 감지 로직 | 제동 중이라면 제동 유지 (안전 상태) | 상 | P | 19 | UT-D-32 | D단 제동 당시 상태 기록 | FR-LOG-03 | 제동 시점 상태 | 로그 내용 확인 | 기어/도어/운전자/속도 저장 | 하 | P | |||||||||||||||||||||
38 | 3 | UT-M-28 | 착석 판정 (압력만 충족) | FR-DET-01 | 초음파=20cm, ToF=25cm, 압력=5000g | WS = 0.3×0 + 0.3×0 + 0.4×5 = 2.0 | DRIVER_SEATED (WS=2.0 > 1.0) | 상 | P | 4 | UT-LCD1-004 | 기어 D단 표시 | FR-DSP-01 | gear_state=3 | LCD1 1행 확인 | D단 표시 | 중 | P | ▶ 5. CAN 피드백 송신 — ACT_MAIN_FEEDBACK, ACT_HEARTBEAT | 20 | UT-D-33 | D단 제동 해제 기록 | FR-LOG-07 | 운전자 복귀 후 해제 | 해제 로그 확인 | 해제 사유 저장 | 하 | P | |||||||||||||||||||||||||||||
39 | 5 | UT-M-30 | 3회 확정 카운트 (SEATED) | FR-DET-01 | WS > 1.0 조건 1회만 충족 | present_count 확인 | present_count=1, stable 미전환 (3회 미만) | 상 | P | 6 | UT-LCD1-006 | 속도 50 km/h 표시 | FR-DSP-01 | speed=50 | LCD1 속도 영역 확인 | 50km 표시 | 중 | P | 2 | UT-ACT-FB-02 | brake_state_fb 정확 반영 | ACT_MAIN_FEEDBACK | 서보 제동 완료 상태 | CAN 피드백 메시지 확인 | brake_state_fb=2 (강제 제동) 정상 전송 | 상 | P | ▶ 3. R단 기능 테스트 | |||||||||||||||||||||||||||||
40 | 6 | UT-M-31 | 3회 확정 카운트 완료 (SEATED) | FR-DET-01 | WS > 1.0 조건 3회 연속 | stable_driver_state 확인 | stable = DRIVER_SEATED (30ms 후 확정) | 상 | P | 7 | UT-LCD1-007 | 운전자 존재 표시 | FR-DSP-05 | driver_present=1 | LCD1 2행 확인 | driver O' 표시 | 중 | P | 3 | UT-ACT-FB-03 | motor_state 피드백 정확 반영 | ACT_MAIN_FEEDBACK | 모터 FWD 구동 중 | CAN 피드백 메시지 확인 | motor_state=FWD 정상 전송 | 중 | P | 1 | UT-R-01 | R단 스위치 인식 | FR-DET-02 | 기어=P→R | R단 GPIO 확인 | R단 정확 인식 | 상 | P | |||||||||||||||||||||
41 | 7 | UT-M-32 | 3회 확정 카운트 (ABSENT) | FR-DET-01 | WS ≤ 1.0 조건 3회 연속 | absent_count, stable 확인 | stable = DRIVER_ABSENT | 상 | P | 8 | UT-LCD1-008 | 운전자 부재 표시 | FR-DSP-05 | driver_present=0 | LCD1 2행 확인 | driver X' 표시 | 중 | P | 4 | UT-ACT-FB-04 | fault_flag 오류 비트 송신 | ACT_MAIN_FEEDBACK | 액추에이터 이상 발생 | fault_flag SET 후 CAN 송신 확인 | fault_flag=1 포함 메시지 정상 전송 | 상 | P | 2 | UT-R-02 | R단 반영 시간 200 ms | FR-DET-02 | 기어 전환 | 전환 시간 측정 | 200 ms 이내 | 상 | P | |||||||||||||||||||||
42 | 8 | UT-M-33 | 카운트 리셋 (중간 전환) | FR-DET-01 | SEATED 2회 후 ABSENT 1회 | present_count/absent_count 확인 | present_count=0, absent_count=1 (리셋 후 재시작) | 중 | P | 9 | UT-LCD1-009 | 문 열림 표시 | FR-DSP-02 | door_state=1 | LCD1 2행 확인 | door O' 표시 | 중 | P | 5 | UT-ACT-FB-05 | Heartbeat 100 ms 주기 송신 | ACT_HEARTBEAT | ACT 정상 동작 중 | Heartbeat 메시지 송신 주기 측정 | 100 ms ± 10 ms 주기, alive_counter 증가 | 중 | P | 3 | UT-R-03 | R단 운전자 존재 판정 | FR-DET-01 | 착석+인체감지 | 탑승 판정 | DRIVER_PRESENT | 상 | P | |||||||||||||||||||||
43 | ▶ 6. CAN 통신 단위 테스트 — IF-CAN-01/02/03 | 10 | UT-LCD1-010 | 문 닫힘 표시 | FR-DSP-02 | door_state=0 | LCD1 2행 확인 | door X' 표시 | 중 | P | 4 | UT-R-04 | R단 운전자 부재 판정 | FR-DET-01 | 두 조건 미충족 | 탑승 판정 | DRIVER_ABSENT | 상 | P | ||||||||||||||||||||||||||||||||||||||
44 | 1 | UT-M-34 | CAN 초기화 + STB 핀 | IF-CAN-01, IF-GPIO-05 | MAIN 부팅 직후 | CanApp_Init() 후 P20.6=Low, g_can_init_ok 확인 | P20.6=Low (트랜시버 활성) g_can_init_ok=TRUE | 상 | P | 11 | UT-LCD1-011 | 갱신 시간 ≤ 200 ms | FR-DSP-01 | 기어 전환 시점 측정 | LCD 갱신 시간 측정 | 200 ms 이내 화면 반영 | 중 | P | 5 | UT-R-05 | R단 판정 불확실 | FR-DET-01 | 단일 조건 충족 | 탑승 판정 | DRIVER_UNCERTAIN | 상 | P | ||||||||||||||||||||||||||||||
45 | 2 | UT-M-35 | 0x100 메시지 송신 (DLC=2) | IF-CAN-01 | brake_cmd=RELEASE, gear=P | can_send_main_act_ctrl() 호출 g_can_tx100_count 확인 | TX 성공, txData[0]=0x0000 (Byte0=0, Byte1=0) | 상 | P | 12 | UT-LCD1-012 | 복합 상태 표시 | FR-DSP-01~05 | gear=D, speed=30, driver=1, door=0 | 전체 LCD1 확인 | D 30km / driver O door X 정확 표시 | 중 | P | 6 | UT-R-06 | R단 위험 판단 | FR-JDG-03 | R단 + 부재 | R단 제동 판단 | 제동 위험 판단 | 상 | P | ||||||||||||||||||||||||||||||
46 | 3 | UT-M-36 | 0x100 제동 명령 인코딩 | IF-CAN-01, FR-CTL-04 | risk_level=D_BRAKE | autoBrakeCommand=TRUE 시 brake_cmd 강제 FORCE 확인 | Byte0=2(FORCE), Byte1=gear | 상 | P | 13 | UT-LCD1-013 | 해제 안내 메시지 표시 | FR-CTL-09 | 제동 상태 + 착석 미충족 | LCD 해제 안내 확인 | 운전석에 착석하세요' 등 안내 메시지 표시 | 중 | P | 7 | UT-R-09 | R단 순간 복귀 리셋 | FR-JDG-03 | 부재 후 복귀 | 타이머 리셋 | 리셋 수행 | 상 | P | ||||||||||||||||||||||||||||||
47 | 4 | UT-M-37 | 0x100 기어 인코딩 (P/R/N/D) | IF-CAN-01 | gear=P,R,N,D 각각 | can_encode_gear() 결과 확인 | P→0, R→1, N→2, D→3 | 상 | P | ▶ 5. LCD2 표시 (시스템 상태 모니터링) — FR-DSP-03~04 | 8 | UT-R-10 | R단 단일 센서 오류 방지 | FR-NFR-03 | 단일 센서 오류 | 다중 조건 판단 | 제동 수행 | 상 | P | ||||||||||||||||||||||||||||||||||||||
48 | 5 | UT-M-38 | 0x100 송신 주기 50ms | IF-CAN-01 | Task_Can 동작 중 | g_can_tx100_count 1초간 관측 | 약 20회/초 (50ms 주기) | 중 | P | 1 | UT-LCD2-001 | RISK 0 정상 표시 | FR-DSP-03 | risk_level=0 | LCD2 1행 확인 | RISK:OK BRK:OFF' 표시 | 중 | P | 9 | UT-R-11 | R단 제동 명령 | FR-CTL-05 | R단 위험 판단 완료 | ACT 제동 명령 확인 | 제동 수행 | 상 | P | ||||||||||||||||||||||||||||||
49 | 6 | UT-M-39 | 0x200 메시지 송신 (DLC=4) | IF-CAN-02 | risk=NORMAL, driver=ABSENT, door=CLOSE, gear=P | can_send_main_clu_status() 호출 | Byte0=0, Byte1=0, Byte2=0, Byte3=0 | 상 | P | 2 | UT-LCD2-002 | RISK 1 경고 표시 | FR-DSP-03 | risk_level=1 | LCD2 1행 확인 | RISK:W1' 표시 | 중 | P | 10 | UT-R-12 | R단 제동 응답 500 ms | FR-NFR-02 | 위험 판단 발생 | 시간 측정 | 500 ms 이내 | 상 | P | ||||||||||||||||||||||||||||||
50 | 7 | UT-M-40 | 0x200 상태 인코딩 확인 | IF-CAN-02 | risk=D_BRAKE(4), driver=SEATED(1), door=OPEN(1), gear=D(3) | 각 Byte 값 확인 | Byte0=4, Byte1=1, Byte2=1, Byte3=3 | 상 | P | 3 | UT-LCD2-003 | RISK 3 Rollaway 표시 | FR-DSP-03 | risk_level=3 | LCD2 1행 확인 | RISK:W3' 표시 | 중 | P | 11 | UT-R-13 | R단 2 km/h 이상 즉시 자동 제동 | FR-CTL-05 | R단 + 속도 2 km/h 이상 감지 | 이동 2 km/h 도달 즉시 제동 명령 → 서보 제동 확인 | 2 km/h 이상 즉시 제동, 2초 이내 완전 정지 | 상 | P | ||||||||||||||||||||||||||||||
51 | 8 | UT-M-41 | 0x200 송신 주기 100ms | IF-CAN-02 | Task_Can 동작 중 | g_can_tx200_count 1초간 관측 | 약 10회/초 (100ms 주기) | 중 | P | 4 | UT-LCD2-004 | RISK 6 Rollaway 제동 표시 | FR-DSP-03 | risk_level=6 | LCD2 1행 확인 | RISK:B3 BRK:ON' 표시 | 중 | P | 12 | UT-R-14 | R단 제동 유지 | FR-CTL-08 | 제동 후 미복귀 | 제동 유지 확인 | 제동 유지 | 상 | P | ||||||||||||||||||||||||||||||
52 | 9 | UT-M-42 | 0x300 수신 및 파싱 | IF-CAN-03 | ACT에서 0x300 전송 speed=1000, brake=HOLD, accel=(10,-5,3) | can_process_rx_feedback() 후 g_can_last_* 변수 확인 | speed_x100=1000, brake=1, accel_x=10, accel_y=-5, accel_z=3 | 상 | P | 5 | UT-LCD2-005 | BRK:OFF 표시 | FR-DSP-04 | brake_state=0 | LCD2 BRK 영역 확인 | BRK:OFF 표시 | 중 | P | 13 | UT-R-15 | R단 제동 해제 | FR-CTL-09 | 착석+문닫힘 | 해제 확인 | 해제 수행 | 상 | P | ||||||||||||||||||||||||||||||
53 | 10 | UT-M-43 | 0x300 수신 → g_sensor 반영 | IF-CAN-03 | 0x300 정상 수신 | can_apply_act_feedback() 후 g_sensor.speed_kmh 확인 | speed_kmh=1000.0 act_feedback_alive=TRUE | 상 | P | 6 | UT-LCD2-006 | BRK:ON 표시 (강제 제동) | FR-DSP-04 | brake_state=2 | LCD2 BRK 영역 확인 | BRK:ON 표시 | 중 | P | 14 | UT-R-16 | R단 경고 해제 500 ms | FR-CTL-03 | 복귀 조건 충족 | 해제 시간 측정 | 500 ms 이내 해제 | 중 | P | ||||||||||||||||||||||||||||||
54 | 11 | UT-M-44 | 0x300 타임아웃 (300ms) | IF-CAN-03, FR-SAF-03 | 0x300 미수신 300ms 경과 | g_can_act_feedback_timeout 확인 | timeout=TRUE speed=0, accel=0, alive=FALSE | 상 | P | 7 | UT-LCD2-007 | 모터 상태 플래그 표시 | FR-DSP-04 | motor_mode=1 | LCD2 2행 M 영역 확인 | M:1' 정상 표시 | 중 | P | 15 | UT-R-17 | R단 비상등/브레이크등 | FR-CTL-10,11 | 자동 제동 발생 | LED 동작 확인 | LED 정상 동작 | 중 | P | ||||||||||||||||||||||||||||||
55 | 12 | UT-M-45 | CAN TX 재시도 (5회) | IF-CAN-01 | CAN 버스 Busy 상태 유도 | can_send_message() 재시도 횟수 확인 | 최대 5회 재시도 후 에러 카운트 증가 (g_can_tx_error_count++) | 중 | P | 8 | UT-LCD2-008 | 서보 상태 플래그 표시 | FR-DSP-04 | servo_state=1 | LCD2 2행 S 영역 확인 | S:1' 정상 표시 | 중 | P | 16 | UT-R-18 | R단 로그 저장 | FR-LOG-02,03 | 자동 제동 발생 | 로그 저장 확인 | R단 제동 로그 저장 | 하 | P | ||||||||||||||||||||||||||||||
56 | 13 | UT-M-46 | CAN Bus-Off 감지 및 복구 | IF-CAN-01, FR-SAF-05 | CAN Bus-Off 상태 유도 | g_can_bus_off_debug ≠ 0 확인 50ms 후 can_recover_busoff() | Bus-Off 복구 완료 g_can_busoff_recovery_count 증가 | 상 | P | 9 | UT-LCD2-009 | LED 상태 플래그 표시 | FR-DSP-04 | led_hazard=1 | LCD2 2행 L 영역 확인 | L:1' 정상 표시 | 중 | P | 17 | UT-R-19 | R단 상세 표시 | FR-DSP-03,04 | 상태 전환 | LCD 상태 표시 확인 | LCD 상태 일치 | 중 | P | ||||||||||||||||||||||||||||||
57 | 14 | UT-M-47 | CAN RX 필터 (0x300만) | IF-CAN-03 | ACT에서 0x100, 0x200, 0x300 전송 | RX FIFO0 수신 메시지 ID 확인 | 0x300만 수신 (0x100/0x200 필터링) | 중 | P | 10 | UT-LCD2-010 | 부저 상태 플래그 표시 | FR-DSP-04 | buzzer_mode=1 | LCD2 2행 B 영역 확인 | B:1' 정상 표시 | 중 | P | ▶ 4. N단 Rollaway 경고 판단 | ||||||||||||||||||||||||||||||||||||||
58 | ▶ 7. 위험 판단 상태 전이 단위 테스트 — FR-JDG-01~07 | 11 | UT-LCD2-011 | 복합 상태 표시 | FR-DSP-03~04 | risk=4, brake=2, 모든 플래그=1 | LCD2 전체 확인 | RISK:4 BRK:FRC / M:1 S:1 L:1 B:1 정확 표시 | 중 | P | 1 | UT-N-01 | N단 스위치 인식 | FR-DET-02 | 기어=P→N | N단 GPIO 확인 | N단 정확 인식 | 상 | P | ||||||||||||||||||||||||||||||||||||||
59 | 1 | UT-M-48 | D/R단+도어열림 → WARN_LV1 | FR-JDG-01 | gear=D, door=OPEN, driver=SEATED, prev=NORMAL | evaluate() 호출 | RISK_WARN_LV1 반환 | 상 | P | ▶ 6. UART 로그 전송 — FR-LOG-01~08, IF-COM-01 | 2 | UT-N-02 | N단 반영 시간 200 ms | FR-DET-02 | 기어 전환 | 전환 시간 측정 | 200 ms 이내 | 상 | P | ||||||||||||||||||||||||||||||||||||||
60 | 2 | UT-M-49 | D단+부재 → 즉시 D_BRAKE | FR-JDG-02 | gear=D, driver=ABSENT (시간 조건 없음) | evaluate() 호출 | RISK_D_BRAKE 반환 (즉시 전이) | 상 | P | 1 | UT-UART-001 | 정상 상태 UART 전송 | FR-LOG-01 | risk_level=0, 정상 상태 | UART 출력 데이터 로직분석기 확인 | risk_level=0 포함 상태 데이터 정상 전송 | 하 | P | 3 | UT-N-03 | 도어 열림 감지 | FR-DET-03 | 도어 열림 | 도어 상태 확인 | 열림 판정 | 중 | P | ||||||||||||||||||||||||||||||
61 | 3 | UT-M-50 | R단+부재 → 즉시 R_BRAKE | FR-JDG-03 | gear=R, driver=ABSENT | evaluate() 호출 | RISK_R_BRAKE 반환 (즉시 전이) | 상 | P | 2 | UT-UART-002 | 1차 경고 UART 전송 | FR-LOG-01 | risk_level=1 | UART 출력 확인 | risk_level=1 데이터 정상 전송 | 하 | P | 4 | UT-N-04 | Rollaway 위험 판단 | FR-JDG-04 | 기어=N, 도어=열림 | Rollaway 경고 판단 | Rollaway 위험 판단 수행 | 상 | P | ||||||||||||||||||||||||||||||
62 | 4 | UT-M-51 | N단+도어열림 → ROLLAWAY_WARN | FR-JDG-04 | gear=N, door=OPEN | evaluate() 호출 | RISK_ROLLAWAY_WARN 반환 | 상 | P | 3 | UT-UART-003 | Rollaway 경고 UART 전송 | FR-LOG-01 | risk_level=3 | UART 출력 확인 | risk_level=3 데이터 정상 전송 | 하 | P | 5 | UT-N-05 | Rollaway 경고 타이밍 200 ms | FR-JDG-04, FR-CTL-06 | N단 + 도어 열림 | 경고 명령 시간 측정 | 200 ms 이내 경고 | 상 | P | ||||||||||||||||||||||||||||||
63 | 5 | UT-M-52 | N단+이동+부재 → ROLLAWAY_BRAKE | FR-JDG-05 | gear=N, motion=MOVING, driver=ABSENT | evaluate() 호출 | RISK_ROLLAWAY_BRAKE 반환 | 상 | P | 4 | UT-UART-004 | 제동 상태 UART 전송 | FR-LOG-02 | risk=4, brake_state=2 | UART 출력 확인 | risk=4, brake=2 정상 전송 | 하 | P | 6 | UT-N-06 | N단 도어 닫힘 → 경고 해제 | FR-JDG-04 | N단 + 도어 닫힘 | 경고 해제 확인 | 경고 조건 해제 | 중 | P | ||||||||||||||||||||||||||||||
64 | 6 | UT-M-53 | N단+이동+착석 → ROLLAWAY_BRAKE 아님 | FR-JDG-05 | gear=N, motion=MOVING, driver=SEATED | evaluate() 호출 | ROLLAWAY_BRAKE 아님 (부재 조건 미충족) | 상 | P | 5 | UT-UART-005 | 복합 상태 UART 전송 | FR-LOG-01~06 | gear=3, speed=50, driver=1, door=0 | 복합 데이터 UART 전송 확인 | 모든 파라미터 올바르게 인코딩 전송 | 하 | P | 7 | UT-N-07 | N단 착석 상태 문 열림 — 제동 불가 | FR-SAF-03 | N단, 착석, 문열림 | SAF-03 로직 확인 | 1차 경고만, 자동 제동 금지 | 중 | P | ||||||||||||||||||||||||||||||
65 | 7 | UT-M-54 | WARN_LV1 → 도어2초 → WARN_LV2 | FR-JDG-06 | prev=WARN_LV1, door=OPEN, door_open_ms=2000 | evaluate() 호출 | RISK_WARN_LV2 반환 | 상 | P | 6 | UT-UART-006 | UART 전송 주기 확인 | FR-LOG-01 | 시스템 정상 동작 중 | 오실로스코프로 전송 주기 측정 | 설정 주기(100 ms)에 맞게 전송 | 하 | P | 8 | UT-N-08 | N단 착석 유지 자동 해제 | FR-SAF-03 | N단, 문열림, 착석 유지 | 자동 해제 타이머 확인 | 경고 자동 해제 | 중 | P | ||||||||||||||||||||||||||||||
66 | 8 | UT-M-55 | WARN_LV1 → 도어1.9초 → 유지 | FR-JDG-06 | prev=WARN_LV1, door=OPEN, door_open_ms=1900 | evaluate() 호출 | RISK_WARN_LV1 유지 | 상 | P | 7 | UT-UART-007 | risk 변경 즉시 반영 | FR-LOG-01 | risk=0→4 변경 | 변경 후 다음 UART 프레임 확인 | 변경된 값 다음 전송 주기에 즉시 반영 | 하 | P | ▶ 5. N단 이동 감지 및 Rollaway 제동 | ||||||||||||||||||||||||||||||||||||||
67 | 9 | UT-M-56 | D_BRAKE 자기 전이 (탈출 불가) | FR-JDG-07 | prev=D_BRAKE, gear=D, driver=ABSENT | evaluate() 호출 | RISK_D_BRAKE 유지 (자기 반환) | 상 | P | 8 | UT-UART-008 | 115200 bps 통신 속도 | FR-LOG-11 | UART 포트 설정 확인 | bps 설정값 및 실제 전송 속도 측정 | 115200 bps 이상 설정 및 동작 | 하 | P | 1 | UT-N-09 | N단 차량 이동 2 km/h 기준 판정 | FR-DET-04 | 1.5/ 2.0 / 2.5 km/h 속도 | 속도 km/h 값 확인 | 2.0 km/h 이상 시 Rollaway 이동 판정 | 상 | P | ||||||||||||||||||||||||||||||
68 | 10 | UT-M-57 | ROLLAWAY_BRAKE 자기 전이 | FR-JDG-07 | prev=ROLLAWAY_BRAKE | evaluate() 호출 | RISK_ROLLAWAY_BRAKE 유지 | 상 | P | ▶ 7. CAN 메시지 수신 및 파싱 — MAIN_CLU_STATUS, ACT_FEEDBACK | 2 | UT-N-10 | 인코더 기반 이동 감지 | FR-DET-04 | 바퀴 회전 발생 | 인코더 값 확인 | 이동 중 판정 | 상 | P | ||||||||||||||||||||||||||||||||||||||
69 | 11 | UT-M-58 | derive_motion (속도 기반) | FR-DET-04 | speed_kmh=1.0, alive=TRUE | derive_motion() 호출 | MOTION_MOVING (≥1.0 km/h) | 상 | P | 1 | UT-CAN-001 | MAIN→CLU risk_level 수신 | 통신 아키텍처 | MAIN CAN에서 risk_level=3 전송 | CAN 수신 후 변수 확인 | risk_level=3 정상 파싱 | 중 | P | 3 | UT-N-11 | 가속도 기반 이동 감지 | FR-DET-04 | 미세 이동 발생 | 가속도 값 확인 | 이동 중 판정 가능 | 중 | P | ||||||||||||||||||||||||||||||
70 | 12 | UT-M-59 | derive_motion (가속도 기반) | FR-DET-04 | speed=0, accel_x=2, alive=TRUE | derive_motion() 호출 | MOTION_MOVING (|accel_x| ≥ 2) | 상 | P | 2 | UT-CAN-002 | MAIN→CLU driver_present 수신 | 통신 아키텍처 | MAIN CAN driver_present=1 | CAN 수신 후 변수 확인 | driver_present=1 정상 파싱 | 중 | P | 4 | UT-N-12 | 센서 불일치 처리 | FR-NFR-03 | 인코더/가속도 불일치 | 다중 조건 판단 | 제동 보수적 억제 | 상 | N/A | ||||||||||||||||||||||||||||||
71 | 13 | UT-M-60 | derive_motion (alive=FALSE) | FR-DET-04, FR-SAF-03 | act_feedback_alive=FALSE | derive_motion() 호출 | MOTION_STOPPED (피드백 없음 → 정지 가정) | 상 | P | 2 | UT-CAN-003 | MAIN→CLU door_state 수신 | 통신 아키텍처 | MAIN CAN door_state=1 | CAN 수신 후 변수 확인 | door_state=1 정상 파싱 | 중 | P | 5 | UT-N-13 | Rollaway 발생 판단 (N단 2 km/h 기준) | FR-JDG-05 | N단 + 속도 2.0 km/h 이상 | Rollaway 발생 판단 | Rollaway 발생 판단 수행 → 즉시 제동 | 상 | P | ||||||||||||||||||||||||||||||
72 | ▶ 8. 제어 명령 생성 단위 테스트 — FR-CTL-01~09 | 4 | UT-CAN-004 | MAIN→CLU gear_state P 수신 | 통신 아키텍처 | MAIN CAN gear_state=0 | CAN 수신 후 변수 확인 | gear_state=0(P) 정상 파싱 | 중 | P | 6 | UT-N-14 | Rollaway 판단 시간 200 ms | FR-JDG-05 | N단 이동 시작 | 판단~제동 흐름 측정 | 200 ms 이내 판단 | 상 | P | ||||||||||||||||||||||||||||||||||||||
73 | 1 | UT-M-61 | WARN_LV1 → brake=RELEASE | FR-CTL-01 | state=WARN_LV1 | select_brake_cmd() 호출 | BRAKE_CMD_RELEASE (경고 상태 = 미제동) | 상 | P | 5 | UT-CAN-005 | MAIN→CLU gear_state D 수신 | 통신 아키텍처 | MAIN CAN gear_state=3 | CAN 수신 후 변수 확인 | gear_state=3(D) 정상 파싱 | 중 | P | 7 | UT-N-15 | Rollaway 제동 응답 100 ms | FR-NFR-02 | 발생 판단 완료 | 제동 명령 시간 측정 | 100 ms 이내 제동 명령 | 상 | P | ||||||||||||||||||||||||||||||
74 | 2 | UT-M-62 | D_BRAKE → brake=FORCE (초기) | FR-CTL-04 | state=D_BRAKE, ACT brake=RELEASE | select_brake_cmd() 호출 | BRAKE_CMD_FORCE (ACT 미제동 → FORCE) | 상 | P | 6 | UT-CAN-006 | ACT→CLU speed 수신 (little-endian) | 통신 아키텍처 | ACT CAN speed=50 LE 인코딩 | CAN 수신 후 speed 확인 | speed=50 정상 파싱 | 중 | P | 8 | UT-N-16 | N단 Rollaway 7 km/h 이상 즉시 제동 | FR-CTL-07 | 1.5/ 2.0 / 2.5 km/h 속도 | 속도 km/h 값 확인 | 2 km/h 이상 즉시 제동, 2초 이내 완전 정지 | 상 | P | ||||||||||||||||||||||||||||||
75 | 3 | UT-M-63 | D_BRAKE → brake=HOLD (유지) | FR-CTL-04 | state=D_BRAKE, ACT brake=HOLD | select_brake_cmd() 호출 | BRAKE_CMD_HOLD (ACT 제동중 → HOLD) | 상 | P | 7 | UT-CAN-007 | ACT→CLU brake_state 수신 | 통신 아키텍처 | ACT CAN brake_state=2 | CAN 수신 후 확인 | brake_state=2(강제 제동) 정상 파싱 | 중 | P | 9 | UT-N-17 | Rollaway 제동 유지 | FR-CTL-08 | 제동 후 미복귀 | 제동 유지 확인 | 제동 유지 | 상 | P | ||||||||||||||||||||||||||||||
76 | 4 | UT-M-64 | ROLLAWAY_BRAKE → FORCE→HOLD | FR-CTL-07 | state=ROLLAWAY_BRAKE | ACT 피드백에 따른 전환 확인 | FORCE(초기) → HOLD(ACT 응답) | 상 | P | 8 | UT-CAN-008 | CAN 수신 누락 처리 | 통신 Fail-safe | CAN 300 ms 이상 미수신 | 타임아웃 처리 확인 | LCD '통신 끊김' 표시 + 비상등 경고 점멸 | 중 | P | 10 | UT-N-18 | Rollaway 제동 해제 | FR-CTL-09 | 착석 + 도어 닫힘 | 해제 확인 | 제동 해제 | 상 | P | ||||||||||||||||||||||||||||||
77 | 5 | UT-M-65 | 제동해제 시 기어 P 자동전환 | FR-CTL-09, FR-SAF-04 | brake FORCE→RELEASE 전환 시점 | shiftToParkOnRelease 로직 can_apply_gear_override() 확인 | gear override 활성 CAN 기어=P(0) 고정 | 상 | P | 9 | UT-CAN-009 | CAN 최대값 파싱 (risk=6) | 통신 아키텍처 | risk_level=6 전송 | 최대값 수신 후 변수 확인 | risk_level=6 정상 저장, 오버플로우 없음 | 중 | P | 11 | UT-N-19 | 일부 조건 미충족 안내 | FR-CTL-09 | 문만 닫힘, 착석 없음 | LCD 안내 확인 | LCD 문구 표시 | 중 | P | ||||||||||||||||||||||||||||||
78 | 6 | UT-M-66 | gear override 물리 기어 해제 | FR-SAF-04 | override 활성 중 물리 기어 D→R 전환 | sensor_driver.c gear_ok 변경 감지 | g_gear_override_active=FALSE (물리 전환으로 해제) | 상 | P | 12 | UT-N-20 | Rollaway 외부 경고 LED | FR-CTL-10,11 | Rollaway 제동 발생 | LED 동작 확인 | LED 점멸, 브레이크등 점등 | 중 | P | |||||||||||||||||||||||||||||||||||||||
79 | 7 | UT-M-67 | 0x100 자동제동 중 FORCE 유지 | FR-CTL-08 | autoBrakeCommand=TRUE, command.brake_cmd=HOLD | can_send_main_act_ctrl() 내부 brakeCmd 강제 확인 | brakeCmd=FORCE (HOLD→FORCE 오버라이드) | 상 | P | 13 | UT-N-21 | Rollaway 경고 로그 | FR-LOG-01 | N단 문열림 경고 | 경고 로그 저장 확인 | 경고 종류 저장 | 하 | P | |||||||||||||||||||||||||||||||||||||||
80 | ▶ 9. 정상 운전 보호 단위 테스트 — FR-SAF-01~05 | 14 | UT-N-22 | Rollaway 제동 로그 | FR-LOG-02 | Rollaway 자동 제동 | 제동 로그 확인 | 제동 종류 저장 | 하 | P | |||||||||||||||||||||||||||||||||||||||||||||||
81 | 1 | UT-M-68 | P단 → NORMAL 복귀 (비제동) | FR-SAF-01 | gear=P, prev=WARN_LV2 | evaluate() 호출 | RISK_NORMAL 반환 | 상 | P | 15 | UT-N-23 | 제동 당시 상태 로그 | FR-LOG-03 | Rollaway 발생 시점 | 로그 내용 확인 | 상세 상태 저장 | 하 | P | |||||||||||||||||||||||||||||||||||||||
82 | 2 | UT-M-69 | P단 → D_BRAKE에서 탈출 불가 | FR-SAF-01 | gear=P, prev=D_BRAKE | evaluate() 호출 | D_BRAKE 유지 (is_auto_brake_state=TRUE) | 상 | P | 16 | UT-N-24 | 제동 해제 로그 | FR-LOG-07 | 해제 수행 | 해제 로그 확인 | 시각/사유 저장 | 하 | P | |||||||||||||||||||||||||||||||||||||||
83 | 3 | UT-M-70 | P단 → R_BRAKE에서 탈출 불가 | FR-SAF-01 | gear=P, prev=R_BRAKE | evaluate() 호출 | R_BRAKE 유지 | 상 | P | 17 | UT-N-25 | 지속 시간 로그 | FR-LOG-08 | 제동 후 해제 | 지속 시간 로그 확인 | 지속 시간 저장 | 하 | P | |||||||||||||||||||||||||||||||||||||||
84 | 4 | UT-M-71 | 착석+도어닫힘 → NORMAL (비제동) | FR-SAF-02 | driver=SEATED, door=CLOSE, prev=WARN_LV2 | evaluate() 호출 | RISK_NORMAL 반환 | 상 | P | ▶ 6. N단 표시 및 정상 운전 보호 | |||||||||||||||||||||||||||||||||||||||||||||||
85 | 5 | UT-M-72 | 착석+도어닫힘 → NORMAL (D_BRAKE) | FR-SAF-02 | driver=SEATED, door=CLOSE, prev=D_BRAKE | evaluate() 호출 | RISK_NORMAL 반환 (자동제동에서도 복귀) | 상 | P | 1 | UT-N-26 | N단 LCD 표시 | FR-DSP-01 | N단 전환 | LCD N 표시 확인 | N 표시 | 중 | P | |||||||||||||||||||||||||||||||||||||||
86 | 6 | UT-M-73 | 착석+도어닫힘 → NORMAL (ROLLAWAY) | FR-SAF-02 | driver=SEATED, door=CLOSE, prev=ROLLAWAY_BRAKE | evaluate() 호출 | RISK_NORMAL 반환 | 상 | P | 2 | UT-N-27 | Rollaway 경고 단계 표시 | FR-DSP-03 | 경고/제동 발생 | 상태 표시 확인 | 상태 일치 | 중 | P | |||||||||||||||||||||||||||||||||||||||
87 | 7 | UT-M-74 | 착석만 (도어 열림) → 미복귀 | FR-SAF-02 | driver=SEATED, door=OPEN, prev=D_BRAKE | evaluate() 호출 | D_BRAKE 유지 (두 조건 모두 필요) | 상 | P | 3 | UT-N-28 | Rollaway 제동 상태 표시 | FR-DSP-04 | 상태 변화 | LCD 표시 확인 | 정확 표시 | 중 | P | |||||||||||||||||||||||||||||||||||||||
88 | 8 | UT-M-75 | ACT 타임아웃 fail-safe | FR-SAF-03 | 0x300 미수신 300ms | can_apply_act_timeout() 후 g_sensor 확인 | speed=0, accel=0, alive=FALSE | 상 | N/A | 4 | UT-N-29 | 운전자 상태 표시 | FR-DSP-05 | 센서 조합 변화 | 운전자 상태 표시 확인 | 정확 표시 | 중 | P | |||||||||||||||||||||||||||||||||||||||
89 | 9 | UT-M-76 | Bus-Off 복구 후 필터 유지 | FR-SAF-05 | Bus-Off 복구 완료 | can_recover_busoff() 후 0x300 수신 가능 여부 확인 | 필터 재설정 → 0x300 수신 정상 | 중 | N/A | 5 | UT-N-30 | 정상 착석+문닫힘 비개입 | FR-SAF-02 | 착석+도어 닫힘 N단 유지 | 개입 확인 | 개입 없음 | 상 | P | |||||||||||||||||||||||||||||||||||||||
90 | ▶ 10. FreeRTOS 태스크/Mutex 단위 테스트 — IF-SW-01 | 6 | UT-N-31 | N단 문열림 후 재닫힘 해제 | FR-JDG-04 | 경고 중 도어 닫힘 | 상태 정상화 확인 | 경고 해제 | 중 | P | |||||||||||||||||||||||||||||||||||||||||||||||
91 | 1 | UT-M-77 | xSensorMutex 보호 확인 | IF-SW-01 | Task_Sensor, Task_Judge, Task_Can 동시 동작 | g_sensor 읽기/쓰기 시 Mutex 획득 확인 | Mutex 획득 실패 시 Snapshot 유지 (데이터 손상 없음) | 상 | P | ||||||||||||||||||||||||||||||||||||||||||||||||
92 | 2 | UT-M-78 | xCommandMutex 보호 확인 | IF-SW-01 | Task_Judge, Task_Can 동시 동작 | g_command 읽기/쓰기 시 Mutex 획득 확인 | Mutex 보호 하 정상 갱신 | 상 | P | ||||||||||||||||||||||||||||||||||||||||||||||||
93 | 3 | UT-M-79 | Task_Sensor 주기 10ms | IF-SW-01 | Task_Sensor 동작 중 | vTaskDelayUntil 주기 측정 | 10ms ± 1ms 주기 유지 | 중 | P | ||||||||||||||||||||||||||||||||||||||||||||||||
94 | 4 | UT-M-80 | Task_Judge 주기 50ms | IF-SW-01 | Task_Judge 동작 중 | vTaskDelayUntil 주기 측정 | 50ms ± 5ms 주기 유지 | 중 | P | ||||||||||||||||||||||||||||||||||||||||||||||||
95 | 5 | UT-M-81 | Task_Can 주기 10ms | IF-SW-01 | Task_Can 동작 중 | vTaskDelayUntil 주기 측정 | 10ms ± 1ms 주기 유지 | 중 | P | ||||||||||||||||||||||||||||||||||||||||||||||||
96 | 6 | UT-M-82 | Task 우선순위 순서 | IF-SW-01 | 전체 태스크 동작 중 | 우선순위 확인: Can(4) > Sensor=Judge(3) > ToF(2) | CAN 최우선 처리 확인 | 중 | P | ||||||||||||||||||||||||||||||||||||||||||||||||
97 | 7 | UT-M-83 | 스택 오버플로 훅 | IF-SW-01 | 스택 사용량 초과 유도 | vApplicationStackOverflowHook 실행 확인 | P00.6 LED 토글 (무한루프) | 하 | P | ||||||||||||||||||||||||||||||||||||||||||||||||