| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
| Name | Name | Last commit date | ||
|---|---|---|---|---|
Hana Cloud는 한번(HanBeon)이 사용하는 응용 프로그램 프로필과 외부 보드 자료를 배포하는 공개 데이터 저장소입니다. 클라이언트 실행 코드와 업로더 구현은 두지 않고, 검토 가능한 JSON·펌웨어·이미지와 이를 검증·생성하는 CI만 관리합니다.
.gitattributes
registry.json
.github/
firmware-toolchain.json
workflows/
apps/
music-app.json
pdf-viewer.json
boards/
arduino-uno-r3.hex
arduino-uno-r3.json
arduino-uno-r3.ino
arduino-uno-r3.png
sources/boards/
arduino-uno-r3.json
contracts/
normalization-examples.json
schemas/
app.schema.json
board.schema.json
normalization-examples.schema.json
registry.schema.json
registry.json은 항상 저장소 루트에 존재합니다. 클라이언트는 이 파일만 주기적으로 확인하고, 일치하는 응용 프로그램 프로필이나 보드 manifest를 필요할 때 내려받습니다. 아래 JSON 블록은 필드 구조를 설명하는 축약 예시입니다. 실제 항목과 해시는 registry.json과 각 manifest를 기준으로 합니다.
{
"schemaVersion": 1,
"revision": 2,
"apps": [
{
"id": "pdf-viewer",
"name": "PDF 뷰어",
"path": "apps/pdf-viewer.json",
"sha256": "64자리 소문자 SHA-256",
"match": {
"macos": { "bundleIds": ["com.apple.Preview"] }
}
}
],
"boards": [
{
"id": "arduino.uno-r3",
"name": "Arduino Uno R3",
"manifest": "boards/arduino-uno-r3.json",
"sha256": "64자리 소문자 SHA-256",
"detect": {
"usb": [
{
"vid": "2341",
"pid": "0043",
"confidence": "exact",
"manufacturerAliases": ["Arduino", "Arduino LLC", "Arduino (www.arduino.cc)"],
"productAliases": ["Arduino Uno", "Arduino Uno R3"]
}
]
}
}
]
}{
"schemaVersion": 1,
"id": "pdf-viewer",
"actions": [
{
"label": "다음 장",
"name": "페이지 넘기기",
"shortcut": {
"macos": "pagedown",
"windows": "pagedown",
"linux": "pagedown"
}
}
]
}{
"schemaVersion": 2,
"id": "arduino.uno-r3",
"firmware": {
"path": "boards/arduino-uno-r3.hex",
"format": "intel-hex",
"size": 11211,
"sha256": "64자리 소문자 SHA-256",
"fqbn": "arduino:avr:uno",
"source": {
"path": "boards/arduino-uno-r3.ino",
"sha256": "64자리 소문자 SHA-256"
},
"toolchain": {
"arduinoCli": "1.5.1",
"platform": "arduino:avr@1.8.8"
}
},
"wiring": [
{
"from": "D2",
"to": "순간 누름 스위치 NO 단자",
"note": "스위치 COM 단자는 GND에 연결"
},
{
"from": "D9",
"to": "LED 양극",
"note": "220~330Ω 직렬 저항을 사용하고 LED 음극은 GND에 연결"
}
],
"image": {
"path": "boards/arduino-uno-r3.png",
"sha256": "64자리 소문자 SHA-256",
"alt": "Arduino Uno R3의 D2 스위치와 D9 LED 연결 배선도"
}
}정규화는 USB의 제조사·제품 표시 문자열처럼 사람이 읽는 보조 정보에만 적용합니다.
그 밖의 Unicode 문자와 괄호·점 등의 문자는 제거하지 않고 보존합니다.
따라서 Arduino UNO_R3, arduino-uno r3, Arduino UNO-R3는 모두 arduino-uno-r3가 됩니다. 공통 테스트 벡터는 contracts/normalization-examples.json에 있으며 모든 클라이언트 구현은 같은 결과를 내야 합니다.
registry id, 상대 경로, SHA-256, macOS bundle ID, Linux desktop ID·WM_CLASS에는 이 표시 문자열 정규화를 적용하지 않습니다. 이 값은 문법을 검증하고 등록된 별칭과 비교합니다. VID/PID는 숫자 u16으로 파싱한 뒤 정확히 네 자리 소문자 hex로 직렬화하여 0x2A03과 2a03 같은 표기 차이를 제거합니다.
공식 Arduino 플랫폼이 Uno에 배정한 VID/PID는 arduino:avr:uno 대상으로 확정할 수 있습니다. 반면 CH340·FT232 같은 범용 USB-시리얼 칩의 VID/PID는 칩만 식별하고, 그 칩이 장착된 보드 모델은 식별하지 못합니다. USB product·manufacturer·serial number와 포트 경로는 보조 힌트일 뿐입니다. MCU signature도 ATmega328P 같은 칩 종류만 알려주므로 정확한 보드 모델 판별이나 최초 자동 업로드의 근거로 사용하지 않습니다.
Uno의 VID/PID 목록과 USB 문자열은 Arduino의 boards.txt와 Descriptors.c를 기준으로 관리합니다. 범용 USB-시리얼 칩의 자동 식별 한계는 Arduino CLI FAQ와 같습니다.
실행 로직은 dev-five-git/hanbeon에 둡니다.
현재 HanBeon 펌웨어의 HANBEON_UNO_V1 handshake는 펌웨어 설치가 끝난 보드와 런타임 연결을 맺는 기존 프로토콜로만 유지합니다. 최초 보드 식별이나 레지스트리 매칭 조건에는 사용하지 않습니다.
다운로드는 HTTPS raw.githubusercontent.com/dev-five-git/hana-cloud로 고정하고, 리다이렉트 후 host 변경을 허용하지 않습니다. 제한은 인덱스 256KiB, 앱 프로필 64KiB, 보드 manifest 64KiB, 펌웨어 2MiB, 이미지 5MiB, 요청당 5초입니다.
OS별 코드는 같은 FocusedApplication 인터페이스로 정규화하고, 레지스트리 조회와 UI는 플랫폼 조건문을 갖지 않습니다.
각 Wave는 독립적인 PR로 검토하고 앞 Wave가 병합된 뒤 다음 Wave를 시작합니다.
| Back | FazBrowse Home | New Git URL |