Stap 14: Test_hbridge.cpp
Dit bestand definiëert het SW onderdeel van ons project. Omdat de interface HBridgeCtrlIndication wordt geïmplementeerd in SW en ingeroepen van HW, we moeten ten uitvoer te leggen als een overgenomen klasse van de machine-gegenereerde HBridgeCtrlIndicationWrapper. De gegenereerde wrapper verklaart een puur virtueel exemplaar van elke methode in de oorspronkelijke definitie van de HBridgeCtrlIndication BSV-interface, waardoor de programmeur om te zorgen voor een concrete uitvoering voor elkaar.
Op main creëren we een exemplaar van onze HBridgeCtrlIndication (Wrapper) en een exemplaar van de gegenereerde proxy voor de HBridgeCtrlRequest-interface die is geïmplementeerd in HW. De gegenereerde afsluiting voor elk van deze modules bevat alle de initialisatiecode die de juiste HW zoekt registreert en kaarten hen in de ruimte van de gebruiker. De ctor voor wrappers registreert ook het object met de interrupt-station gebeurtenis-handler die wordt geïnitieerd door een aanroep van pthread_create door beroep te doen op portalExec_start().
Na het instantiëren de wrappers en proxies, zijn we klaar om te beginnen met het verzenden van opdrachten naar de controller via het aangewezen portaal. Wanneer de HW SW functionaliteit aanroept, een interrupt is naar voren gebracht die ontwaakt de gebeurtenis draad en voert de opgegeven methode van de interface. Communicatie tussen de belangrijkste wol en de gebeurtenis-handler is uitgevoerd met behulp van standaard multithread programmeertechnieken.