コード例 #1
0
        self.startTime = None

    def updateServer(self, x):
        t = time.time()
        self.server.update(x)
        self.received += 1
        id = x['ArrayId']
        if not self.prevId:
            self.startTime = t
        if self.prevId:
            missed = id - self.prevId - 1
            self.missed += missed
            dt = t - self.prevTime
            currentRate = 1.0/dt
            if self.received % 1000 ==0:
                deltaT = t - self.startTime
                averageArrayRate = self.received/deltaT
                print('Runtime: %.3f [s], Received Arrays: %s, Missed Arrays: %s, Missed Arrays Since Last: %s, Current Array Rate: %.3f [Hz], Average Array Rate: %.3f [Hz]' % (deltaT, self.received, self.missed, missed, currentRate, averageArrayRate))
        self.prevId = id
        self.prevTime = t

c = Channel('server1_data')
pv = c.get('')
s = PvaServer('server2_data', pv)
updater = ServerUpdater(s)
c.monitor(updater.updateServer, '')

time.sleep(100) 


コード例 #2
0
    print 'disconn'
    epics_queue_toroach.put({'disconn': x.getInt()})


def roachsetscallback(rsets):
    print 'settings'
    #print type(rsets)
    #print rsets.toDict()
    epics_queue_toroach.put({'settings': rsets.toDict()})


makeQueues()
startPvaServer()

roachsetsmon = Channel('DP:roach1:settings')
roachsetsmon.monitor(roachsetscallback, '')

c2 = Channel('DP:roach1:sweep')
c2.monitor(roach_sweep_callback, '')

c3 = Channel('DP:roach1:disconnect')
c3.monitor(roach_disconn_callback, '')

c4 = Channel('DP:roach1:connect')
c4.monitor(roach_conn_callback, '')

xxx = """
do this:

for k in range(10):  print epics_queue_toroach.get()
コード例 #3
0
        if self.nReceived % 100000 == 0:
            print(self.toString())


if __name__ == '__main__':
    runtime = 60
    if len(sys.argv) > 1:
        runtime = float(sys.argv[1])

    channelName = 'counter'
    c = Channel(channelName)
    #print('CONNECT TO %s:\n%s\n' % (channelName, c.get()))
    m = ClientMonitor(channelName)

    t0 = time.time()
    print('STARTING MONITOR for %s at %s\n' % (channelName, t0))
    #c.monitor(m.monitor)
    c.monitor(m.monitor, 'field(c)')
    time.sleep(runtime)
    c.stopMonitor()
    t1 = time.time()
    deltaT = t1 - t0
    print('STOP MONITOR at %s\n' % t1)

    print('FINAL STATS:')
    print(m.toString())
    print('')
    print('RUNTIME: %.2f [s]' % (deltaT))
    print('\nDONE')
コード例 #4
0
def roach_disconn_callback(x):
    print 'disconn'
    epics_queue_toroach.put({'disconn':x.getInt()})

def roachsetscallback(rsets):
    print 'settings' 
    #print type(rsets)
    #print rsets.toDict()
    epics_queue_toroach.put({'settings':rsets.toDict()})

makeQueues()
startPvaServer()

roachsetsmon = Channel('DP:roach1:settings')
roachsetsmon.monitor(roachsetscallback,'')

c2= Channel('DP:roach1:sweep')
c2.monitor(roach_sweep_callback,'')

c3= Channel('DP:roach1:disconnect')
c3.monitor(roach_disconn_callback,'')

c4= Channel('DP:roach1:connect')
c4.monitor(roach_conn_callback,'')



xxx="""
do this: