Qishu Archives
제품 문서, 인터페이스 자료, 엔지니어링 기록을 위한 공통 입구입니다.
SDK 아키텍처
NIB가 core, 디바이스 패키지, 명령어 계열, 언어 전달 패키지를 어떻게 나누는지 설명합니다.
NIB는 고정된 명령어 문서가 아니라 계층형 SDK입니다. 표준판부터 연동할 수도 있고, 패키지 크기, 플랫폼 범위, 공개 기능을 제어해야 할 때는 core, device, dialect 중 일부 패키지만 선택할 수도 있습니다.
네 계층 구조
섹션 제목: “네 계층 구조”| 계층 | 책임 |
|---|---|
| Core | 스크립트/바이트 컨테이너, connected device 계약, 분할 쓰기, 수신 소스, pending query, 응답 분배를 제공합니다. 디바이스 스캔이나 장비가 어떤 명령어를 지원하는지 결정하는 일은 담당하지 않습니다. |
| Device | 실행 환경의 BLE, 클래식 블루투스, WebUSB, 네트워크, WeChat, UniApp, Taro, Android Bluetooth, Apple CoreBluetooth 등을 connected device로 어댑트합니다. |
| Dialect | 프린터 Family와 명령어 계열을 위한 빌더입니다. 예: Boxliy TSPL, Aryten ESC, Lin8inch TSPL. 장비가 이해할 수 있는 바이트를 생성합니다. |
| Edition | 언어별 전달 패키지입니다. 자주 쓰는 core, device, dialect를 조합해 설치와 import를 더 편하게 만듭니다. |
이 네 계층은 실제 코드 경계와 대응합니다. 템플릿은 dialect를 선택하고, 연결은 device를 선택하며, 쓰기와 상태 오케스트레이션은 core를 사용합니다. 비즈니스 프로젝트는 보통 edition을 설치하거나 필요에 따라 하위 패키지를 설치합니다.
Family와 명령어 계열
섹션 제목: “Family와 명령어 계열”| Family | 사용 가능한 명령어 빌더 | 설명 |
|---|---|---|
| Boxliy | ESC, TSPL, CPCL | Qishu / Boxliy 감열 인쇄 제품의 주요 명령어 계열입니다. |
| Aryten | ESC, TSPL, CPCL | 호환 명령어 계열입니다. Boxliy의 주요 표면을 상속하고, 필요할 때만 Family 확장을 추가합니다. |
| Lin8inch | ESC, TSPL | 8인치 확장 명령어 계열입니다. 매체, 농도, 상태, 디바이스 설정 등 확장 명령을 포함합니다. |
먼저 장비가 어떤 Family에 속하는지 확정한 뒤, 장비가 지원하는 명령어 계열을 선택하세요. 일부 장비는 특정 명령어 집합만 지원합니다. 어떤 builder를 import했다고 해서 SDK가 장비에 해당 기능을 부여하는 것은 아닙니다.
ESC, TSPL, CPCL은 서로 다른 세 가지 프린터 명령어 언어입니다.
| 명령어 계열 | 흔한 용도 | 연동 중점 |
|---|---|---|
| ESC | 영수증, 감열지, 라인 인쇄. | 텍스트, 용지 이송, 커팅, 기본 상태에 주의합니다. |
| TSPL | 라벨, 바코드, QR 코드, 고정 레이아웃. | 용지 크기, gap/black mark, 좌표, PRINT에 주의합니다. |
| CPCL | 모바일 인쇄, 라벨과 티켓 시나리오. | 좌표, 폼 경계, 디바이스가 실제로 지원하는 명령 하위 집합에 주의합니다. |
공통 모델
섹션 제목: “공통 모델”언어가 달라도 같은 이해 방식을 유지합니다.
- dialect builder로 인쇄 스크립트를 만듭니다.
- connected device를 통해 바이트를 씁니다.
- 쓰기 시 core 또는 디바이스 패키지가 분할, 쓰기 모드, 타임아웃, 진행률을 처리합니다.
- 장비가 지원할 때 core의 receive/query 도구로 상태를 읽습니다.
- 전송 로직을 인쇄 템플릿에 넣지 않습니다.
언어 간 일관성
섹션 제목: “언어 간 일관성”TypeScript, Dart, Java, Objective-C, Swift의 타입 이름은 완전히 같지 않지만 개념은 일관됩니다. builder가 바이트를 생성하고, device가 바이트를 쓰며, receive source 또는 query dispatcher가 응답을 처리합니다. 언어를 옮길 때는 같은 이름의 메서드를 한 줄씩 찾기보다 이 개념들을 먼저 옮기세요.
SDK 메서드 이름은 가능한 한 의도에 맞춰 짓지만, 일부 공개 메서드는 장비 매뉴얼과 펌웨어 프로토콜을 대조하기 쉽도록 과거 명령어 용어를 유지합니다. 이미지와 래스터 인쇄 관련 기능은 SDK의 image/raster 기본 기능을 기반으로 합니다. 일반 텍스트와 라벨 연동은 이미지 처리를 먼저 이해할 필요가 없습니다.