EDGE AICustom MLTF Lite · ONNX RuntimeDistributionMulti-process · EventBusEdge DevicesCharger · Inverter · ESSOCPP 1.6 / 2.1 · SLCP · Modbus · CANQt 6.5+C++17

Edge Framework

모든 디바이스에 AI를, 엣지에서

온디바이스 추론이 가능한 플러그인 기반 엣지 프레임워크. 그리드에 연결되는 모든 하드웨어 — 충전기, 인버터, ESS, 미터 — 가 Electra를 실행합니다.

Core Stack

LanguageC++17 · QML · Python
FrameworkQt 6.5+ LTS
AI RuntimeTF Lite · ONNX
ProtocolOCPP 1.6 / 2.1

Layers

UIQt Quick · Voice
CoreState Machine
ServiceOCPP · V2G
HALRFID · PLC · CAN

Architecture

6 레이어 아키텍처

UI → Core → Service → Protocol → Edge AI → HAL. 상위 레이어는 하위 레이어를 호출하고, 하위는 이벤트/시그널로만 상위에 통보합니다.

UI
gui-app

Qt Quick/QML 기반 터치 UI. 음성 입력·오디오 컨트롤러·AI 에이전트를 선택적으로 활성화. GUI 크래시와 독립적으로 충전 세션 유지.

Qt QuickVoice InputAudio ControllerUI ComposerAI Agent
Core
app-core

상태 머신 기반 충전 세션 관리. ProcessManager·DeviceHalManager가 하위 레이어를 통합 조율. QLocalSocket IPC로 UI와 통신.

AppCoreState MachineProcessManagerDeviceHalManagerSouthBoundInterface
Service
on-demand

로컬 로드 밸런서 — 필요 시에만 생성되는 온디맨드 프로세스. 복수 커넥터 환경에서 충전 세션 균등 배분.

LocalLoadBalancer
Protocol
mixed

OCPP 1.6/2.1 클라이언트 (상시). DR Handler·V2G Agent는 온디맨드 프로세스로 DR 이벤트·ISO 15118 V2G 세션 처리.

OCPP ClientDR Handler (on-demand)V2G Agent (on-demand)
Edge AI
on-demand

EdgeAIBrain — 온디바이스 ML 추론 및 이상 감지. TensorFlow Lite·ONNX Runtime으로 서버 없이 실시간 분석. 필요 시에만 활성화.

EdgeAIBrainTF LiteONNX RuntimeAnomaly Detection
HAL
separate

하드웨어 추상화 레이어. RFID·PLC·CAN·Payment 컨트롤러는 독립 프로세스로 격리. GPIO·Power는 app-core 내부. 모든 하드웨어 플랫폼 지원.

RFID ControllerPLC ControllerCAN ControllerPayment ControllerGPIOPower Controller

Process Model

상시 10개 + 온디맨드 4개 프로세스

GUI 크래시와 무관하게 충전 세션 유지. 프로세스별 독립 업데이트 가능.

10
always-on
4
on-demand

Design Principles

설계 원칙

플러그인 퍼스트

주요 기능은 모두 플러그인으로 구현. 설정 파일 변경만으로 선택적 활성화. 코드 수정 없이 제품 변종 생성.

프로세스 격리

각 주요 기능이 독립 프로세스로 분리. 한 프로세스 장애가 전체 시스템에 영향 없음. GUI 크래시와 무관하게 OCPP 통신 유지.

Qt6 퓨어

외부 의존성 최소화. Qt6 네이티브 기능 우선. QLocalSocket IPC로 UI·코어 분리. Boost·Poco 없음.

하드웨어 추상화

HAL 레이어가 하드웨어를 완전히 추상화. RFID·PLC·CAN·IC카드 등 다양한 하드웨어 플랫폼을 동일한 인터페이스로 지원.

Tech Spec

기술 스택 전체

LanguageC++17 · QML · Python
UI FrameworkQt 6.5+ LTS
AI RuntimeTF Lite · ONNX Runtime
OCPP1.6-J · 2.1 (WebSocket/JSON)
V2GISO 15118 · Bidirectional
DatabaseSQLite · SQLCipher (Encrypted)
IPCQLocalSocket (Primary) · Shared Memory
CommunicationCAN · Modbus · RFID · PLC

UI Isolation

gui-app은 electra-* 라이브러리에 의존하지 않습니다

모든 UI ↔ Core 통신은 QLocalSocket(/var/run/electra/ui.sock)을 통해 단일 채널로 처리. 요청/응답 및 이벤트 푸시를 모두 지원. UI는 순수 Qt만 사용.

/var/run/electra/ui.sockQLocalSocketBidirectionalZero framework deps