MyClient01.py
146 lines
| 3.8 KiB
| text/x-python
|
PythonLexer
|
r568 | ''' | |
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 | |||
|
r1167 | print("Index [", replayerObj.getProfileIndex(), "]: ", end=' ') | |
print("Total time %5.2f ms, Data size %5.2f KB, Speed %5.2f MB/s" %(deltaTime, size, vel)) | |||
|
r568 | #################### | |
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: | |||
|
r1167 | print("No more data") | |
|
r568 | break | |
# myDataDict = SERIALIZER.loads(mySerialData) | |||
# print myDataDict | |||
# continue | |||
printSpeed(deltaTime, mySerialData) | |||
dataInObj = serial2Obj(mySerialData, | |||
metadataDict=myMetaDict, | |||
serializer = serializer) | |||
processingSpec(procObj, dataInObj) | |||
sleep(1e-1) |