Expand README from project report

This commit is contained in:
seo
2026-06-07 01:19:16 +09:00
parent c75a51bd1b
commit aec95f8a4f
+38 -15
View File
@@ -2,22 +2,29 @@
차량 상태 조회, TCP 명령 전송, 모니터링, 데이터 사용량 표시를 제공하는 PHP 기반 차량 서비스입니다.
## 프로젝트 성격
Car는 차량 모뎀/게이트웨이에서 받은 상태를 수집해 DB에 저장하고, 웹 화면과 API에서 최신 상태와 명령 실행 결과를 제공하는 내부 차량 관리 서비스입니다.
모뎀에서 제공되는 값의 한계가 있으므로 도어 잠김, 경계, 시동, 공조 상태는 여러 필드를 조합해 해석합니다. 통신사 사용량은 DB 수집값과 T world 기준 보정값을 함께 사용합니다.
## 주요 기능
- 차량 상태 수집하고 DB에 저장합니다.
- 허용된 차량 명령만 TCP 게이트웨이로 전송합니다.
- 모니터링 화면은 상태 AJAX와 사용량 AJAX를 분리해 갱신 비용을 낮춥니다.
- 데이터 사용량과 요금 표시, 보정 metadata를 제공합니다.
- TCP 실패 reason과 마지막 수신 지연을 응답 meta로 확인할 수 있습니다.
- 도어/경계/시동/공조 상태를 제한된 모뎀 값 기반으로 해석합니다.
- T world 사용량 보정값과 DB 수집 사용량을 함께 표시합니다.
- 차량 상태 수집과 저장
- 차량 상태 API
- 허용된 차량 명령 TCP 전송
- monitor 화면과 AJAX 상태 갱신
- 사용량/요금 표시와 보정 metadata
- TCP 실패 reason과 마지막 수신 지연 표시
- 도어/경계/시동/공조 상태 해석
- service worker와 PWA icon 제공
## 주요 API
- `api.php?action=status`
- `api.php?action=command`
- `monitor.php?mode=ajax`
- `monitor.php?mode=usage`
- `api.php?action=status`: 차량 상태 조회
- `api.php?action=command`: 차량 명령 전송
- `monitor.php?mode=ajax`: monitor 상태 AJAX
- `monitor.php?mode=usage`: 데이터 사용량 AJAX
## 구성
@@ -30,15 +37,24 @@
## 데이터/저장소
- 차량 상태, 명령 로그, 차트용 상태 기록 DB 테이블
- Car DB tables: 차량 상태, 로그, 차트용 기록
- 사용량 수집값과 월별 보정 기준
- `/home/seo/secret/car.php`: TCP, DB, token, 허용 IP 설정
## Secret
## 처리 흐름
실행 설정은 `/home/seo/secret/car.php`에서 로드합니다. 이 파일은 저장소에 포함하지 않습니다.
1. `collector_se.php`가 차량 상태를 수집해 DB에 저장합니다.
2. `monitor.php`는 상태 AJAX와 사용량 AJAX를 분리해 갱신합니다.
3. 제어 요청은 token/IP 정책을 검증합니다.
4. 명령 코드를 허용 목록과 대조합니다.
5. TCP 게이트웨이로 전송하고 결과와 실패 reason을 반환합니다.
TCP 설정, DB 접속 정보, API token, 허용 IP 정책은 외부 secret으로 유지합니다.
## 주요 함수/모듈
- `common.php`: secret 로드와 공통 DB/API 함수
- `api.php`: 상태 조회와 명령 전송
- `monitor.php`: 화면 렌더링과 AJAX 응답
- `collector_se.php`: 상태 수집과 중복 실행 방지
## 보안
@@ -46,3 +62,10 @@ TCP 설정, DB 접속 정보, API token, 허용 IP 정책은 외부 secret으로
- 차량 제어 명령은 허용된 명령 코드로 제한합니다.
- Secret 파일은 저장소 밖에서 제한된 권한으로 유지합니다.
- 실제 제어 명령은 최신 상태 조회와 명령 검증 이후에만 전송합니다.
## 운영 체크포인트
- 차량 TCP 실패 reason과 마지막 수신 지연을 확인합니다.
- 명령별 rate limit과 감사 로그를 유지합니다.
- 통신사 기준 데이터 사용량 보정값을 주기적으로 확인합니다.