예제 #1
0
 def stress_count(self, elements, repeats, synchronizer, synchronization):
     if (elements == ["_test_ct_1_1", "_test_0d_1_1"]
             and synchronizer == "_test_tg_1_1"
             and synchronization == AcqSynchType.Trigger
             and os.name == "nt"):
         self.skipTest("fails on Windows")
     mg_name = str(uuid.uuid1())
     argin = [mg_name] + elements
     self.pool.CreateMeasurementGroup(argin)
     try:
         mg = Device(mg_name)
         mg.setSynchronizer(synchronizer, elements[0], apply=False)
         mg.setSynchronization(synchronization, elements[0])
         for i in range(repeats):
             state, values = mg.count(.001)
             self.assertEqual(state, DevState.ON,
                              "wrong state after measurement {}".format(i))
             for channel_name, value in values.items():
                 msg = ("Value {} for {} is not numerical in "
                        "measurement {}").format(value, channel_name, i)
                 self.assertTrue(is_numerical(value), msg)
     finally:
         mg.cleanUp()
         if os.name != "nt":
             self.pool.DeleteElement(mg_name)
예제 #2
0
 def stress_count(self, elements, repeats, synchronizer, synchronization):
     mg_name = str(uuid.uuid1())
     argin = [mg_name] + elements
     self.pool.CreateMeasurementGroup(argin)
     try:
         mg = Device(mg_name)
         mg.setSynchronizer(synchronizer, elements[0], apply=False)
         mg.setSynchronization(synchronization, elements[0])
         for i in range(repeats):
             state, values = mg.count(.001)
             self.assertEqual(state, DevState.ON,
                              "wrong state after measurement {}".format(i))
             for channel_name, value in values.items():
                 msg = ("Value {} for {} is not numerical in "
                        "measurement {}").format(value, channel_name, i)
                 self.assertTrue(is_numerical(value), msg)
     finally:
         mg.cleanUp()
         self.pool.DeleteElement(mg_name)
예제 #3
0
    def test_Synchronization(self, elements=["_test_ct_1_1", "_test_ct_1_2",
                                             "_test_ct_1_3", "_test_2d_1_1",
                                             "_test_mt_1_3/position"]):
        mg_name = str(uuid.uuid1())
        argin = [mg_name] + elements
        self.pool.CreateMeasurementGroup(argin)
        try:
            mg = Device(mg_name)
            result = mg.getSynchronization()
            expected = [AcqSynchType.Trigger, AcqSynchType.Trigger,
                        AcqSynchType.Trigger, AcqSynchType.Trigger, None]
            self._assertMultipleResults(result, elements, expected)
            # TODO: maybe we should raise an exception here?
            # with self.assertRaises(Exception):
            #     mg.setSynchronization(AcqSynchType.Trigger,
            #                           "_test_mt_1_3/position")

            mg.setSynchronization(AcqSynchType.Gate, "_test_ct_ctrl_1",
                                  "_test_2d_ctrl_1")

            expected = [AcqSynchType.Gate, AcqSynchType.Gate,
                        AcqSynchType.Gate, AcqSynchType.Gate, None]
            result = mg.getSynchronization()
            self._assertMultipleResults(result, elements, expected)

            mg.setSynchronization(AcqSynchType.Start, "_test_ct_ctrl_1",
                                  "_test_2d_ctrl_1")
            result = mg.getSynchronization()
            expected = [AcqSynchType.Start, AcqSynchType.Start,
                        AcqSynchType.Start, AcqSynchType.Start, None]
            self._assertMultipleResults(result, elements, expected)

            with self.assertRaises(Exception):
                mg.setSynchronization('asdf', "_test_ct_ctrl_1",
                                      "_test_2d_ctrl_1")

            # Check ret_full_name
            v = TangoDeviceNameValidator()
            counters = ["_test_ct_1_1", "_test_ct_1_2", "_test_ct_1_3",
                        '_test_2d_1_1']
            full_names = [v.getNames(counter)[0] for counter in counters]
            mg.setSynchronization(AcqSynchType.Trigger, "_test_ct_ctrl_1",
                                  "_test_2d_ctrl_1")

            result = mg.getSynchronization(*counters, ret_full_name=True)

            self._assertResult(result, full_names, AcqSynchType.Trigger)

        finally:
            mg.cleanUp()
            if os.name != "nt":
                self.pool.DeleteElement(mg_name)