def __init__(
        self,
        name,
        userPort=UserPort,
        commandSet=arcticFWCommandSet,
    ):
        """!Construct an ArcticFWActor

        @param[in] name  actor name
        @param[in] userPort  int, a port on which this thing runs
        @param[in] commandSet  a twistedActor.parse.CommandSet used for command def, and parsing
        @param[in] fakeFilterWheel  bool.  If true use a fake filter wheel device, for safe testing.
        """
        self.status = ArcticFWStatus()
        self.fwHomeCmd = UserCmd()
        self.fwHomeCmd.setState(self.fwHomeCmd.Done)
        self.fwMoveCmd = UserCmd()
        self.fwMoveCmd.setState(self.fwMoveCmd.Done)
        self.status.addHomeCallback(self.homeCallback)
        self.status.addMoveCallback(self.moveCallback)
        # init the filterWheel
        # this sets self.filterWheel
        Actor.__init__(
            self,
            userPort=userPort,
            maxUsers=1,
            name=name,
            version=__version__,
            commandSet=commandSet,
        )
        init()
    def commandActor(self, cmdStr, shouldFail=False):
        d = Deferred()
        cmd = UserCmd(cmdStr=cmdStr)

        def fireDeferred(cbCmd):
            if cbCmd.isDone:
                d.callback("done")

        def checkCmdState(cb):
            self.assertTrue(shouldFail == cmd.didFail)

        cmd.addCallback(fireDeferred)
        d.addCallback(checkCmdState)
        self.arcticFWActor.parseAndDispatchCmd(cmd)
        return d
Exemple #3
0
    def __init__(self,
        filterWheelDev,
        shutterDev,
        name="arcticICC",
        userPort = UserPort,
        test=False,
    ):
        """!Construct an ArcticActor

        @param[in] filterWheelDev  a FilterWheelDevice instance
        @param[in] shutterDev  a ShutterDevice instance
        @param[in] name  actor name; used for logging
        @param[in] userPort port on which this service runs
        @param[in] test bool. If true, use a fake camera.
        """
        self.imageDir = ImageDir
        self.test = test
        self.setCamera()
        self.filterWheelDev = filterWheelDev
        self.shutterDev = shutterDev
        self._tempSetpoint = None
        self.expNum = 0
        self.exposeCmd = UserCmd()
        self.exposeCmd.setState(UserCmd.Done)
        self.pollTimer = Timer()
        self.expName = None
        self.comment = None
        self.expStartTime = None
        self.expType = None
        self.expTime = None
        self.resetConfig = None
        Actor.__init__(self,
            userPort = userPort,
            maxUsers = 1,
            devs = (filterWheelDev, shutterDev),
            name = name,
            version = __version__,
            doConnect = True,
            doDevNameCmds = False,
            doDebugMsgs = self.test,
            )
def expandCommand():
    return UserCmd()
 def makeCmd(self, cmd):
     newCmd = UserCmd(userID = 0, cmdStr = cmd)
     newCmd.cmdVerb = cmd
     newCmd.addCallback(self.cmdCallback)
     return newCmd