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
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
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