示例#1
0
    def set(self, data):
        # Check all errors first to avoid partially applying an update.
        for key, value in data.items():
            if key not in self._state:
                # return self.sendErrorReply('unknownValue', f"The value '{key}' is not known. Valid keys are: {self._state.keys()}")
                cameraControlAPI.send(
                    QDBusMessage.createErrorReply(
                        'unknownValue',
                        f"The value '{key}' is not known. Valid keys are: {self._state.keys()}"
                    ))
            if not isinstance(value, type(self._state[key])):
                return cameraControlAPI.send(
                    QDBusMessage.createErrorReply(
                        'wrongType',
                        f"Can not set '{key}' to {value}. (Previously {self._state[key]}.) Expected {type(self._state[key])}, got {type(value)}."
                    ))

        for key, value in data.items():
            self._state[key] = value
示例#2
0
    def get(self, msg):
        keys = msg.arguments()[0]
        retval = {}

        for key in keys:
            if key not in self._state:
                return cameraControlAPI.send(  #Todo: This isn't how you return errors.
                    QDBusMessage.createErrorReply(
                        'unknownValue',
                        f"The value '{key}' is not known. Valid keys are: {self._state.keys()}"
                    ))
            retval[key] = self._state[key]

        return retval