# **AGING TEST 자동 검사 프로그램**

## 📌 프로그램 개요

| 항목         | 내용                                                               |
| ---------- | ---------------------------------------------------------------- |
| **프로그램 명** | `DUALSONIC_Aging_Test_Program Ver.1.0.0`                         |
| **설치 위치**  | 6층 공장 라인 Aging 공정 구역                                             |
| **용도**     | 필름 압착 기계 제어 /필름 작업 공정 중 압착기 동작 시 자동 시간 카운트 및 동작/자동 합불 판정 없음 (검사자가 육안으로 합불 판단)/ 중단 시 자동 불량 처리                 |
| **연결 장비**  | Control Box, Aging JIG, Power Supply, Relay Board                |

---

## 🖥️ 프로그램 UI

| 메인 화면                    | 실행 화면                       |
| ------------------------ | --------------------------- |
| ![메인 화면](docs/aging_main.png) | ![실행 화면](docs/aging_start.png) |

---

## 🔢 기능 요약

| 기능                           | 설명                                                                            |
| ---------------------------- | ----------------------------------------------------------------------------- |
| **라디오 버튼 선택에 따른 UI 및 설정 분기** | 포트 수(10채널/20채널), 시간 설정 모드에 따라 UI 그룹박스 표시 여부, 시리얼 포트 배열 크기, 초기값, 위치 변경 등 자동 조정 |
| **COM 포트 스캔 및 연결**           | 스캔 버튼 클릭 시 PC의 COM 포트 목록 불러오기, 연결 버튼 클릭 시 선택한 포트 오픈 및 설정 저장                   |
| **포트별 측정 시작/정지**             | 각 채널별 상태에 따라 시작(`start`), 진행(`play`), 중지(`middleStop`, `endStop`) 처리 및 명령 전송  |
| **타이머 기반 시간 카운트다운**          | 실행 중인 채널의 남은 시간을 1초씩 감소시키며 UI에 남은 시간 표시, 시간이 0이 되면 자동 정지 및 후속 처리 수행           |
| **상태 및 UI 업데이트**             | 버튼 텍스트 및 색상 변경, 상태에 따른 기능 활성화/비활성화, 깜빡임 효과 등으로 진행 상황 시각적 표시                   |
| **데이터 기록 및 전송**              | 각 채널 실행 기록을 연도·월별 CSV 파일로 저장, MQTT를 통해 실행 결과 및 상태 데이터 전송                      |
| **전체 실행/정지 제어**              | 전체 내리기/올리기 버튼을 통해 모든 채널의 상태 일괄 전환 및 타이머 제어                                    |
| **초기화 및 종료 처리**              | 모든 채널 시간 및 UI 초기화, 종료 시 열려 있는 포트 및 쓰레드 안전 종료 및 정리                             |

---

## 🔄 검사 순서 흐름도

```mermaid
flowchart TD
    A([프로그램 시작])
    B([설정 파일 로딩])
    C([시리얼 포트 연결])
    D([사용자 설정 입력])
    E([에이징 테스트 시작])
    F([출력 반복 동작])
    G([상태 모니터링 / 이상 감지])
    H([CSV 저장])
    I([에이징 종료])

    A --> B --> C --> D --> E --> F --> G --> H --> I
```

---

## 🗃️ 데이터 저장 구조



---

## 📎 기타 참고 사항

* 프로그램 시작 시 이전 설정 자동 로딩
* CSV 형식: `시작시간, 종료시간, 주파수모드, 상태, 에러코드`
* COM 포트 설정 가능 (시리얼 통신 기반)

