← 목록
기타 2026-07-17 11KB 읽기 11분

요청: space-전기능활성화-센서규격-RPi-FPGA

  • 날짜: 2026-07-17 13:44:55
  • 작업 경로: /Users/ef/CrownyBrowser

요청 본문

space.crowny.org 모든 기능 활성화할 때까지 하나씩 구현하기. 라즈베리파이와 ESI fpga 모듈들을 적극 이용할 계획. 센서들 코드 규격 표준화할 계획임. 필요한 도구들 열거하고 이미 한선씨코드로 구현된 것 확인(응용 가능한 지 검토 목적), 미구현된 것들 구현해서 한선씨/크라우니화 작업 시작

관련 산출

1. 필요 도구 열거 × 기존 한선씨 자산 대조표 (2026-07-17 조사)

#필요 도구기존 한선씨 자산응용 판정
1센서코드 규격(와이어 포맷)없음신규 SC1 규격 + 센서코드.한선 코덱 (이번 웨이브)
2GPIO 제어VM 네이티브 opcode(GPIO개수/정보, /sys/class/gpio RPi5 구현 crownyc.c:8192~) + libs/GPIO.한선(핀모드/쓰기/읽기/토글/풀업/인터럽트) + 학습DB fn_드라이버_GPIO✅ 즉시 응용RPi 실기 검증만
3시리얼/UART/I2C/SPIVM 네이티브(termios) UART읽기/쓰기/초기화·I2C·SPI opcode + 학습DB fn_드라이버_시리얼·SPI전송✅ 즉시 응용FPGA 프레임 수신에 사용
4MQTT 클라이언트(zigbee2mqtt 대응)libs/MQTT.한선(연결/구독/발행/유언/QoS)✅ 응용 가능브로커 실연동 검증 후속
5센서 매니저/보정libs/센서드라이버.한선(등록/읽기/보정/온습도/거리/폴링 — 원시값은 시뮬)⚙️ 부분 응용시뮬→SC1 규격 출력으로 개조
6센서 네트워크/퓨전libs/센서네트워크.한선(36줄 골격)·센서퓨전.한선⚙️ 참고 수준허브에 흡수
7FPGA 시뮬(게이트/DFF/레지스터/파형)libs/하드웨어.한선(704줄, ghdl 검증 이력) + 하드웨어확장.한선✅ 응용 가능센서수집 모듈 신규
8FPGA 합성 파이프라인libs/한선씨하드웨어합성.한선(115줄 — 게이트레벨/타이밍/비트스트림, 교육 수준)⚙️ 골격만실합성은 VHDL+외부 도구 더블
9VHDL 더블 규칙가드레일 VHDL 함정 절 + ghdl 검증 패턴 확립✅ 공정 확립센서 모듈 .vhd 신규
10지오펜스 판정학습DB 지오펜스_다각형판정·fn_지오펜싱_✅ 응용 가능재실 트래커 배선 후속
11페어링(기기 추가)학습DB fn_QR페어링_(페어ID/QR/세션토큰)⚙️ 부분 응용발견 프로토콜 후속
12자동화 시간/일몰 트리거서버 1차엔진(상태변화만)서버 확장 (이번 웨이브)
13에너지 적산·누진요금서버 정적 표시만서버 확장 (이번 웨이브)
14웹 프론트 라이브 하이드레이션CrownyAI spaceBridge.js(브라우저 축만)⚙️ 부분웹 /bridge.js (이번 웨이브)
15서버↔허브 어댑터 프로토콜hall /bus 이벤트버스 계약⚙️ 부분공간어댑터.한선 + RPi허브.한선 (웨이브 2)
16RPi에서 crownyc 실행멀티플랫폼 빌드 지원(RPi5, sysfs GPIO 경로 내장)✅ 즉시 응용실기 배포 러너
(비해당) real하드웨어.한선베어메탈 렌더 엔진 — 센서와 무관

2. 구현 웨이브 계획

  • 웨이브 1(진행 중): ①SC1 센서코드 규격 v1 + 센서코드.한선 코덱(27타입 삼진 인덱스·고정소수점·4상 품질·체크섬) ②서버 확장 3종(시간/일몰 트리거 /api/tick·에너지 적산 /api/energy·웹 하이드레이션 /bridge.js)
  • 웨이브 2: ③공간어댑터.한선 + 시뮬어댑터 + RPi허브.한선(GPIO/센서드라이버 재사용, SC1 준수) ④ESI FPGA 센서수집 모듈(하드웨어.한선 시뮬 + VHDL 더블)
  • 후속 큐: MQTT 실연동·페어링/발견·지오펜스 재실·hall 어댑터 전환·CrownyAI 브릿지 DOM 하이드레이션 통합·RPi 실기 배포

