##// END OF EJS Templates
26/03/2018
26/03/2018

File last commit:

r885:47a9233afe94
r1153:ea60e85af34e
Show More
zerorpc_client.py
132 lines | 3.4 KiB | text/x-python | PythonLexer
#!/usr/bin/env python
'''
Created on Jul 11, 2014
@author: roj-idl71
'''
import time
from gevent import sleep
import os, sys
path = os.path.dirname(os.getcwd())
path = os.path.join(path, 'source')
sys.path.insert(0, path)
import zerorpc
from schainpy.model import *
from schainpy.model.serializer.data 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)
def printSpeed(deltaTime, mySerial):
####################
size = len(mySerial)/1024.
vel = 1.0*size / deltaTime
print "Index [", replayerObj.getProfileIndex(), "]: ",
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)