저는 사용자 인터페이스가있는 여러 임베디드 제품 (및 UI가없는 제품)에 대해 Quantum Leaps의 Quantum Platform 프레임 워크 제품군을 사용했습니다.
QP는 이벤트 기반 프로그래밍 (기본적으로 모든 임베디드 시스템이 있음)을위한 프레임 워크입니다. 대부분의 사용자 인터페이스는 사용자 정의 할 수있는 "위젯"으로 구성되고 위젯은 일반적으로 이벤트 디스패처에서 이벤트 (시간 초과, 버튼 누름, 이동 등)를 수신하므로 사용자 인터페이스가 적절합니다. 이 "제어 반전"은 사용자 인터페이스에서 매우 일반적입니다. 필자가 경험 한 대부분의 (임베디드) 사용자 인터페이스는 이벤트 중심의 상태 머신이거나 그러한 방식으로 구현되어 있어야합니다.
로직 & 컨트롤을 특별히 다루었습니까? QP에 대한 좋은 점은 그것이 받아 들인 컴퓨팅의 액티브 - 오브젝트 모델이 아주 자연스러운 상태 기계 (평면 또는 계층 적)의 직접적인 구현임을 자부합니다. & 따라서 위의 예에서 새로운 온도로 "온도 업데이트"이벤트가 수신되고 상태 처리기가 로직을 수행하여 & 조치가 필요한지 결정합니다. 프레임 워크를 사용하면 컨트롤 뒤에 로직을 만들 수 있지만 인프라는 거의 모든 것을 처리합니다.
퀀텀 플랫폼은 상당히 매끈합니다. 또한 설계 (상태 차트)와 구현/코드 간의 연결 (추적 가능성)을 매우 쉽게 볼 수 있습니다. 무엇보다도 프레임 워크는 모든 인프라 (이벤트 대기열 & 디스패치, 상태 전환, 가비지 콜렉션, 메모리 풀 등)를 구현하므로 애플리케이션에 집중해야합니다.
저는 임베디드되지 않은 플랫폼에서 Nokia Qt를 사용했지만 귀하의 질문에 이미 알고 있다고 생각됩니다. 나는 Qt의 더 작은 "임베디드 가능"버전이 있다고 생각하지만 결코 사용하지 못했습니다.
출처
2010-08-22 00:05:28
Dan
이 질문은 대답하기에 너무 광범위합니다. 인장 반지에서 JVM을, MP3 플레이어에서 Linux를 실행할 수있는 경우 대답은 "당신은 공간과 전력 예산이있는 것"입니다. – msw