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