Esempio n. 1
0
 def get(self):
     modename = self.get_argument("mode", None)
     if modename:
         apvs = dict(controller.list_by_mode(modename))
     else:
         apvs = dict(controller.list_subscribed())
     self.win(apvs)
Esempio n. 2
0
    def test_list_pvs_simple(self):
        def just_the_name(list_of_pairs):
            return map(operator.itemgetter(0), list_of_pairs)

        controller.subscribe('DEFAULT.PV', SubscriptionMode.Monitor(delta=0.01)).wait()
        controller.subscribe('FOO.PV', SubscriptionMode.Monitor(delta=0.123)).wait()
        controller.subscribe('BAR.PV', SubscriptionMode.Scan(period=123.1) ).wait()
        
        pvs = just_the_name(controller.list_subscribed())
        self.assertItemsEqual( pvs, ['BAR.PV', 'DEFAULT.PV', 'FOO.PV'])

        scan_pvs = just_the_name(controller.list_by_mode(SubscriptionMode.Scan.name))
        self.assertEqual( scan_pvs, ['BAR.PV'])

        monitor_pvs = just_the_name(controller.list_by_mode(SubscriptionMode.Monitor.name))
        self.assertEqual( monitor_pvs, ['DEFAULT.PV', 'FOO.PV'])
Esempio n. 3
0
    def test_list_and_get_pvs(self):
        monitor_mode = SubscriptionMode.Monitor(delta=0.01)
        scan_mode = SubscriptionMode.Scan(period=1)
        now_ts = time.time() * 1e6
        num_pvs = len(self.pvs)
        half = num_pvs // 2

        monitored_pvs = self.pvs[:half]
        scanned_pvs = self.pvs[half:]
        futures = [ controller.subscribe(pv, monitor_mode) for pv in monitored_pvs ]
        futures += [ controller.subscribe(pv, scan_mode) for pv in scanned_pvs ]

        [ fut.wait() for fut in futures ] 
            
        time.sleep(5)
    
        pvs_dict = dict(controller.list_archived())

        for pv in self.pvs:
            self.assertIn(pv, pvs_dict)
            self.assertEqual( pvs_dict[pv].name, pv )

            if pv in monitored_pvs:
                self.assertEqual( pvs_dict[pv].mode.mode, monitor_mode.name )
            if pv in scanned_pvs:
                self.assertEqual( pvs_dict[pv].mode.mode,scan_mode.name )
            
            self.assertAlmostEqual(now_ts, pvs_dict[pv].since, delta=10e6)

        scanpvs = dict(controller.list_by_mode(scan_mode.name))
        for pv in scanpvs:
            self.assertEqual( scanpvs[pv].mode.mode, scan_mode.name) 

        monitorpvs = dict(controller.list_by_mode(monitor_mode.name))
        for pv in monitorpvs:
            self.assertEqual( monitorpvs[pv].mode.mode, monitor_mode.name)