def testSettingsBasedWait(self):
        setScanSettings(MyScanSettings())

        cmd = SettingsBasedWait('SomePV', 42)
        self.assertEquals(str(cmd), "Wait('SomePV', 42, comparison='>=')")

        cmd = SettingsBasedWait('PerpetualCounter', 42)
        self.assertEquals(str(cmd), "Wait('PerpetualCounter', 42, comparison='increase by')")
    def testSettingsBasedSet(self):
        setScanSettings(MyScanSettings())

        cmd = SettingsBasedSet('My:Motor1', 42)
        self.assertEquals(str(cmd), "Set('My:Motor1', 42, completion=True, readback='My:Motor1.RBV', timeout=100)")

        cmd = SettingsBasedSet('Unknown:Motor1', 42)
        self.assertEquals(str(cmd), "Set('Unknown:Motor1', 42, readback='Unknown:Motor1.RBV')")

        cmd = SettingsBasedSet('Unknown:Motor1', 42, readback=False)
        self.assertEquals(str(cmd), "Set('Unknown:Motor1', 42)")
    def testSettingsBasedWait(self):
        setScanSettings(MyScanSettings())

        cmd = SettingsBasedWait('SomePV', 42)
        self.assertEquals(
            str(cmd), "Wait('SomePV', 42, comparison='>=', tolerance=0.1)")

        cmd = SettingsBasedWait('PerpetualCounter', 42)
        self.assertEquals(
            str(cmd),
            "Wait('PerpetualCounter', 42, comparison='increase by', tolerance=0.1)"
        )
    def testSettingsBasedLoop(self):
        setScanSettings(MyScanSettings())

        cmd = SettingsBasedLoop('My:Motor1', 1, 10, 2, Delay(1))
        self.assertEquals(
            str(cmd),
            "Loop('My:Motor1', 1, 10, 2, [ Delay(1) ], completion=True, readback='My:Motor1.RBV', tolerance=0.2, timeout=100)"
        )

        cmd = SettingsBasedLoop('My:Motor1', 1, 10, 2, Delay(1), Delay(2))
        self.assertEquals(
            str(cmd),
            "Loop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], completion=True, readback='My:Motor1.RBV', tolerance=0.2, timeout=100)"
        )

        cmd = SettingsBasedLoop('My:Motor1', 1, 10, 2,
                                [Delay(1), Delay(2)])
        self.assertEquals(
            str(cmd),
            "Loop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], completion=True, readback='My:Motor1.RBV', tolerance=0.2, timeout=100)"
        )

        cmd = SettingsBasedLoop('My:Motor1',
                                1,
                                10,
                                2, [Delay(1), Delay(2)],
                                completion=False)
        self.assertEquals(
            str(cmd),
            "Loop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], readback='My:Motor1.RBV', tolerance=0.2, timeout=100)"
        )

        cmd = SettingsBasedLoop('My:Motor1',
                                1,
                                10,
                                2, [Delay(1), Delay(2)],
                                completion=False,
                                timeout=0)
        self.assertEquals(
            str(cmd),
            "Loop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], readback='My:Motor1.RBV', tolerance=0.2)"
        )

        cmd = SettingsBasedLoop('My:Motor1',
                                1,
                                10,
                                2, [Delay(1), Delay(2)],
                                completion=False,
                                readback=False)
        self.assertEquals(
            str(cmd), "Loop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ])")
    def testSettingsBasedSet(self):
        setScanSettings(MyScanSettings())

        cmd = SettingsBasedSet('My:Motor1', 42)
        self.assertEquals(
            str(cmd),
            "Set('My:Motor1', 42, completion=True, readback='My:Motor1.RBV', timeout=100)"
        )

        cmd = SettingsBasedSet('Unknown:Motor1', 42)
        self.assertEquals(
            str(cmd),
            "Set('Unknown:Motor1', 42, readback='Unknown:Motor1.RBV')")

        cmd = SettingsBasedSet('Unknown:Motor1', 42, readback=False)
        self.assertEquals(str(cmd), "Set('Unknown:Motor1', 42)")
    def testSettingsBasedLoop(self):
        setScanSettings(MyScanSettings())

        cmd = SettingsBasedLoop('My:Motor1', 1, 10, 2, Delay(1)); 
        self.assertEquals(str(cmd), "Loop('My:Motor1', 1, 10, 2, [ Delay(1) ], completion=True, readback='My:Motor1.RBV', timeout=100)")

        cmd = SettingsBasedLoop('My:Motor1', 1, 10, 2, Delay(1), Delay(2)); 
        self.assertEquals(str(cmd), "Loop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], completion=True, readback='My:Motor1.RBV', timeout=100)")

        cmd = SettingsBasedLoop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ]); 
        self.assertEquals(str(cmd), "Loop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], completion=True, readback='My:Motor1.RBV', timeout=100)")

        cmd = SettingsBasedLoop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], completion=False); 
        self.assertEquals(str(cmd), "Loop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], readback='My:Motor1.RBV', timeout=100)")

        cmd = SettingsBasedLoop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], completion=False, timeout=0); 
        self.assertEquals(str(cmd), "Loop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], readback='My:Motor1.RBV')")

        cmd = SettingsBasedLoop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ], completion=False, readback=False); 
        self.assertEquals(str(cmd), "Loop('My:Motor1', 1, 10, 2, [ Delay(1), Delay(2) ])")
    def testSettingsBasedSet(self):
        setScanSettings(MyScanSettings())

        cmd = SettingsBasedSet('My:Motor1', 42)
        self.assertEquals(
            str(cmd),
            "Set('My:Motor1', 42, completion=True, timeout=100, readback='My:Motor1.RBV', tolerance=0.100000)"
        )

        cmd = SettingsBasedSet('Unknown:Motor1', 42)
        self.assertEquals(
            str(cmd),
            "Set('Unknown:Motor1', 42, readback='Unknown:Motor1.RBV', tolerance=0.100000)"
        )

        cmd = SettingsBasedSet('Unknown:Motor1', 42, readback=False)
        self.assertEquals(str(cmd), "Set('Unknown:Motor1', 42)")

        cmd = SettingsBasedSet('DeviceWithStatus', 5)
        self.assertEquals(
            str(cmd),
            "Set('DeviceWithStatus', 5, completion=True, readback='Status', readback_value='OK')"
        )
    def getReadbackName(self, device_name):
        # Motors use their *.RBV field for readback
        if device_name.startswith("pos"):
            return device_name + ".RBV"
        return device_name


