def _createTestActuatorData(self):
        ad = ActuatorData()

        ad.setName(self.DEFAULT_NAME)
        ad.setCommand(ActuatorData.COMMAND_ON)
        ad.setStateData(self.DEFAULT_STATE_DATA)
        ad.setValue(self.DEFAULT_VALUE)

        return ad
Beispiel #2
0
    def _createTestActuatorData(self):
        ad = ActuatorData()

        ad.setName(self.DEFAULT_NAME)
        ad.setCommand(ConfigConst.COMMAND_ON)
        ad.setStateData(self.DEFAULT_STATE_DATA)
        ad.setValue(self.DEFAULT_VALUE)

        logging.info("Actuator data as string: " + str(ad))

        return ad
Beispiel #3
0
    def testActuatorDataConversionsFromObject(self):
        logging.info("\n\n----- [JSON Conversions from ActuatorData] -----")

        adName = "FooBar2 Actuator"
        adObj1 = ActuatorData()
        adObj1.setName(adName)

        adObj1Str = self.dataUtil.actuatorDataToJson(adObj1)
        adObj2 = self.dataUtil.jsonToActuatorData(adObj1Str)
        adObj2Str = self.dataUtil.actuatorDataToJson(adObj2)

        logging.info("Sample ActuatorData: " + str(adObj1))
        logging.info("ActuatorData to JSON: " + str(adObj1Str))
        logging.info("JSON back to ActuatorData: " + str(adObj2))
        logging.info("ActuatorData back to JSON: " + str(adObj2Str))

        self.assertEqual(adName, adObj1.getName())
        self.assertEqual(adObj1.getName(), adObj2.getName())
        self.assertEqual(adObj1.getTimeStamp(), adObj2.getTimeStamp())
        self.assertEqual(adObj1Str, adObj2Str)
class BaseActuatorSimTask():
    """
	Base class for ActuatorSimTask
	
	"""
    def __init__(self,
                 actuatorType: int = ActuatorData.DEFAULT_ACTUATOR_TYPE,
                 simpleName: str = ConfigConst.NOT_SET):
        """
		Init BaseActuatorSimTask with default values
		:param actuatorType: Type of actuator
		:param simpleName: Name of actuator
		"""
        self.actuatorType = actuatorType
        self.simpleName = simpleName
        self.latestActuatorData = ActuatorData(self.actuatorType,
                                               self.simpleName)
        pass

    def activateActuator(self, val: float) -> bool:
        """
		Turn actuator on with given target value
		As a sim actuator, there is no real action
		:param val: Given target actuator value
		:return: If succeed to activate Actuator, always True as a sim actuator
		"""
        logging.info("\n======\nSim %s actuator ON, with value = %d.\n======" %
                     (self.getSimpleName(), val))
        self.latestActuatorData.setCommand(ActuatorData.COMMAND_ON)
        self.latestActuatorData.setValue(val)
        return True
        pass

    def deactivateActuator(self) -> bool:
        """
		Turn actuator off with given target value
		As a sim actuator, there is no real action
		:return: If succeed to deactivate Actuator, always True as a sim actuator
		"""
        logging.info("\n======\nSim %s actuator OFF.\n======" %
                     self.getSimpleName())
        self.latestActuatorData.setCommand(ActuatorData.COMMAND_OFF)
        return True
        pass

    def getLatestActuatorResponse(self) -> ActuatorData:
        """
		Get latest actuator data
		:return: Latest ActuatorData
		"""
        return self.latestActuatorData
        pass

    def getSimpleName(self) -> str:
        """
		Get name of the sim actuator
		:return: Name string
		"""
        return self.simpleName
        pass

    def updateActuator(self, data: ActuatorData) -> bool:
        """
		Use ActuatorData as command:
		Update current maintained latest ActuatorData
		Use given ActuatorData to execute command
		: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
        if data.getCommand(
        ) is not ActuatorData.COMMAND_ON and data.getCommand(
        ) is not ActuatorData.COMMAND_OFF:
            logging.error(
                "Got an invalid ActuatorData, whose command is invalid!")
            return False
        ret = False
        if data.getCommand() is ActuatorData.COMMAND_ON:
            ret = self.activateActuator(data.getValue())
        else:
            ret = self.deactivateActuator()
        self.latestActuatorData.updateData(data)
        self.latestActuatorData.setName(self.simpleName)
        self.latestActuatorData.setStatusCode(int(ret))
        self.latestActuatorData.setAsResponse()
        return ret
        pass