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)
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()
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')
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: