Metadata-Version: 2.4
Name: dibd-led-protocol
Version: 1.2.0
Summary: DIBD LED 전광판 JSON-RPC 2.0 envelope client (UDP / TCP / HTTP)
Author: DabitSol Co., Ltd.
License: Apache-2.0
Project-URL: Homepage, https://github.com/DabitSol/dibd-led-protocol
Project-URL: Repository, https://github.com/DabitSol/dibd-led-protocol
Project-URL: Documentation, https://github.com/DabitSol/dibd-led-protocol#readme
Project-URL: Issues, https://github.com/DabitSol/dibd-led-protocol/issues
Keywords: dibd,led,display,protocol,jsonrpc,openrpc,iot
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Communications
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Classifier: Topic :: System :: Hardware
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Provides-Extra: dev
Requires-Dist: build>=1.0; extra == "dev"
Requires-Dist: twine>=4.0; extra == "dev"
Requires-Dist: pytest>=7.0; extra == "dev"
Dynamic: license-file

# dibd-led-protocol — DIBD LED 전광판 공개 표준 프로토콜

JSON-RPC 2.0 envelope 정합 + Python SDK + OpenRPC 1.3.2 spec + conformance test 본질 정합.

## 본 repo 영역

| 영역 | 위치 |
|---|---|
| Python SDK 본문 | `dibd/` (96 method auto-gen, jsonrpc 2.0 envelope, stdlib 한정) |
| OpenRPC spec | `openrpc.json` (96 method spec, 표준 1.3.2) |
| 변환 도구 | `../schema_to_openrpc.py` (protocol_schema.json → openrpc.json) |
| SDK 생성 wrapper | `generate_sdk.py` (openrpc.json → dibd/methods.py) |
| 빌드 설정 | `pyproject.toml` (setuptools 본문, Python ≥3.10, Apache-2.0) |
| LICENSE | Apache 2.0 |

## 5분 시작

로컬 설치 (PyPI 부재 영역):

```bash
cd Controller/tools/python_sdk/
pip install -e .
```

사용:

```python
from dibd import DibdClient

c = DibdClient("192.168.1.211")            # UDP default port 50000
size = c.invoke("display.size.read")
c.invoke("display.brightness.write", {"level": 50})
c.close()
```

상세 본 본문 = `dibd/README.md`.

## 옛 ASCII frame 호환

`raw_ascii()` path 옛 ASCII frame 본문 직접 송신. 옛 다빛채 호환 영역 그대로.

## SDK 재생성 흐름

protocol_schema.json 갱신 후:

```bash
# Step 1: openrpc.json 갱신
python Controller/tools/schema_to_openrpc.py \
    --schema docs/20_기술_사양/21_DIBD_프로토콜/protocol_schema.json \
    --out Controller/tools/python_sdk/

# Step 2: methods.py 자동 생성
python Controller/tools/python_sdk/generate_sdk.py
```

`methods.py` 본문 직접 편집 금지 — 본 흐름 본문 재호출 의무.

## 외부 vendor 본 path

본 SDK 본 본문 외부 vendor 본 path 본 path는 별 트랙 `0515x-vendor-integration` 본 본문 적재 예정. 현 trunk 본 본 path 본 본 본 본문 path 한정.

GitHub repo `dibd-led-protocol` 공개 본 path는 사용자 GitHub 계정 직접 영역 (gh CLI 또는 web UI).

## SSOT

- 펌웨어 본문: `Controller/shared/app/protocol/envelope_v3_lookup.c` (95 method entry)
- 프로토콜 spec: `docs/20_기술_사양/21_DIBD_프로토콜/protocol_schema.json` (95+ method, 1.2.0)
- 마감 결정: `docs/00_AI_가이드/Decisions/0514f_protocol_8_areas_standardization.plan.md`
- conformance test: `tests/conformance/run_conformance.py` (33/33 PASS)

## 라이선스

Apache License 2.0. © 2026 DabitSol Co., Ltd.