if __name__ == "__main__":
    print "Without scan settings:"
    cmds = [
        Set('temperature', 10),
        Wait('PerpetualCounter', 10),
    ]
    for cmd in cmds:
        print cmd
    # Result:
    # Set('temperature', 10)
    # Wait('PerpetualCounter', 10, comparison='>=')

    setScanSettings(MyScanSettings())

    print "With scan settings:"
    cmds = [
        Set('temperature', 10),
        Wait('PerpetualCounter', 10),
    ]
    for cmd in cmds:
        print cmd
    # Result:
    # Set('temperature', 10, completion=True, timeOut=300)
    # Wait('PerpetualCounter', 10, comparison='increase by')
                               timeout=10)


#
#     def getReadbackName(self, device_name):
#         # Motors use their *.RBV field for readback
#         if 'motor' in device_name:
#             return device_name + ".RBV"
#         return device_name

if __name__ == '__main__':
    orig_motor_x = 0
    orig_motor_y = 0

    # Custom settings configure the TableScan
    setScanSettings(LocalScanSettings())
    # Create table scan command
    # list all scan parameters
    table = TableScan(['motor_x', 'motor_y', "Wait For", "Value"], [
        [1, 1, 'Seconds', 1],
        ['', 2, 'Seconds', 1],
        ['', 3, 'Seconds', 1],
        [2, 1, 'Seconds', 1],
        ['', 2, 'Seconds', 1],
        ['', 3, 'Seconds', 1],
        [3, 1, 'Seconds', 1],
        ['', 2, 'Seconds', 1],
        ['', 3, 'Seconds', 1],
        [4, 1, 'Seconds', 1],
        ['', 2, 'Seconds', 1],
        ['', 3, 'Seconds', 1],
        # use motor, and does not check its readback
        self.defineDeviceClass(".*motor.*", completion=True, readback=False, timeout=10)
#         
#     def getReadbackName(self, device_name):
#         # Motors use their *.RBV field for readback
#         if 'motor' in device_name:
#             return device_name + ".RBV"
#         return device_name

if __name__ == '__main__':
    orig_motor_x = 0
    orig_motor_y = 0
    
    # Custom settings configure the TableScan
    setScanSettings(LocalScanSettings())
    # Create table scan command
    # use function to generate scan range
    table = TableScan(['Comment',     'motor_x',       'motor_y',     'Wait For',   'Value'],
                      [['Example',        '',               '',         '',         ''], 
                       ['',        'range(1, 6, 1)', 'range(1, 4, 1)', 'Seconds',    1],
                       ['',               1,                1,          '',         '']],
                      pre=Set('motor_x', 1, completion=True),
                      post=[Set('motor_x', orig_motor_x, completion=True),
                            Set('motor_y', orig_motor_y, completion=True),],
                      start=Set("neutrons", 0, completion=True, timeout=10),
                      log_always=('neutrons', 'setpoint')
                      )

    cmds = table.createScan()
    try:
Exemple #11
0
        
    def getReadbackName(self, device_name):
        # Motors use their *.RBV field for readback
        if device_name.startswith("pos"):
            return device_name + ".RBV"
        return device_name

if __name__ == "__main__":
    print "Without scan settings:"
    cmds = [
            Set('temperature', 10),
            Wait('PerpetualCounter', 10),
           ]
    for cmd in cmds:
        print cmd
    # Result:
    # Set('temperature', 10)
    # Wait('PerpetualCounter', 10, comparison='>=')
      
    setScanSettings(MyScanSettings())
    
    print "With scan settings:"
    cmds = [
            Set('temperature', 10),
            Wait('PerpetualCounter', 10),
           ]
    for cmd in cmds:
        print cmd
    # Result:    
    # Set('temperature', 10, completion=True, timeOut=300)
    # Wait('PerpetualCounter', 10, comparison='increase by')