diff --git a/README.md b/README.md index 2099a66..3b212ff 100644 --- a/README.md +++ b/README.md @@ -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과 감사 로그를 유지합니다. +- 통신사 기준 데이터 사용량 보정값을 주기적으로 확인합니다. +