3. ①SC1 센서코드 규격 v1 완료 (2026-07-17)

  • 문서: /Users/ef/crowny-space/규격/센서코드규격-v1.md — 포맷 정의·27타입 표준표(트릿열 병기)·범위표·체크섬 알고리즘·SCMD 명령 프레임·버전 정책·예시 프레임 10개+SCMD 2개(실제 코덱 출력, 왕복검증됨)
  • 정본 코덱: /Users/ef/crowny-space/규격/센서코드.한선 (440줄) — SC인코딩/SC디코딩/SC검증, SCMD인코딩/SCMD디코딩, 타입코드/타입이름/타입트릿/트릿타입(27타입 표+삼진 라벨 유틸, 내장 삼진인코딩 미사용 자체구현), 범위검사(품질 자동판정), 셀코어범위검증(가져오기 "셀코어" — 룰생성/룰조건추가/룰변경추가로 범위검사 로직 병행표현)
  • 검증: CROWNY_STRICT=1 ./hanseonc_high 센서코드.한선 → ./crownyc runALL_PASS 110/110, STRICT 경고 0. 27타입 전수 왕복, 체크섬 훼손 검출, 범위밖 품질강등, 미지타입/버전미지원/필드부족 4상 판정, 타입코드↔이름↔트릿 왕복, SCMD 왕복+훼손검출, 셀코어 룰 파리티 등 커버.
  • 설계 결정: value=정수 고정소수점(스케일 1/10/100/1000), typeCode=0~26 정수(트릿열은 문서/디버그 표시용, 와이어는 정수), quality="T"/"O"/"A" 1문자(U는 프레임구분자 |로만 사용), chk=양수나머지(가중합,997)(crownyc %가 균형나머지라 필수), 필드파싱은 배열(분리()) 대신 스칼라 전용 필드꺼내/필드개수 자체구현(함수재호출 배열지역변수 함정 회피).
  • RPN 동반: clike_to_rpn.한선(Python 버전 폐기·한선씨 도구로 전환됨, tools/clike_to_rpn.py는 삭제되어 tools/_삭제됨_python/으로 이동) 자동변환 실패 — "한 줄 다중 문장 + 함수호출식" 관용구를 변환기가 소화 못해 hanseonc_rpn 컴파일 시 32개 호출식 미인식 경고. RPN 정본화는 후속 과제(변환기 보강 또는 수동 이식).
  • 학습: crownycode-brain.sh learn "센서코드규격코덱" 센서코드.한선 + crownycode-learn.sh add "센서코드SC1코덱" ... 완료.
  • 잔여: RPN 미완, 대형정수필드(energy/count/misc) 32bit 실기 상한 별도 문서화 필요, LoRa 저대역용 이진 프레임 변환은 후속.

4. ②서버 확장 3종 완료 — 상세 CrownyDoc 2026-07-17-crowny-space-확장3종.md

시간/일몰 트리거(/api/tick + 1분 폴러 LaunchAgent org.crowny.space.tick 라이브)·에너지 적산/누진(/api/energy, 단일행 스냅샷 설계로 65535B 캡 회피)·웹 하이드레이션(/bridge.js, 앱.html 무수정 append). 신규 VM 함정 발견(함수 내 전역 스칼라 bare 재대입=무한재귀) → 가드레일+메모리 즉시 반영.

5. ③어댑터 계층 + RPi 허브 완료 — 상세 CrownyDoc 2026-07-17-crowny-space-rpi-허브게이트.md

  • 서버 허브 게이트: POST /api/ingest(SC1, ¶ 구분)·GET /api/commands·POST /api/hub/register·명령큐. 기존 버그 수리: 본문추출()이 실제 HTTP \r\n\r\n 구분자를 못 봐 비-JSON 본문을 조용히 버리던 결함(additive 수정, 회귀 0).
  • 풋프린트 절제: 코덱 전체 import가 문자열핸들 90% 경고 유발 → 자체시험 게이트(SC1_SELFTEST=1) + 서버는 최소 이식으로 101,979큐브 안정화.
  • 허브/RPi허브.한선: sim|gpio 이중 모드, 로컬 seq 영속, HUB_CYCLES 종료 게이트. E2E 실측: 등록→sim 3사이클 accepted 12/rejected 0→엔티티 반영(cause:"hub")→명령 왕복(SCMD 큐→허브 적용→에코 일치)→체크섬 훼손/seq 역행 거부→재기동 복원. 배포 runbook 허브/배포-rpi.md.
  • 판정 정정: libs/GPIO.한선=순수 시뮬. 단 VM 자체에는 RPi5 sysfs GPIO 구현이 있음(crownyc.c:8192~8247, GPIO개수/정보 opcode) — 실기 경로는 GPIO.한선을 네이티브 opcode 래핑으로 확장하는 것이 후속 과제(신규 opcode 불필요할 수 있음).

