Expand README from project report
This commit is contained in:
@@ -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과 감사 로그를 유지합니다.
|
||||
- 통신사 기준 데이터 사용량 보정값을 주기적으로 확인합니다.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user