# **AS에서 사용하는 디바이스 펌웨어 관리(쓰기. 읽기) 프로그램**

## 1. 프로그램 개요

| 항목 | 내용 |
| --- | --- |
| **프로그램 명** | Product_Manager |
| **실행 파일 명** | Product_Manager.exe |
| **설치 위치** | 4층 AS팀 |
| **용도** | AS에서 사용하는 디바이스 펌웨어 관리(쓰기. 읽기) 프로그램, 번호 검색은 전제품 조회 가능/ 디바이스 읽어오기 기능은 듀얼소닉, MAXIMUM(3) , ALTO(5), EFFECT(6) |

## 2. 프로그램 UI

| 메인 화면 | 
| --- | 
| ![메인 화면](docs/main.png)  | 

| MAXIMUM 화면 |  ALTO 화면 |  EFFECT 화면 | 
| --- | --- |  --- | 
| ![맥시멈 화면](docs/maximum.png)  | ![알토 화면](docs/alto.png)  | ![이펙트 화면](docs/effect.png)  | 

---

## 📄 펌웨어 통신 기능 정리 (읽기 & 쓰기)

| 구분  | 버튼 / 함수명                                   | 역할                     | 대상 모델                                          | 사용 명령어                                              | 결과 저장 위치       |
| --- | ------------------------------------------ | ---------------------- | ---------------------------------------------- | --------------------------------------------------- | -------------- |
|  1 | `btnIfRead_Click` / `DUALSONIC_IfReadFunc` | 제조사, 모델, 타입, 시리얼 정보 읽기 | DUALSONIC                                      | `cartmanu`, `ctmodel`, `carttype`, `cartsn`         | `txbInfoBox` 등 |
|  2 | `btnIfRead_Click` / `MAXIMUM_IfReadFunc`   | 제조사, 모델, 타입 등 일괄 수신    | MAXIMUM, ALTO, EFFECT                          | `rdsconf1`                                          | `txbInfoBox`   |
|  3 | `btnArRead_Click`                          | Abroad / Agency 정보 수신  | 모든 모델                                          | DUAL: `ctabroad`, `ctagency`<br>기타: `rdsconf1`에서 파싱 | `txbAreaBox`   |
|  4 | `btnTdRead_Click`                          | TD 일련번호 읽기             | MAXIMUM, ALTO, EFFECT                          | `settdsn`                                           | `txbTDBox`     |
|  5 | `btnFPRead_Click`                          | 주파수 / 출력 전력 수신         | DUAL: `cartfreq`, `ctpower`<br>기타: `settdcnf`  | `txbFPBox`                                          |                |
|  6 | `btnMtRead_Click`                          | 모터 레벨 수신               | DUAL: `frontsen`<br>기타: `setmotor`             | `txbMtBox`                                          |                |
|  7 | `btnShRead_Click`                          | 샷 카운트 수신               | DUAL: `rshotcnt`, `tshotcnt`<br>기타: `shotconf` | `txbShotBox`                                        |                |
|  8 | `btnAuth_Click`                            | 인증 명령 전송               | DUAL: 인증 명령어 사용<br>기타: Flash 초기화               | `sbcartauth`, 내부 처리                                 | `txbAuthBox`   |

---

## 🖊️ 쓰기(Write) 함수 정리

| 구분   | 버튼 / 함수명              | 설명                           | 대상 모델     | 사용 명령어                                      |
| ---- | --------------------- | ---------------------------- | --------- | ------------------------------------------- |
|  1 | `btnIfWrite_Click`    | 쓰기 버튼 클릭 핸들러                 | 공통        | —                                           |
| 2 | `DUALSONIC_WriteFunc` | 제조사, 모델, 타입, 시리얼 등 각각 명령어 전송 | DUALSONIC | `cartmanu`, `ctmodel`, `carttype`, `cartsn` |
| 3 | `MAXIMUM_WriteFunc`   | 통합 명령으로 정보 전송 + DB 업데이트      | MAXIMUM   | `wrsconf1`                                  |
|  4 | `ALTO_WriteFunc`      | ALTO용 통합 쓰기                  | ALTO      | `wrsconf1`                                  |
|  5 | `EFFECT_WriteFunc`    | EFFECT용 통합 쓰기                | EFFECT    | `wrsconf1`                                  |

---

## ⚙️ 유틸리티 / 보조 함수

| 함수명                | 역할                    | 대상 모델                 |
| ------------------ | --------------------- | --------------------- |
| `InfoWriteStart()` | 입력값(시리얼, 모델 등) 유효성 검사 | 전체                    |
| `ModelSetting()`   | UI 상태에서 모델 코드 반환      | 전체                    |
| `TypeSetting()`    | UI 상태에서 타입 코드 반환      | 전체                    |
| `MAXInfoWrite()`   | 통합 문자열 생성 및 전송 결과 검증  | MAXIMUM, ALTO, EFFECT |