6. ④ESI FPGA 센서수집 모듈 완료 — 상세 CrownyDoc 2026-07-17-esi-fpga-센서수집모듈.md

fpga/FPGA센서모듈.한선(8채널 FSM+SC1 조립, 55/55) + fpga_sensor_collector.vhd+tb(ghdl --std=08 ALL_PASS 8/8) + 3자 파리티 바이트일치 + 합성추정(LUT58/FF96, 참고용). 발견: 한선씨하드웨어합성.한선의 포함() boolean 오용 버그(미수정·후속 큐).

7-완료. 후속 배치 2 결과 (2026-07-17~19)

  1. GPIO 네이티브 래핑 완료 — VM opcode 180~193(__내장__() 탈출구, 실측 GPIO개수=40) 래핑: 핀쓰기자동/핀읽기자동(RPi5=sysfs/mac=가상핀뱅크·시뮬 위임). 자체시험 11/11·사용처 회귀 무손상·허브 gpio 연결·runbook §9(udev·배선표·스모크). 허브 sim E2E 재실행 PASS(2사이클 accepted 8/0). 상세=CrownyDoc 2026-07-17-GPIO-네이티브opcode-래핑.md
  2. 서버 OOM 근본수리 완료 — 원인: VM 힙=GC 없는 범프 할당자(배열당 ~4097셀)+요청별 append-log 전체 재파싱=단조증가→144M셀 상한(47분). 수리: 요청별 메모리마커/복원+쓰기시점 엔티티 스냅샷 컴팩션(8000자)+로그북/수신프레임 idx 회전. 스트레스 300cmd+100frame 크래시0·RSS 수렴·회귀 12/12·재기동 복원. 가드레일 "한선씨 상주 HTTP 서버 필수 이디엄" 신설. 상세=CrownyDoc 2026-07-18-crowny-space-OOM컴팩션수리.md
  3. 지오펜스 재실 트래커 완료 — 규격/지오펜스.한선(정수 등장방형 거리·원형 존·4상 재실판정, 22/22) + POST /api/presence + persons/env/interlock 실데이터 우선(시드 폴백) + auto1 트리거 presence:all_out 승격(15분 유예 tick 판정)·first_in 즉시 발화·중복발화 방지. E2E 전 단계 실측 PASS(외출 발화 cause:"automation"·귀가·신선도 옴). 신규 quirk: 특정 소수 리터럴 ×1e6 ±1~2 드리프트(존 반경 스케일에서 무해, 인라인 문서화). 상세=CrownyDoc 2026-07-19-crowny-space-재실-지오펜스-트래커.md
  4. 한선씨하드웨어합성.한선 포함() 버그 수리 완료 — 포함하나()==1 교체·컴파일 OK·학습 래칫.

7. 후속 큐 (다음 배치)

  1. GPIO.한선 → VM 네이티브 sysfs opcode 래핑 확장 + RPi5 실기 검증(crownyc RPi 빌드·허브 gpio 모드)
  2. ESI FPGA 실보드 합성(Vivado/Quartus)·UART 실배선(허브 UART수신→ingest)
  3. MQTT.한선 브로커 실연동(zigbee2mqtt) → 어댑터 3호
  4. 지오펜스 재실 트래커(학습DB 다각형판정 재사용)·페어링 발견 프로토콜
  5. hall 목 어댑터 → 실서비스(:9607) 전환
  6. 서버 append-log 재파싱 구조의 ARRAY힙 OOM(47분 1회, KeepAlive 자활) — 스냅샷+컴팩션 구조 개선
  7. 한선씨하드웨어합성.한선 포함()→포함하나() 수리 · SC1 RPN 정본화(변환기 보강)
  8. CrownyAI spaceBridge DOM 하이드레이션 통합·옴 확인 UI