Пример #1
0
 def updateActuator(self, data: ActuatorData) -> bool:
     """
     Override super class method.
     Use _handleActuation to execute actuation
     :param data: Given ActuatorData
     :return: If succeed to update and execute
     """
     if data is None:
         logging.error("Got an invalid ActuatorData, which is None!")
         return False
     if not isinstance(data, ActuatorData):
         logging.error(
             "Got an invalid ActuatorData, which type is not ActuatorData!")
         return False
     cmd = data.getCommand()
     if cmd != ActuatorData.COMMAND_ON and cmd != ActuatorData.COMMAND_OFF:
         logging.error(
             "Got an invalid ActuatorData, whose command is invalid!")
         return False
     ret = self._handleActuation(cmd, data.getValue(), data.getStateData())
     self.latestActuatorData.updateData(data)
     self.latestActuatorData.setStatusCode(int(ret))
     self.latestActuatorData.setName(self.simpleName)
     self.latestActuatorData.setAsResponse()
     return ret >= 0
     pass
    def testFullUpdate(self):
        ad = ActuatorData()
        ad2 = self._createTestActuatorData()

        ad.updateData(ad2)

        self.assertEquals(ad.getCommand(), ActuatorData.COMMAND_ON)
        self.assertEquals(ad.getStateData(), self.DEFAULT_STATE_DATA)
        self.assertEquals(ad.getValue(), self.DEFAULT_VALUE)
 def sendActuatorCommand(self, data: ActuatorData) -> bool:
     logging.info("Actuator command received.Processing...")
     if self.useEmulator is True:
         if data.actuatorType == ActuatorData.HVAC_ACTUATOR_TYPE:
             # set hvac data (command, value ...)
             self.hvacEmulator.handleActuation(data.getCommand(),
                                               data.getValue(),
                                               data.getStateData())
         elif data.actuatorType == ActuatorData.HUMIDIFIER_ACTUATOR_TYPE:
             # set humidifier data (command, value ...)
             self.humidifierEmulator.handleActuation(
                 data.getCommand(), data.getValue(), data.getStateData())
         elif data.actuatorType == ActuatorData.LED_DISPLAY_ACTUATOR_TYPE:
             # set led
             self.ledEmulator.handleActuation(data.getCommand(),
                                              data.getValue(),
                                              data.getStateData())
         else:
             logging.info("Cant Find Actuator Type")
             pass
         self.humidifierEmulator
         self.hvacEmulator
     else:
         if data.actuatorType == ActuatorData.HVAC_ACTUATOR_TYPE:
             # set hvac data (command, value ...)
             self.hvacActuator.updateActuator(data)
         elif data.actuatorType == ActuatorData.HUMIDIFIER_ACTUATOR_TYPE:
             # set humidifier data (command, value ...)
             self.humidifierActuator.updateActuator(data)
         elif data.actuatorType == ActuatorData.LED_DISPLAY_ACTUATOR_TYPE:
             logging.info("No LED device")
         else:
             logging.info("Cant Find Actuator Type")
             pass
     # pass data to listener
     self.dataMsgListener.handleActuatorCommandResponse(data)
Пример #4
0
    def sendActuatorCommand(self, data: ActuatorData) -> bool:
        """
		Send Actuator Command to Actuator
		
		@return bool
		"""
        if self.dataMsgListener:
            self.dataMsgListener.handleActuatorCommandResponse(data)
            logging.info('Actuator command received. Processing...')
            if self.useEmulator:
                if (data.getActuatorType() ==
                        ActuatorData.HUMIDIFIER_ACTUATOR_TYPE):
                    if ~data.isResponseFlagEnabled():
                        self.humidifierEmulator._handleActuation(
                            data.getCommand(), data.getValue(),
                            data.getStateData())
                if (data.getActuatorType() == ActuatorData.HVAC_ACTUATOR_TYPE):
                    if ~data.isResponseFlagEnabled():
                        self.hvacEmulator._handleActuation(
                            data.getCommand(), data.getValue(),
                            data.getStateData())
                if (data.getActuatorType() ==
                        ActuatorData.LED_DISPLAY_ACTUATOR_TYPE):
                    if ~data.isResponseFlagEnabled():
                        self.ledEmulator._handleActuation(
                            data.getCommand(), data.getValue(),
                            data.getStateData())
                if (data.getActuatorType() ==
                        ActuatorData.SPRINKLER_ACTUATOR_TYPE):
                    if ~data.isResponseFlagEnabled():
                        self.sprinklerEmulator._handleActuation(
                            data.getCommand(), data.getValue(),
                            data.getStateData())
                if (data.getActuatorType() ==
                        ActuatorData.SPRINKLER_CTRL_ACTUATOR_TYPE):
                    if ~data.isResponseFlagEnabled():
                        self.sprCtrlEmulator._handleActuation(
                            data.getCommand(), data.getValue(),
                            data.getStateData())
                if (data.getActuatorType() ==
                        ActuatorData.SPRINKLER_MASTER_ACTUATOR_TYPE):
                    if ~data.isResponseFlagEnabled():
                        self.sprMasterEmulator._handleActuation(
                            data.getCommand(), data.getValue(),
                            data.getStateData())
            else:
                if (data.getActuatorType() ==
                        ActuatorData.HUMIDIFIER_ACTUATOR_TYPE):
                    if ~data.isResponseFlagEnabled():
                        self.humidifierActuator.updateActuator(data)
                if (data.getActuatorType() == ActuatorData.HVAC_ACTUATOR_TYPE):
                    if ~data.isResponseFlagEnabled():
                        self.hvacActuator.updateActuator(data)