Étape 14 : Test_hbridge.cpp
Ce fichier définit le composant SW de notre projet. Parce que l’interface HBridgeCtrlIndication est implémenté dans SW et appelée à partir de HW, nous avons besoin de l’implémenter dans une classe héritée de la HBridgeCtrlIndicationWrapper générées par ordinateur. Le wrapper générées déclare une instance virtuelle pure de chaque méthode dans la définition originale de l’interface HBridgeCtrlIndication BSV, qui oblige le programmeur pour fournir une implémentation concrète pour chacun d’eux.
Dans ensemble, nous créons une instance de notre HBridgeCtrlIndication (Wrapper) et une instance du proxy généré pour l’interface HBridgeCtrlRequest qui a été mis en place en HW. L’administration générée pour chacun de ces modules contient tout le code d’initialisation qui localise le HW correct enregistre et les affecte en espace utilisateur. Le ctor pour wrappers enregistre également l’objet avec le gestionnaire d’événements interrupt-drive qui est initié par un appel à pthread_create en appelant portalExec_start().
Après avoir instancié les emballages et les proxys, nous sommes prêts à commencer à envoyer des commandes au contrôleur via le portail désigné. Lorsque le HW appelle fonctionnalité SW, une interruption est déclenchée qui réveille le fil des événements et exécute la méthode d’interface de méthode spécifiée. Communication entre le thread principal et le gestionnaire d’événements est implémentée à l’aide de techniques standards de programmation multi-threads.