청정·이동·지도 · 실행 상태와 장치 연결 — 상세 구조도
기준 커밋:
1398d109c391c4044cae26d0e9aea4d3f08d9670. 도식은 기존 구현을 설명한다. 제품 이미지 설치·실기기 성공을 증명하지 않는다.
청정 HandlerThread와 이동 callback을 중심으로 읽는 내부 기능 지도
SVG 원본 크게 열기 · Mermaid 원본 · 모듈 분석 본문
읽는 순서와 연결 의미
행은 책임·실행 경로별 묶음이며 별도 프로세스라는 뜻은 아니다. 같은 행의 인접 연결은 화살표로, 행을 넘거나 떨어진 상자 사이 연결은 동일한 E 번호의 출력·입력 포트로 표시한다. 아래 표는 방향과 의미를 모두 풀어 쓴 것이다. 그림의 코드 파일명을 눌러 저장소로 이동하는 기능은 없으며, 아래 경로로 지정 커밋을 조회할 수 있다.
| 연결 | 출발 → 도착 | 동작 | 종류 |
|---|---|---|---|
| E01 | BaseCleaningManager → AirCleaningPolicy | 정책 조회 | 호출·명령 |
| E02 | BaseCleaningManager → BasicCleaningManager | BASIC 선택 | 호출·명령 |
| E03 | MovingCleaningManager → MovingLocationManager | moveToArea | 호출·명령 |
| E04 | MovingCleaningManager → BasicCleaningManager | clean | 호출·명령 |
| E05 | MovingLocationManager → AMRService | 위치 이동 | 호출·명령 |
| E06 | BasicCleaningManager → MCUComm | 팬 제어 경로 | 호출·명령 |
| E07 | BasicCleaningManager → CleaningReportManager | 시작·종료 기록 | 데이터·구성 의존 |
구성요소별 책임과 코드 근거
| 상자 | 구성요소 | 책임·상태 | 지정 커밋의 소스 경로 |
|---|---|---|---|
| N01 | BaseCleaningManager | START / STOP / PAUSE / RESUME / 청정 HandlerThread | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/BaseCleaningManager.java |
| N02 | AirCleaningPolicy | 잠금 / 배터리 / 검사 / area / 시작·기존 청정 중지·차단 | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/AirCleaningPolicy.java |
| N03 | BasicCleaningManager | fan / monitor / 종료 검사 / 예약 종료·최대 시간 | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/BasicCleaningManager.java |
| N04 | MovingCleaningManager | area index / transition / 이동 → 청정 → 복귀 | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/cleaning/MovingCleaningManager.java |
| N05 | RobotMovementController | USER / SYSTEM / EMERGENCY / 우선순위와 중복 판정 | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/moving/RobotMovementController.java |
| N06 | MovingLocationManager | moveToArea / 도착 / 도킹 / AMR 상태 callback 소비 | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/moving/MovingLocationManager.java |
| N07 | AMRService | IAMRControl typed operation / 별도 AMRAgent로 연결 | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/item/amr/AMRService.java |
| N08 | MCUComm | fan / sensor protocol / 외부 device_manager HAL | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/device/item/mcu/MCUComm.java |
| N09 | MapManager | 구역·좌표·station / 지도 삭제 시 schedule 삭제 | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/map/MapManager.java |
| N10 | MappingManager | 5초 mapping countdown / 중복 시작 방지 | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/map/MappingManager.java |
| N11 | MapUploader | 외부 UploadService Intent / property flag 조건 | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/map/MapUploader.java |
| N12 | CleaningReportManager | before / after AQ + 알림 / CleaningReportDao 저장 | apps/DeviceAgent/app/src/main/java/com/sk/airbot/deviceagent/report/CleaningReportManager.java |
해석 경계와 변경 시 검토
- 이동 도착·fan 완료는 AMR/HAL callback 및 장치 증거가 필요하다.
- MapManager nearby 정렬·일부 조회는 TODO다. 지도 경로와 청정 보고 저장소는 분리돼 있다.
- AreaAICleaningManager의 센서 수집·회전·최악 위치 선택은 청정 상세 문서에서 설명한다.