# **[생산] 정보 확인 프로그램**

## 1. 프로그램 개요

| 항목 | 내용 |
| --- | --- |
| **프로그램 명** | `ProductVerifier` |
| **실행 파일 명** | `MAXIMUM_FUNCTION_PROGRAM.exe` |
| **설치 위치** | 6층 공장 안쪽 첫 번째 책상 |
| **용도** | 제품이 출하장으로 넘어가기 전 마지막으로 공정 진행 확인 및 데이터 확인 하여 공정 완료 여부 검증, 바코드 입력 -> DB데이터 조회(맥시멈, 알토, 이펙트 모델 확인) |

## 2. UI

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

## 3. 주요 기능

### 3.1 제품 검증 기능

- **바코드 입력**: 제품 시리얼 번호 입력 후 DB 조회
- **다중 검증**: TD, DOT, HIFU, RF, 제품정보 등 단계별 검증
- **실시간 상태 표시**: 각 검증 단계별 결과를 색상으로 표시 (녹색: 통과, 빨간색: 실패)

### 3.2 동작 모드

- **검색 모드**: 제품 정보 조회만 수행
- **쓰기 모드**: 제품 등록 및 CSV 로그 저장
- **삭제 모드**: 등록된 제품 정보 삭제
- **반품 모드**: 반품 처리 및 이력 관리

## 4. 사용법

### 4.1 기본 사용 순서

1. 제품 모델 선택 (MAXIMUM/ALTO/EFFECT)
2. 동작 모드 선택 (검색/쓰기/삭제/반품)
3. 시리얼 번호 입력 또는 바코드 스캔
4. 검색 버튼 클릭하여 제품 검증 수행
5. 결과 확인 후 필요시 추가 작업 수행

### 4.2 검증 과정 및 DB 조회

프로그램은 다음 순서로 각 DB 테이블을 조회하여 제품을 검증합니다:

| 검증 단계 | 함수명 | 사용 DB | 확인 내용 |
| --- | --- | --- | --- |
| 1 | `prodSerialExist` | applyCartDB/applyNonTDDB | 제품 시리얼 번호 존재 여부 |
| 2 | `prodSerialTD` | applyCartDB/applyNonTDDB | TD 관련 정보 및 QC 데이터 |
| 3 | `prodSerialDot` | applyCartDB | 도트 시술 관련 데이터 |
| 4 | `prodSerialHIFU` | applyCartDB/applyHIFUDB | HIFU 시술 데이터 및 합불 판정 |
| 5 | `prodSerialRF` | applyRFDB | RF 시술 결과 데이터 (MAX 모델만) |
| 6 | `prodSerialPD2` | applyCartDB/applyNonTDDB | 제품 정보 조회 및 UI 표시 |
| 7 | `lastQCDBReg` | applyCartDB | 최종 검사 일시 등록 |

### 4.3 설정 관리

**옵션 화면 접근**: 옵션 버튼 클릭 → 설정 탭으로 전환

**모델별 설정 관리**:

- EFFECT: `Standard_EFFECT.ini` 파일 사용
- MAXIMUM ALPHA: `Standard_MaxAlpha.ini` 파일 사용
- ALTO: `Standard_Alto.ini` 파일 사용
- MAXIMUM: `Standard_Max.ini` 파일 사용
- 모델 선택 시 자동으로 해당 설정 파일 로드

**DB 연동 설정** (체크박스로 선택 가능):

- TD 정보 확인 (`ckbopTD`)
- DOT 정보 확인 (`ckbopDot`)
- HIFU 정보 확인 (`ckbopHifu`)
- RF 정보 확인 (`ckbopWave`)
- 제품 정보 확인 (`ckbopInfo`)

### 4.4 자동 등록 기능

- 자동 등록 체크박스 선택 시 검증 완료 후 자동으로 등록 처리
- 쓰기 모드에서 시리얼 통신을 통한 자동 제품 감지 가능

## 5. 기타 참고 자료
```
[라디오버튼 선택] → runMod 설정 + modFormChange()
                    ↓
              [btnFuncRun 클릭]
                    ↓
               TypeFunction()
          ┌──────────┼──────────┐
          ↓          ↓          ↓
       Write      Delete     Return
          ↓          ↓          ↓
    시리얼 포트 확인  ←─────┬─────→ runningcomm()
          ↓               ↓
      threadOn()    시리얼 유효성 확인
          ↓               ↓
   threadRunFunc()    dataOkNg()
          ↓               ↓
    runningcomm() ←───────┼───────→ 각 모드별 함수 호출
          ↓               ↓
   시리얼 유효성 확인  ┌─infoRegFunc()
          ↓          ├─infoDelFunc()
     dataOkNg()      └─infoReturnFunc()
          ↓               ↓
   infoRegFunc()    DB 처리 & CSV 저장
          ↓
  DB 처리 & CSV 저장

```
