''' Created on Jul 11, 2014 @author: roj-idl71 ''' import time from gevent import sleep import zerorpc from schainpy.model import * from schainpy.serializer.DataTranslate import serial2Obj, serial2Dict # import schainpy.model.io.jroIO_usrp def createObjVolt(): ''' This function creates a processing object "VoltProc" with some operations. such as: "CohInt", "Scope", etc These class are found inside schainpy.model.proc and schainpy.model.graphics ''' procObj = VoltageProc() opObj = CohInt() procObj.addOperation(opObj, 1) opObj = Scope() procObj.addOperation(opObj, 2) return procObj def createObjSpec(): ''' This function creates a processing object "SpecProc" with some operation objects such as: "IncohInt", "SpectraPlot", "RTIPlot", etc These class are found inside schainpy.model.proc and schainpy.model.graphics ''' procObj = SpectraProc() opObj = IncohInt() procObj.addOperation(opObj, objId = 1) opObj = SpectraPlot() procObj.addOperation(opObj, objId = 2) opObj = RTIPlot() procObj.addOperation(opObj, objId = 3) opObj = SpectraPlot() procObj.addOperation(opObj, objId = 4) opObj = RTIPlot() procObj.addOperation(opObj, objId = 5) return procObj def processingSpec(procObj, dataInObj): procObj.setInput(dataInObj) procObj.run(nFFTPoints = 16) procObj.call(opType = "external", opId = 1, n=1) procObj.call(opType = "external", opId = 2, id=191, zmin=-100, zmax=-40) procObj.call(opType = "external", opId = 3, id=192, zmin=-100, zmax=-40, timerange=10*60) # procObj.call(opType = "self", # opName = "selectChannels", # channelList = [0,1]) # # procObj.call(opType = "self", # opName = "selectHeights", # minHei = 300, # maxHei = 400) # # procObj.call(opType = "external", # opId = 4, # id=193, # zmin=-100, # zmax=-40) # # procObj.call(opType = "external", # opId = 5, # id=194, # zmin=-100, # zmax=-40, # timerange=10*60) def printSpeed(deltaTime, mySerial): #################### size = len(mySerial)/1024. vel = 1.0*size / deltaTime print("Index [", replayerObj.getProfileIndex(), "]: ", end=' ') print("Total time %5.2f ms, Data size %5.2f KB, Speed %5.2f MB/s" %(deltaTime, size, vel)) #################### if __name__ == '__main__': procObj = createObjSpec() replayerObj = zerorpc.Client() replayerObj.connect("tcp://127.0.0.1:4242") serializer = replayerObj.getSerializer() ini = time.time() mySerialMetadata = replayerObj.getSerialMetaData() deltaTime = (time.time() - ini)*1024 printSpeed(deltaTime, mySerialMetadata) myMetaDict = serial2Dict(mySerialMetadata, serializer = serializer) # print myMetaDict while True: ini = time.time() mySerialData = replayerObj.getSerialData() deltaTime = (time.time() - ini)*1024 if not mySerialData: print("No more data") break # myDataDict = SERIALIZER.loads(mySerialData) # print myDataDict # continue printSpeed(deltaTime, mySerialData) dataInObj = serial2Obj(mySerialData, metadataDict=myMetaDict, serializer = serializer) processingSpec(procObj, dataInObj) sleep(1e-1)