---
## 3.2 상단 타이틀 바
프로그램 최상단에 위치한 타이틀 영역입니다.
| 위치 | 요소 | 설명 |
|------|------|------|
| 좌측 | **프로그램 제목 & 버전** | `Pressure Leak System` 및 버전 정보 표시 |
| 중앙 | **현재 날짜/시간** | `yyyy-MM-dd [요일] HH:mm:ss` 형식, 1초 주기로 실시간 갱신 |
| 우측 | **작업 정보 배지** | 현재 로그인된 `작업자 ID`, `검사 모델`, `생산 라인` 정보 표시 |
| 우측 | **로그아웃 버튼** | 현재 세션을 로그아웃하고 로그인 창을 호출합니다 |
| 최우측 | **창 제어 버튼** | 최소화(─) / 최대화·복원(□) / 종료(X) 창 제어 아이콘 |
### 타이틀 바 조작
| 조작 | 동작 |
|------|------|
| 타이틀 바 **드래그** | 창 이동 |
| 타이틀 바 **더블 클릭** | 최대화 ↔ 일반 크기 전환 |
| **─** 버튼 클릭 | 작업표시줄로 최소화 |
| **□** 버튼 클릭 | 최대화 ↔ 일반 크기 전환 |
| **X** 버튼 클릭 | 종료 확인 대화상자 표시 → "예" 선택 시 종료 |
---
## 3.3 메인 영역 - 채널 모니터링
화면은 좌측(`LEFT LEAK TESTER`)과 우측(`RIGHT LEAK TESTER`)으로 균등 분할되며, 각 채널은 동일한 구조입니다.
### 각 채널의 구성 요소 (위에서 아래 순서)
#### ① 채널 타이틀
- **LEFT LEAK TESTER** 또는 **RIGHT LEAK TESTER** 채널 구분을 명시합니다.
#### ② 시작/종료 시간
| 항목 | 설명 |
|------|------|
| 라벨 | `시작/종료` |
| 값 | `시작시간 / 종료시간` 형식 (예: `2026-05-08 10:30:15 / -` 또는 `2026-05-08 10:30:15 / 10:30:45`) |
| 갱신 시점 | 시험이 시작될 때 `시작시간 / -` 형태로 갱신되며, 시험 완료(DB 저장) 시점에 종료 시간이 기록됩니다. |
#### ③ IC_SN / PCB_Barcode
| 항목 | 설명 |
|------|------|
| 라벨 | `IC_SN` / `PCB_Barcode` |
| 값 | 제품의 IC 일련번호 및 이에 매핑되는 PCB 바코드 고유 식별 정보 |
| 데이터 소스 | **IC_SN**: 4251 보드로 제품 ID 센서에서 판독한 값
| 순서 | BUTTON | 부제 | 동작 | 동작 방식 |
|------|------------|------|------|----------|
| 1 | **Data** | (측정 데이터) | 검사 기록 조회 화면 전환 | 토글 (다시 클릭 시 Home으로 복귀) |
| 2 | **Parameters** | (시험 설정) | 시험 설정 팝업 창 열기 | 모달 팝업 (설정 후 자동 닫힘) |
| 3 | **Comm. Settings** | (통신 설정) | 통신 설정 팝업 창 열기 | 모달 팝업 (설정 후 자동 닫힘) |
| 4 | **ID Test (L)** | (좌측 ID 테스트) | 좌측 채널 센서 ID 수동 판독 | 즉시 실행 |
| 5 | **ID Test (R)** | (우측 ID 테스트) | 우측 채널 센서 ID 수동 판독 | 즉시 실행 |
# 4. 통신 설정 (Comm. Settings)
---
하단 메뉴에서 **Comm. Settings (통신 설정)** 버튼 클릭 시 열리는 **모달 팝업 창**입니다.
## 4.1 창 구성
| 속성 | 값 |
|------|-----|
| 창 크기 | 고정 (크기 변경 불가) |
| 위치 | 메인 창 중앙에 정렬되어 표시 |
| 타입 | 모달 (이 창이 열려있으면 메인 창 조작 불가) |
## 4.2 4251 보드 설정 (좌측 영역)
| 항목 | 선택 가능 값 | 기본값 | 설명 |
|------|-------------|--------|------|
| **4251 BaudRate** | 9600 / 19200 / 38400 / 115200 | `115200` | 4251 보드 통신 속도. 보드 설정과 일치해야 함 |
| **4251 Port** | 시스템 감지 COM 포트 목록 | `COM3` | 4251 보드가 연결된 시리얼 포트 |
## 4.3 Sentinel C28 설정 (우측 영역)
| 항목 | 선택 가능 값 | 기본값 | 설명 |
|------|-------------|--------|------|
| **Sensor BaudRate** | 9600 / 19200 / 38400 / 115200 | `9600` | C28 센서 통신 속도. 센서 설정과 일치해야 함 |
| **Sensor Port** | 시스템 감지 COM 포트 목록 | `COM1` | C28 센서가 연결된 시리얼 포트 |
## 4.4 스펙 불일치 알림 설정 (화면 하단 영역)
| 항목 | 선택 가능한 값 | 기본값 | 설명 |
|------|---------------|--------|------|
| **스펙 불일치 알림 활성화** | 체크(ON) / 체크 해제(OFF) | `체크(ON)` | 프로그램 판정과 센서 자체 판정이 맞지 않을 때의 알림 팝업 창 발생 여부 설정 |
> **동작 설명**:
> - **ON (기본값)**: 판정이 불일치할 때 메인 화면의 오류 메시지 창에 로그가 기재됨과 동시에, 경고 대화상자("프로그램 스펙과 센서의 스펙이 서로 맞지 않습니다.") 팝업이 출력되어 작업자 인지를 강제합니다.
> - **OFF**: 판정이 불일치하더라도 경고 팝업을 띄우지 않고, 화면의 오류 메시지 영역에만 텍스트로 기록을 남깁니다.
## 4.5 버튼 설명
| 버튼 | 동작 |
|------|------|
| **설정 저장** | config.xml에 저장 → 기존 연결 해제 → 새 설정으로 재연결 → "통신 설정이 저장되었습니다." 메시지 → 창 닫힘 |
| **닫기** | 변경 사항 저장하지 않고 창 닫기 |
> **⚠️ 주의**: COM 포트를 동일하게 설정하면 충돌이 발생합니다. 4251 보드와 C28 센서는 반드시 다른 포트를 사용하세요.
# 5. 시험 설정 (Parameters)
---
하단 메뉴에서 **Parameters (시험 설정)** 버튼 클릭 시 열리는 **모달 팝업 창**입니다.
## 5.1 창 구성
| 속성 | 값 |
|------|-----|
| 창 크기 | 고정 (크기 변경 불가) |
| 위치 | 메인 창 중앙에 정렬되어 표시 |
| 타입 | 모달 |
## 5.2 설정 항목
| 항목 | 입력 형식 | 기본값 | 설명 |
|------|----------|--------|------|
| **SPEC UL (sccm)** | 소수점 숫자 | `1.00` | 누설 상한 규격값. 이 값 이하일 때 OK |
| **SPEC LL (sccm)** | 소수점 숫자 | `-1.00` | 누설 하한 규격값. 이 값 이상일 때 OK |
> **입력 팁**: 소수점 2자리까지 입력합니다 (예: `1.50`, `-0.80`). 정수도 입력 가능합니다 (예: `2`).
## 5.3 판정 로직 상세
* **합격 판정 기준**: `SPEC LL ≤ 측정값 ≤ SPEC UL`
* **불합격 판정 기준**: `측정값 < SPEC LL` 또는 `측정값 > SPEC UL`
**예시**:
| SPEC LL | SPEC UL | 측정값 | 판정 |
| :---: | :---: | :---: | :---: |
| -1.00 | 1.00 | 0.523 | ✅ OK |
| -1.00 | 1.00 | 1.200 | ❌ NG |
| -1.00 | 1.00 | -1.500 | ❌ NG |
| -1.00 | 1.00 | -1.00 | ✅ OK (경계값 포함) |
## 5.4 버튼 설명
| 버튼 | 동작 |
|------|------|
| **설정 저장** | config.xml에 저장 → 메인 화면의 SPEC 표시 즉시 갱신 → "파라미터 설정이 저장되었습니다." 메시지 → 창 닫힘 |
| **닫기** | 변경 사항 저장하지 않고 창 닫기 |
> **참고**: SPEC 값은 좌/우 양쪽 채널에 **공통으로 적용**됩니다. 채널별 개별 설정은 지원하지 않습니다.
> **참고**: SPEC 값 변경 후 저장하면, 이미 진행 중인 시험에는 영향을 주지 않으며, 다음 시험부터 새 값이 적용됩니다.
# 6. 측정 데이터 조회 (Data View)
---
하단 메뉴에서 **Data (측정 데이터)** 버튼을 클릭하면 표시됩니다. 다시 클릭하면 메인 화면으로 복귀합니다.
로컬 PC의 CSV 데이터를 기준으로 조회됩니다. (데이터베이스는 서버 PC에서 조회)
## 6.1 화면 구성
## 6.2 필터 조건 상세
### 1행: 공통 기본 필터
| 항목 | 기본값 | 설명 |
|------|--------|------|
| **조회 기간** | 오늘로부터 7일 전 ~ 오늘 | 조회 대상 날짜 범위를 설정합니다. |
| **판정 결과** | `[전체]` / `OK` / `NG` | 판정 결과에 따른 필터링을 수행합니다. |
### 2행: 상세 검색 필터 (DB 스키마 필드 교차 검색)
| 항목 | 설명 | 기본값 |
|------|------|--------|
| **ID 검색** | `IC_SN` 또는 `PCB_Barcode` 열에 대한 부분 일치 검색을 수행합니다. | (빈 값 = 필터 제외) |
| **작업자** | 작업자 ID (`Operator`) 열에 대한 부분 일치 검색을 수행합니다. | (빈 값 = 필터 제외) |
| **Lot No** | 로트 번호 (`Lot_No`) 열에 대한 부분 일치 검색을 수행합니다. | (빈 값 = 필터 제외) |
| **모델** | 모델명 (`Model`) 열에 대한 부분 일치 검색을 수행합니다. | (빈 값 = 필터 제외) |
## 6.3 조회 및 취소 버튼
| 버튼 | 동작 |
|------|------|
| **Search** | 설정된 필터 조건으로 로컬 로그 CSV 백업 파일을 검색하여 그리드에 표시합니다. |
| **Cancel (취소)** | 조회 중일 때 로딩 화면 내부에 나타나며, 진행 중인 파일 검색 작업을 중단하고 이전 화면으로 복귀합니다. |
### Search 버튼 동작 상세
1. 지정된 조회 기간에 해당하는 일별 로그 CSV 파일만 조회하여 검색을 수행합니다.
2. 검색 조건(판정, ID, 작업자, Lot No, 모델)에 맞는 데이터를 부분 일치 방식으로 검색합니다.
3. 검색 결과가 존재하지 않을 경우 "해당 조건의 데이터가 없습니다." 알림을 표시합니다.
## 6.4 데이터 조회 결과 표(그리드) 항목 안내
| 컬럼 헤더명 | 설명 |
|------|------|
| **IC_SN** | 제품 고유 IC 시리얼 번호 |
| **PCB_Barcode** | PCB 바코드 고유 식별 정보 |
| **Maker** | 로그인 시 입력된 제조사명 |
| **Model** | 로그인 시 입력된 검사 모델명 |
| **Variant_1** | 로그인 시 입력된 세부 파생 모델 1 |
| **Variant_2** | 로그인 시 입력된 세부 파생 모델 2 |
| **Operator** | 작업 진행자 사용자 ID |
| **Production_Date** | 검사 수행 및 완료 일시 (yyyy-MM-dd HH:mm:ss) |
| **Line** | 로그인 공정 작업 라인 |
| **Lot_No** | 생산 Lot 번호 |
| **Jig_No** | 사용 지그(Jig) 번호 |
| **Channel** | 검사 채널 (`LEFT` 또는 `RIGHT`) |
| **Spec_UL** | 누설 상한 규격값 (sccm) |
| **Spec_LL** | 누설 하한 규격값 (sccm) |
| **Leak_Value** | 측정된 누설 리크량 |
| **Result** | 최종 판정 결과 (`OK` / `NG`) |
### 표(그리드) 기능
- 컬럼 정렬: 헤더 클릭 시 해당 열 기준으로 오름차순 또는 내림차순 정렬이 가능합니다.
# 7. 자동 시험 프로세스
---
## 7.1 개요
자동 시험은 시작 신호(LEFT_START 또는 RIGHT_START)에 의해 작동하며, 7단계로 진행됩니다. 좌/우 채널은 각각 독립적인 백그라운드 스레드에서 실행되지만, **중복 실행 방지 기능**을 통해 동시 시험은 방지됩니다.
## 7.2 전체 프로세스 흐름도