"""
NAO stub tracker and look-at components.
"""
from sic_framework.core.actuator_python2 import SICActuator
from sic_framework.core.connector import SICConnector
from sic_framework.core.message_python2 import SICMessage, SICConfMessage, SICRequest
[docs]
class NaoStubTrackerActuator(SICActuator):
    """Stub for NAO tracker actuator - logs actions instead of executing them."""
    
[docs]
    @staticmethod
    def get_conf():
        return SICConfMessage() 
    
    
[docs]
    @staticmethod
    def get_output():
        return SICMessage 
    
[docs]
    def execute(self, request):
        """Log the tracker request instead of executing it."""
        self.logger.info("NaoStub.tracker: {}".format(type(request).__name__))
        self.logger.debug("  Request details: {}".format(request))
        return SICMessage() 
    
[docs]
    def on_message(self, message):
        """Log incoming messages."""
        self.logger.info("NaoStub.tracker message: {}".format(type(message).__name__))
        self.logger.debug("  Message details: {}".format(message)) 
[docs]
    def stop(self):
        """Stop the Tracker actuator."""
        self._stopped.set()
        super(NaoStubTrackerActuator, self).stop() 
 
[docs]
class NaoStubLookAtActuator(SICActuator):
    """Stub for NAO look-at actuator - logs actions instead of executing them."""
    
[docs]
    @staticmethod
    def get_conf():
        return SICConfMessage() 
    
    
[docs]
    @staticmethod
    def get_output():
        return SICMessage 
    
[docs]
    def execute(self, request):
        """Log the look-at request instead of executing it."""
        self.logger.info("NaoStub.look_at: {}".format(type(request).__name__))
        self.logger.debug("  Request details: {}".format(request))
        return SICMessage() 
    
[docs]
    def on_message(self, message):
        """Log incoming messages."""
        self.logger.info("NaoStub.look_at message: {}".format(type(message).__name__))
        self.logger.debug("  Message details: {}".format(message)) 
[docs]
    def stop(self):
        """Stop the LookAt actuator."""
        self._stopped.set()
        super(NaoStubLookAtActuator, self).stop() 
 
[docs]
class NaoStubTracker(SICConnector):
    component_class = NaoStubTrackerActuator 
[docs]
class NaoStubLookAt(SICConnector):
    component_class = NaoStubLookAtActuator