def set_status(self, status, origin=None, force=False):
        """ For programs, to set current status of the actuator. Each
            active program has its status in :attr:`.program_stack`
            dictionary and the highest priority is realized in the actuator """

        if not self.slave and origin not in self.program_stack:
            raise ValueError('Status cannot be changed directly')

        with self._actuator_status_lock:
            self.logger.debug("set_status got through, program: %s", origin)
            self.logger.debug("Set_status %s %s %s", self.name, origin, status)

            if self.slave:
                return self._do_change_status(status, force)

            self.logger.debug("Sets status %s for %s", status, origin.name)

            with self._program_lock:
                self.program_status[origin] = status

                if self.program == origin:
                    return self._do_change_status(status, force)
For programs, to set current status of the actuator. Each
            active program has its status in :attr:`.program_stack`
            dictionary and the highest priority is realized in the actuator