J'ai utilisé la famille de frameworks Quantum Platform de Quantum Leaps pour plusieurs produits embarqués avec interfaces utilisateur (et ceux sans interface utilisateur). Le QP est un cadre pour la programmation événementielle (qui est essentiellement tous les systèmes embarqués). Les interfaces utilisateur en particulier correspondent bien, car la plupart des interfaces utilisateur sont constituées de «widgets» personnalisables, et les widgets reçoivent généralement des événements (timeout, pression de bouton, mouvement, etc.) provenant d'un répartiteur d'événements. Cette "inversion de contrôle" est très typique avec les interfaces utilisateur. La plupart des interfaces utilisateur (intégrées) que j'ai rencontrées au cours de ma carrière sont soit des machines à états pilotées par des événements, soit elles auraient dû être implémentées de cette manière.
Vous avez demandé spécifiquement comment gérer les commandes logiques &. Ce qui est bien dans la QP, c'est que le modèle de calcul d'objets actifs qu'elle englobe se prête à une implémentation simple et naturelle de machines à états (plates ou hiérarchiques). Ainsi, dans votre exemple ci-dessus, vous recevrez probablement un événement "température mise à jour" avec une nouvelle température, et votre gestionnaire d'état exécutera la logique & décider quelle action est nécessaire. Avec un framework, vous créez la logique derrière les contrôles, mais l'infrastructure gère presque tout le reste.
La plate-forme Quantum est assez sophistiquée. Il est également très facile de voir la connexion (traçabilité) entre le design (statechart) et l'implémentation/code. Mieux encore, le framework implémente toute l'infrastructure (mise en file d'attente & dispatching, transitions d'état, garbage collection, pools de mémoire, etc.), tout ce que vous avez à faire est de vous concentrer sur votre application.
J'ai utilisé le Qt de Nokia sur des plates-formes non embarquées, mais votre question semble indiquer que vous êtes déjà au courant. Je pense qu'il y a une version plus "embarquable" de Qt mais je ne l'ai jamais utilisée.
Cette question est beaucoup trop large pour bien répondre. Lorsque vous pouvez exécuter une JVM sur une chevalière, et Linux sur un lecteur MP3, la réponse est "tout ce dont vous avez l'espace et le budget de puissance pour". – msw