ABCDEFGHIJKLMNOPQRSTUVWXY
1
2
3
시스템 요구사항 - MAIN(TC375#1)통신 아키텍쳐 표운전자 탑승 여부 판단 시스템 요구사항 명세운전자 탑승 여부 판단 시스템 요구사항
4
IDINPUTDETAILOUTPUT통신 구간송신 ECU수신 ECU통신 방식전송 데이터전송 목적통신 특성목적본 기능은 운전석에 설치된 초음파 센서, ToF 센서, 압력 센서의 측정값을 이용하여 운전자의 탑승 여부를 판정하기 위한 것이다.

시스템은 각 센서값을 물리 단위로 변환하고, 구간별 신뢰도 점수로 환산한 뒤, 이를 종합하여 최종적으로 다음 3가지 상태 중 하나를 출력한다.

· DRIVER_PRESENT : 운전자 탑승
· DRIVER_ABSENT : 운전자 부재
요구사항 ID요구사항명상세 설명
5
1. 감지CLU → RPiCLU (TC275)RPiUART경고 종류, 제동 종류, 기어 상태, 도어 상태, 운전자 유무, 차량 속도이벤트 로그 저장, 상태 조회, 웹 모니터링 화면 구성저속·단순 구조의 직렬 통신, 모니터링/기록용, 상세 포맷은 UART 데이터 형식 정의 참조센서1. 초음파 센서 · 설치 위치: 운전석 천장 중앙부
· 측정 방향: 수직 하향
· 측정 대상: 운전자의 머리 또는 상체 상단
· 사용 단위: cm
SR-DRV-01센서 구성시스템은 운전자 탑승 여부 판단을 위해 운전석 천장부 초음파 센서, 핸들 부착 ToF 센서, 시트 부착 압력 센서를 사용해야 한다.
6
FR-DET-01압력센서 값
ToF 거리값
초음파 거리값
좌석 하중(압력) + 좌석 상부 인체 감지(ToF, 초음파)를 가중 점수로 조합하여 운전자 존재/부재를 판정한다.

판정 방식:
WS = 0.3×RU + 0.3×RT + 0.4×RP (각 0~5점)
WS > 1.0 → SEATED, WS ≤ 1.0 → ABSENT
3회 연속 동일 결과 시 확정 (30ms)
운전자 상태
(DRIVER_SEATED / DRIVER_ABSENT)
MAIN → ACTMAIN (TC375#1)ACT (TC375#2)CAN브레이크 제어 신호, 모터 구동 신호(D/R)위험 판단 결과에 따른 실제 차량 구동 및 제동 제어실시간 제어용, 지연이 작고 ECU 간 신뢰성 있는 명령 전달에 적합2. ToF 센서 · 설치 위치: 핸들 중앙 또는 스티어링 컬럼 전면
· 측정 방향: 운전자 흉부 방향
· 측정 대상: 운전자의 가슴/상체 전면
· 사용 단위: cm
SR-DRV-02단위 정규화시스템은 초음파 및 ToF 센서 측정값을 cm 단위로 변환하고, 압력 센서 측정값을 g 상당값으로 변환하여 사용해야 한다.
7
FR-DET-02기어 스위치 값
P/R/N/D 위치를 판정한다.
3샘플 디바운싱 + press-release 래치 방식.
기어 상태
(GEAR_P/R/N/D)
MAIN → CLUMAIN (TC375#1)CLU (TC275)CAN경고 신호, 제어 상태 신호, Rollaway 발생 신호, 경고 종류, 제동 종류, 기어 상태, 도어 상태, 운전자 유무운전자 및 외부에 대한 경고 출력, LCD 상태 표시, 경고 단계 및 제동 상태 표시제어 결과와 표시 데이터를 동시에 전달하는 상태/이벤트 혼합 통신3. 압력 센서 · 설치 위치: 운전석 시트 쿠션 하부 또는 중앙부
· 측정 대상: 착석 하중
· 사용 단위: g 상당값
SR-DRV-03데이터 필터링시스템은 각 센서값에 대해 최근 3개 샘플 기준 중앙값 필터를 적용한 후 탑승 판정에 사용해야 한다.
8
FR-DET-03도어 스위치 값
눌림=닫힘, 해제=열림으로 판정한다.
3샘플 다수결 디바운싱.
도어 상태
(DOOR_CLOSE / DOOR_OPEN)
ACT → MAINACT (TC375#2)MAIN (TC375#1)CAN차량 속도, 가속도 센서값차량 이동 여부 및 Rollaway 판단에 필요한 피드백 제공센서 기반 피드백 데이터 전송, 판단 로직 입력값으로 사용데이터 처리 기본 규칙단위 변환 · 초음파 센서 출력값은 cm 단위로 변환하여 사용한다.
· ToF 센서 출력값은 cm 단위로 변환하여 사용한다.
· 압력 센서 출력값은 사전 캘리브레이션 테이블을 통해 g 상당값으로 변환하여 사용한다.
SR-DRV-04초음파 신뢰도 구간시스템은 초음파 센서값을 7개 구간으로 분류하고, 각 구간에 대해 0, 1, 3, 5, 3, 1, 0 점의 신뢰도 점수를 부여해야 한다.
9
FR-DET-04 ACT 로 부터 받은
속도, 가속도 값
ACT에서 전송한 인코더 속도(speed_x100) + 가속도(accel_x/y/z)를 수신하여 차량 이동 여부를 판정한다.

판정 기준:
속도 ≥ 2.0 km/h 또는 |accel_x| ≥ 20 또는 |accel_y| ≥ 20
→ MOTION_MOVING

ACT 피드백 타임아웃(300ms) 시 MOTION_STOPPED로 처리.
이동 상태 (MOTION_STOPPED / MOTION_MOVING)
차량 속도 (speed_kmh)
ACT → CLUACT (TC375#2)CLU (TC275)CAN차량 속도, 가속도 센서값CLU에서 차량 상태 표시 및 모니터링 정보 반영표시 ECU가 속도 정보를 직접 수신하여 상태 화면 갱신 가능샘플링 주기센서값 취득 주기는 100 ms 이하로 한다.SR-DRV-05ToF 신뢰도 구간시스템은 ToF 센서값을 7개 구간으로 분류하고, 각 구간에 대해 0, 1, 3, 5, 3, 1, 0 점의 신뢰도 점수를 부여해야 한다.
10
2. 판단RPi → ntfy.shRPintfy.sh/VAPSHTTPSMON system URL (IP:5000)원격에서 모니터링 접속 주소 확인부팅 시 1회 전송되는 외부 알림 통신노이즈 제거 · 각 센서값은 최근 3개 샘플에 대해 중앙값 필터(Median Filter) 를 적용한다.
· 필터 적용 후 값을 신뢰도 구간 판정에 사용한다.
SR-DRV-06압력 신뢰도 구간시스템은 압력 센서값을 7개 구간으로 분류하고, 각 구간에 대해 0, 1, 3, 5, 3, 1, 0 점의 신뢰도 점수를 부여해야 한다.
11
FR-JDG-01기어 상태 = D/R
도어 상태 = OPEN
기어 D/R단 + 도어 열림 → 1차 위험 판단 (RISK_WARN_LV1).1차 위험 판단 = WARN_LV1이상치 처리다음 조건 중 하나에 해당하는 경우 해당 샘플은 이상치(신뢰도 0점) 로 처리한다.

· 센서 응답 없음
· 물리적으로 불가능한 값
· 직전 샘플 대비 급격한 변동으로 판단되는 값
· 센서 사양 범위를 벗어난 값
SR-DRV-07총합 및 평균 계산시스템은 각 센서 신뢰도 점수의 총합과 평균을 계산하여 최종 탑승 여부 판단에 사용해야 한다.
12
FR-JDG-02기어 상태 = D
운전자 상태 = ABSENT
기어 D단 + 운전자 부재 → 즉시 D단 제동 위험 판단 (RISK_D_BRAKE).

시간 지연 없이 즉시 전이한다.
(운전자 부재 판정 자체에 3회 확정(30ms) 포함)
D단 제동 = D_BRAKEVAPS - 시스템 아키텍처신뢰도 점수 체계각 센서는 7개 구간으로 구분하며, 점수는 다음과 같이 부여한다.

· 이상치: 0점
· 신뢰도 1: 1점
· 신뢰도 3: 3점
· 신뢰도 5: 5점
· 신뢰도 3: 3점
· 신뢰도 1: 1점
· 이상치: 0점

즉, 구간 점수 패턴(가우시안)은 다음과 같다.

0 | 1 | 3 | 5 | 3 | 1 | 0
SR-DRV-08가중 평균 계산시스템은 초음파 0.3, ToF 0.3, 압력 0.4의 가중치를 적용한 가중 평균 점수를 계산해야 한다.
13
FR-JDG-03기어 상태 = R
운전자 상태 = ABSENT
기어 R단 + 운전자 부재 → 즉시 R단 제동 위험 판단 (RISK_R_BRAKE).

시간 지연 없이 즉시 전이한다.
R단 제동 = R_BRAKE
센서별 신뢰도 구간 정의SR-DRV-09운전자 탑승 판정가중 평균 점수 1.0 초과
조건이 연속 3회 이상 만족될 때 운전자 탑승으로 판정해야 한다.
14
FR-JDG-04기어 상태 = N
도어 상태 = OPEN
기어 N단 + 도어 열림 → Rollaway 경고 판단 (RISK_ROLLAWAY_WARN).rollaway 경고 = ROLLAWAY_WARN초음파 센서 신뢰도 구간SR-DRV-10운전자 부재 판정시스템은 세 센서 점수가 모두 1점 이하이며, 평균 점수 1.0 이하 조건이 연속 3회 이상 만족될 때 운전자 부재로 판정해야 한다.
15
FR-JDG-05기어 상태 = N
이동 상태 = MOVING
운전자 상태 = ABSENT
기어 N단 + 차량 이동 + 운전자 부재 → Rollaway 제동 판단 (RISK_ROLLAWAY_BRAKE).rollaway 제동 = ROLLAWAY_BRAKE구간거리(cm)신뢰도 점수판정 의미SR-DRV-12오판 방지시스템은 시트 하중만 존재하고 거리 센서가 운전자 존재를 지지하지 않는 경우, 이를 운전자 탑승으로 판정해서는 안 된다.
16
FR-JDG-06위험 레벨 = WARN_LV1
도어 열림 지속 시간 ≥ 2초
1차 경고(WARN_LV1) 상태에서 도어 열림이 10초 이상 지속되면 경고 에스컬레이션 (RISK_WARN_LV2).
2차 위험 판단 = WARN_LV2U1< 20센서 밀착, 손/머리 접촉, 이상치SR-DRV-13센서 이상 감지시스템은 동일 센서가 10회 연속 이상치 상태를 보일 경우 해당 센서를 Fault 상태로 판단하고 진단 로그를 생성해야 한다.
17
FR-JDG-07
(추가)
위험 레벨 = D_BRAKE / R_BRAKE / ROLLAWAY_BRAKE자동제동 상태(D_BRAKE, R_BRAKE, ROLLAWAY_BRAKE) 진입 후에는 해당 상태를 유지한다.
복귀 조건은 착석+도어닫힘 만 허용.
위험 레벨 유지
(자기 전이)
U22 ~ < 81너무 가까움, 머리 치우침/간섭 가능SR-DRV-14캘리브레이션시스템은 차량 구조, 시트 형상, 센서 부착 위치 차이를 반영할 수 있도록 거리 임계값과 압력 임계값을 보정 가능해야 한다.
18
3. 제어 명령 생성U38 ~ < 123큰 체형, 시트 높음, 정상 착석 가능
19
FR-CTL-011차 위험 판단 = WARN_LV11차 위험 시 CLU에 risk_level=1(WARN_LV1)을 전송한다.
CLU가 risk_level을 해석하여 경고 표시(부저, LCD, LED)를 수행한다.
CLU에 risk_level=1U412 ~ < 205정상 운전자 착석 중심 구간
20
FR-CTL-022차 위험 판단 = WARN_LV2경고 에스컬레이션 시 CLU에 risk_level=2(WARN_LV2)를 전송한다.CLU에 risk_level=2U520 ~ < 303작은 체형, 시트 낮음, 상체 후방/옆치우침 가능
21
FR-CTL-03운전자 상태 = SEATED
도어 상태 = CLOSE
운전자 착석 + 도어 닫힘 시 상태 전이에서 RISK_NORMAL로 복귀.
자동제동 상태 포함 모든 상태에서 복귀 가능.
ACT에 제동 해제
CLU에 risk_level=0
U630 ~ < 451경계 상태, 빈 좌석 가능성 큼
22
FR-CTL-04D단 제동 = D_BRAKED단 제동 시 ACT에 제동 명령 + CLU에 제동 상태 전송.
ACT에 제동 유지
CLU에 D단 제동
U7>= 450운전자 부재 가능성 매우 큼
23
FR-CTL-05R단 제동= R_BRAKER단 제동 시 ACT에 제동 명령 + CLU에 제동 상태 전송.ACT에 제동 유지
CLU에 R단 제동
ToF 센서 신뢰도 구간
24
FR-CTL-06rollaway 경고 = ROLLAWAY_WARNRollaway 경고 시 CLU에 ROLLAWAY 경고 전송.CLU에 ROLLAWAY 경고구간거리(cm)신뢰도 점수판정 의미
25
FR-CTL-07rollaway 제동 = ROLLAWAY_BRAKERollaway 제동 시 ACT에 제동 명령 + CLU에 ROLLAWAY 제동 전송.ACT에 제동 명령
CLU에 ROLLAWAY 제동
T1< 100손/팔 밀착, 핸들 잡은 팔 간섭, 이상치
26
FR-CTL-08위험 레벨 = D_BRAKE / R_BRAKE / ROLLAWAY_BRAKE자동 제동 후 착석+도어닫힘 조건 충족까지 제동 상태를 유지한다.
제동 상태 유지T210 ~ < 181너무 가까움, 몸이 핸들에 과도하게 접근
27
FR-CTL-09운전자 상태 = SEATED
도어 상태 = CLOSE
착석 + 도어 닫힘 확인 시:
ACT에 제동 해제
CLU에 NORMAL 상태 전달

제동 해제 시 기어를 P로 자동 전환
ACT에 제동 해제 명령
CLU에 NORMAL 상태 전송
기어 P 자동 전환
T318 ~ < 243전방 기울임 자세, 작은 체형, 근접 운전 자세
28
FR-CTL-10제동 상태(CLU 책임) MAIN은 risk_level만 전송.
비상등 점멸은 CLU가 risk_level을 해석하여 자체 제어.
T424 ~ < 345정상 운전자 착석 중심 구간
29
FR-CTL-11제동 상태(CLU 책임) MAIN은 risk_level만 전송.
브레이크등 점등은 CLU가 risk_level 해석하여 자체 제어.
T534 ~ < 423시트 후방 이동, 큰 체형/긴 팔 자세 가능
30
4. 표시 데이터 전송T642 ~ < 551경계 상태, 빈 좌석 가능성 증가
31
FR-DSP-01기어, 도어, 운전자,
위험 레벨
CAN 메시지로 CLU에 주기적으로 차량 상태를 전송한다.

- risk_level
- driver_present
- door_state
- gear

이벤트 기반이 아닌 주기적 전송 방식.
CLU에 차량 상태 데이터
T7>= 550운전자 부재 가능성 매우 큼
32
6. 정상 운전 보호압력 센서 신뢰도 구간
33
FR-SAF-01기어 상태 = PP단 감지 시 RISK_NORMAL로 복귀하여 경고/제동 명령을 억제한다.

단, 자동제동 상태(D_BRAKE, R_BRAKE, ROLLAWAY_BRAKE)에서는 P단만으로 탈출 불가.
자동제동 복귀는 착석+도어닫힘만 허용.

제동 해제 시 기어 P 자동 전환이 적용
ACT에 제동 해제 명령
CLU에 NORMAL 상태 전달
구간하중(kg 상당값)신뢰도 점수판정 의미
34
FR-SAF-02운전자 상태 = SEATED
도어 상태 = CLOSE
착석 + 도어 닫힘 상태에서 RISK_NORMAL로 복귀.
모든 상태(자동제동 포함)에서 유일한 완전 복귀 조건.
RISK_NORMAL 복귀
(모든 위험 판단 비활성화)
P1< 20무부하, 부재
35
FR-SAF-03ACT 피드백 타임아웃
ACT CAN 피드백이 300ms 이상 미수신 시:
차량 이동 판정 불가 → 차량 움직이지 않음 처리.
센서 데이터 fail-safe 적용
P22 ~ < 101잡물, 가벼운 가방, 노이즈
36
FR-SAF-04
자동제동 → 제동 해제 전환자동제동 후 기어를 P로 자동 전환한다

기어 P 자동 전환
P310 ~ < 353부분 착석, 어린 체구, 적재물, 자세 이동 가능
37
FR-SAF-05CAN Bus-Off 상태 감지CAN 노드가 Bus-Off 상태 진입 시:
50ms 대기 후 노드 재초기화 + 필터 재설정 + 동기화 대기.
복구 완료까지 CAN 송수신 중단
CAN 노드 자동 복구
(Bus-Off recovery)
P435 ~ < 1105정상 성인 운전자 착석 구간
38
P5110 ~ < 1303고하중 성인 착석 가능
39
P6130 ~ < 1501극고하중, 편하중, 센서 포화 인접
40
시스템 요구사항 - CLU (TC275)P7>= 1500비정상 하중, 센서 이상치 가능
41
1. 경고 출력종합 신뢰도 계산 방식
42
FR-CTL-01MAIN으로부터
경고 상태 (1차)
1차 경고 명령 수신 시 부저 단속음(1초 간격) 출력 + LCD에 복귀 메세지 표시.부저 연속음
LCD 복귀 메세지
개별 센서 점수 · 초음파 센서 점수: RU
· ToF 센서 점수: RT
· 압력 센서 점수: RP
43
FR-CTL-02MAIN으로부터
경고 상태 (2차)
경고 강화 명령 수신 시 부저 연속음(0.3초 간격) 전환 + LCD에 복귀 메세지 표시.부저 연속음
LCD 복귀 메세지
총합 신뢰도 점수센서 특성을 반영하여 다음과 같이 종합 신뢰도 점수 WS를 계산한다.

WS=(0.3×RU)+(0.3×RT)+(0.4×RP)

초음파 센서: 0.3
ToF 센서: 0.3
압력 센서: 0.4
44
FR-CTL-03MAIN으로부터
경고 상태 (NORMAL)
경고 해제 명령 수신 시 부저 정지 + LCD 정상 화면 복귀.부저 정지
LCD 정상 화면
최종 판정 로직
45
FR-CTL-06MAIN으로부터
경고 상태 (Rollaway)
Rollaway 경고 명령 수신 시 부저 단속음 출력.부저 경고음운전자 탑승 판정 조건시스템은 아래 조건을 모두 만족하면 DRIVER_PRESENT로 판단한다.

WS > 1
· 위 조건이 연속 3회 이상 만족되어야 한다.
46
2. LED 제어운전자 부재 판정 조건시스템은 아래 조건을 모두 만족하면 DRIVER_ABSENT로 판단한다.

· WS <= 1.0
· 위 조건이 연속 3회 이상 만족되어야 한다.
47
FR-CTL-10MAIN으로부터
경고 상태
경고 상태 수신 시 LED를 점멸.
경고 해제 시 점멸 중지.
비상등 LED 점멸최종 판정 로직
48
FR-CTL-11MAIN으로부터
제동 상태
브레이크등 점등 명령 수신 시 LED 점등.
제동 해제 시 소등.
브레이크등 LED 점등상체만 들어온 경우 방지다음 조건을 만족하면 운전자 탑승으로 판정하지 않는다.

RP <= 1
RU >= 3 또는 RT >= 3

이 경우 상태는 DRIVER_ABSENT 으로 처리한다. 즉, 문을 열고 몸만 넣거나 손/팔만 접근한 경우를 탑승으로 오인하지 않는다.
49
3. 상태 표시 (LCD)
50
FR-DSP-01MAIN으로부터
기어 상태
수신한 기어 상태(P/R/N/D)를 LCD에 실시간 표시.LCD 기어 상태
51
FR-DSP-02MAIN으로부터
도어 상태
수신한 도어 열림/닫힘을 LCD에 실시간 표시.LCD 도어 상태
52
FR-DSP-03MAIN으로부터
경고 단계
수신한 경고 단계(정상/1차/강화/Rollaway)를 LCD에 표시.LCD 경고 단계
53
FR-DSP-04MAIN으로부터
제동 상태
수신한 제동 상태(해제/제동중/해제대기)를 LCD에 표시.
LCD 제동 상태
54
FR-DSP-05MAIN으로부터
운전자 상태
수신한 운전자 존재/부재/불확실을 LCD에 표시.
LCD 운전자 상태
55
FR-CTL-09
(해제 안내)
MAIN으로부터
제동 상태
제동 해제 미충족 조건 수신 시 LCD에 안내 메시지 표시.
('운전석에 착석하세요', '문을 닫아주세요' 등)
LCD 해제 안내 메시지
56
4. 이벤트 로그 전송 (→ RPi)
57
FR-LOG-01CLU로부터 직렬 이벤트 프레임CLU에서 전송한 JSON/key=value/WARN|.../BRAKE|.../binary bitstream 형식의 직렬 이벤트를 RPi가 수신하여 이벤트 단위로 분리한다.RPi 파싱 입력
58
FR-LOG-0216bit 상태워드 또는 텍스트 이벤트 payloadRPi는 수신 데이터에서 경고/제동/기어/도어/운전자/속도 및 raw frame 정보를 재구성할 수 있어야 한다.정규화 이벤트 정보
59
FR-LOG-03브라우저 또는 외부 API 요청RPi는 저장된 로그를 웹 대시보드와 /api/events GET으로 조회 가능하게 제공해야 한다.이벤트 목록, 통계 JSON
60
FR-LOG-04상태 진단 조회 요청RPi는 /health 및 /api/serial/status를 통해 직렬 연결 상태와 최근 수신 정보를 제공해야 한다.상태 진단 정보 JSON
61
FR-LOG-05RPi 부팅 및 웹 서버 기동 완료RPi는 웹 서버가 응답 가능한 상태가 되면 MON 접속 URL을 외부 알림 채널로 1회 전송해야 한다.MON 접속 URL 알림
62
63
시스템 요구사항 - ACT (TC375#2)
64
IDINPUTDETAILOUTPUT
65
1. 센서 데이터 수집 및 전송
66
FR-DET-04
(인코더)
인코더 펄스 값인코더 펄스를 카운트하여 바퀴 회전수 및 속도를 산출한다.MAIN에 인코더 값, 속도 전송
67
FR-DET-04
(가속도)
가속도 센서 값3축 가속도 데이터를 읽어 차체 이동 보조 감지.MAIN에 가속도 값 전송
68
2. 기어별 모터 제어
69
기어 D단MAIN으로부터
모터 전진 명령
D단 크리프 시뮬레이션.
바퀴 저속 정회전.
모터 저속 정회전
70
기어 R단MAIN으로부터
모터 후진 명령
R단 크리프 시뮬레이션.
바퀴 저속 역회전.
모터 저속 역회전
71
기어 N단MAIN으로부터
모터 중립 명령
N단 자유회전 시뮬레이션.
모터 단자 개방, 바퀴 자유 회전.
모터 개방 (자유회전)
72
기어 P단MAIN으로부터
모터 잠금 명령
P단 잠금 시뮬레이션.
모터 쇼트 브레이킹, 회전 저항 최대.
모터 쇼트 브레이킹
73
3. 서보 브레이크 제어
74
FR-CTL-04MAIN으로부터
D단 제동 명령
D단 제동 명령 수신 시 모터 정지 + 서보 제동.모터 정지
서보 제동
75
FR-CTL-05MAIN으로부터
R단 제동 명령
R단 제동 명령 수신 시 모터 정지 + 서보 제동.모터 정지
서보 제동
76
FR-CTL-07MAIN으로부터
Rollaway 제동 명령
Rollaway 제동 명령 수신 시 서보 제동.
N단이므로 모터는 원래 개방 상태.
서보 제동
77
FR-CTL-08MAIN으로부터
제동 유지 명령
제동 해제 조건 충족 전까지 서보 제동 + 모터 정지 상태 유지.서보 제동 유지
모터 정지 유지
78
FR-CTL-09MAIN으로부터
제동 해제 명령
제동 해제 명령 수신 시 서보 해제 + 모터를 현재 기어에 맞는 모드로 전환.서보 해제
모터 기어모드 전환
79
80
81
82
시스템 요구사항 - RPi
83
IDINPUTDETAILOUTPUT
84
1. 로그 수신 및 저장
85
FR-LOG-01CLU로부터 직렬 이벤트 데이터CLU에서 전송한 직렬 데이터(JSON 1행, key=value 형식, WARN|... 형식, BRAKE|... 형식, 0/1 binary bitstream)를 수신하여 이벤트 단위로 분리한다.파싱 대상 raw event
86
FR-LOG-020/1 binary 상태워드 데이터16bit 상태워드 [15:14][13:12][11:10][9][8][7:0]를 warning, brake, gear, door, driver, speed 값으로 해석하고 risk code(W1/W2/W3/W4/R1/R2/OK)를 생성한다.정규화 이벤트 정보
87
FR-LOG-03수신 이벤트 payloadevent_category, event_type, gear_state, door_state, driver_present, vehicle_speed, event_time을 검증 및 정규화하고 허용되지 않는 값은 저장하지 않는다.유효 이벤트 payload
88
FR-LOG-04검증 완료 이벤트 데이터이벤트 발생 시각, 종류, 기어 상태, 도어 상태, 운전자 유무, 차량 속도, 입력 출처, raw_payload, received_at을 SQLite events 테이블에 저장한다.로그 DB 저장
89
FR-LOG-05raw payload 및 기존 DB 상태raw_payload 전체를 JSON 문자열로 보관하고, binary_bits 또는 status_word가 존재하면 raw frame 표시 문자열을 생성한다. 기동 시 DB가 비어 있으면 sample 로그를 삽입하고 기존 행은 최신 규칙으로 정규화raw 분석 정보, 초기화된 DB
90
2. 대시보드 및 로그 조회
91
FR-LOG-06브라우저의 메인 화면 요청저장된 이벤트 로그를 최신순으로 조회하여 총 이벤트 수, 경고 건수, 제동 건수, 최신 이벤트 요약과 최근 로그 목록을 웹 화면에 표시한다.웹 대시보드 화면
92
FR-LOG-07조회 조건(category, keyword, limit)category, keyword, limit 조건으로 event_type, gear_state, door_state, raw_payload를 검색하여 필터링된 로그 목록을 조회한다.조건별 로그 목록
93
FR-LOG-08외부 조회/API 요청/api/events GET 요청 시 최근 로그 목록과 통계를 JSON 형식으로 제공한다.JSON 로그 조회 결과
94
FR-LOG-09외부 이벤트 등록 요청/api/events POST 요청으로 전달된 JSON 이벤트를 검증 후 DB에 저장한다.이벤트 저장 결과 JSON
95
FR-LOG-10샘플 로그 생성 요청/api/test/sample 또는 /sample 요청 시 테스트용 샘플 이벤트를 생성하여 저장한다.샘플 로그 저장 결과
96
3. 상태 감시 및 실시간 알림
97
FR-LOG-11브라우저의 상태 조회 요청직렬 연결 여부, USB 연결 여부, 포트 open 상태, retry 여부, 최근 오류, 최근 raw 수신값, 수신/파싱/드롭 카운터를 JSON으로 제공한다.상태 진단 정보
98
FR-LOG-12웹 클라이언트의 실시간 구독 요청/api/stream에 연결된 클라이언트에 hello 이벤트, 주기적 ping 이벤트, 신규 로그 저장 시 new_event를 즉시 전송한다.SSE 실시간 이벤트
99
FR-LOG-13신규 이벤트 저장 완료브라우저는 신규 이벤트 수신 시 토스트 및 팝업을 표시하고, 직렬 상태를 주기적으로 갱신한다. SSE 사용이 어려운 경우 자동 새로고침으로 화면을 보조 갱신한다.웹 실시간 알림, 상태 갱신
100
4. 이벤트 경고 표시
101
FR-LOG-14저장 완료 경고 이벤트경고 이벤트가 저장되면 Raspberry Pi의 RGB LED를 orange 계열로 점등 또는 점멸하여 경고 발생 상태를 표시한다.Orange LED 점등
102
FR-LOG-15저장 완료 제동 이벤트제동 이벤트가 저장되면 Raspberry Pi의 RGB LED를 red 계열로 점등 또는 점멸하여 제동 발생 상태를 표시한다.Red LED 점등
103
FR-LOG-16저장 완료 시스템 해제 이벤트제동 해제 등 시스템 이벤트가 저장되면 Raspberry Pi의 RGB LED를 green 계열로 점등 또는 점멸하여 해제 또는 정상 복귀 상태를 표시한다.Green LED 점등
104
FR-LOG-17status 또는 OK 시스템 이벤트system/status 또는 OK 이벤트가 저장되면 LED를 off 처리하여 정상 상태를 표시한다.LED 소등
105
FR-LOG-18저장 완료 경고/제동 이벤트경고 이벤트 시 MP3 모듈로 warning 음원을 재생하고, 제동 이벤트 시 brake 음원을 재생하여 음성 또는 음향 경고를 출력한다.오디오 경고 출력
106
5. 외부 연동 및 서비스 운영
107
FR-LOG-19웹 서버 기동 완료웹 서버가 응답 가능한 상태가 되면 MON 접속 URL을 생성하고 send_url 모듈 또는 외부 명령을 통해 외부 알림 채널로 전송한다.외부 접속 URL 전송
108
FR-LOG-20Raspberry Pi 부팅 및 서비스 실행 조건MON 프로그램은 systemd 서비스로 network-online 이후 자동 실행되어야 하며, 비정상 종료 시 3초 후 자동 재시작되어야 한다.MON 프로그램 자동 실행 및 복구
109
FR-LOG-21직렬 포트 연결 실패 또는 복구 상황직렬 포트 연결 실패 시 연결 재시도를 계속 수행하고, 연결 및 복구 이력과 오류 정보를 상태 API와 웹 화면에서 확인 가능해야 한다.재시도 상태, 오류 이력