##// END OF EJS Templates
pruebas jrovoltage
José Chávez -
r963:4617926e8b88
parent child
Show More
@@ -217,7 +217,6 class ParameterConf():
217 217 self.id = str(new_id)
218 218
219 219 def setup(self, id, name, value, format='str'):
220
221 220 self.id = str(id)
222 221 self.name = name
223 222 if format == 'obj':
@@ -757,7 +756,8 class ReadUnitConf(ProcUnitConf):
757 756
758 757 return self.ELEMENTNAME
759 758
760 def setup(self, id, name, datatype, path, startDate="", endDate="", startTime="", endTime="", parentId=None, queue=None, **kwargs):
759 def setup(self, id, name, datatype, path='', startDate="", endDate="", startTime="",
760 endTime="", parentId=None, queue=None, server=None, **kwargs):
761 761
762 762 #Compatible with old signal chain version
763 763 if datatype==None and name==None:
@@ -768,14 +768,13 class ReadUnitConf(ProcUnitConf):
768 768 name = datatype
769 769 else:
770 770 name = '%sReader' %(datatype)
771
772 771 if datatype==None:
773 772 datatype = name.replace('Reader','')
774 773
775 774 self.id = id
776 775 self.name = name
777 776 self.datatype = datatype
778
777 if path != '':
779 778 self.path = os.path.abspath(path)
780 779 self.startDate = startDate
781 780 self.endDate = endDate
@@ -785,6 +784,7 class ReadUnitConf(ProcUnitConf):
785 784 self.inputId = '0'
786 785 self.parentId = parentId
787 786 self.queue = queue
787 self.server = server
788 788 self.addRunOperation(**kwargs)
789 789
790 790 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, name=None, **kwargs):
@@ -826,6 +826,7 class ReadUnitConf(ProcUnitConf):
826 826
827 827 opObj = self.addOperation(name = 'run', optype = 'self')
828 828
829 if self.server is None:
829 830 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
830 831 opObj.addParameter(name='path' , value=self.path, format='str')
831 832 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
@@ -833,9 +834,11 class ReadUnitConf(ProcUnitConf):
833 834 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
834 835 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
835 836 opObj.addParameter(name='queue' , value=self.queue, format='obj')
836
837 837 for key, value in kwargs.items():
838 838 opObj.addParameter(name=key, value=value, format=type(value).__name__)
839 else:
840 opObj.addParameter(name='server' , value=self.server, format='str')
841
839 842
840 843 return opObj
841 844
@@ -115,7 +115,6 class BasicHeader(Header):
115 115 dstFlag = None
116 116 errorCount = None
117 117 datatime = None
118
119 118 __LOCALTIME = None
120 119
121 120 def __init__(self, useLocalTime=True):
@@ -134,8 +133,12 class BasicHeader(Header):
134 133 def read(self, fp):
135 134
136 135 try:
136 if hasattr(fp, 'read'):
137 print 'fromfile'
137 138 header = numpy.fromfile(fp, BASIC_STRUCTURE,1)
138
139 else:
140 print 'fromstring'
141 header = numpy.fromstring(fp, BASIC_STRUCTURE,1)
139 142 except Exception, e:
140 143 print "BasicHeader: "
141 144 print e
@@ -12,6 +12,7 import fnmatch
12 12 import inspect
13 13 import time, datetime
14 14 import traceback
15 import zmq
15 16
16 17 try:
17 18 from gevent import sleep
@@ -993,12 +994,13 class JRODataReader(JRODataIO):
993 994 self.__isFirstTimeOnline = 0
994 995
995 996 def __setNewBlock(self):
996
997 if self.server is None:
997 998 if self.fp == None:
998 999 return 0
999 1000
1000 1001 # if self.online:
1001 1002 # self.__jumpToLastBlock()
1003 print 'xxxx'
1002 1004
1003 1005 if self.flagIsNewFile:
1004 1006 self.lastUTTime = self.basicHeaderObj.utc
@@ -1010,19 +1012,22 class JRODataReader(JRODataIO):
1010 1012 return 0
1011 1013 else:
1012 1014 return 1
1013
1015 print 'xxxx'
1016 if self.server is None:
1014 1017 currentSize = self.fileSize - self.fp.tell()
1015 1018 neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize
1016
1017 1019 if (currentSize >= neededSize):
1018 1020 self.basicHeaderObj.read(self.fp)
1019 1021 self.lastUTTime = self.basicHeaderObj.utc
1020 1022 return 1
1021
1023 else:
1024 self.basicHeaderObj.read(self.zHeader)
1025 self.lastUTTime = self.basicHeaderObj.utc
1026 return 1
1022 1027 if self.__waitNewBlock():
1023 1028 self.lastUTTime = self.basicHeaderObj.utc
1024 1029 return 1
1025
1030 if self.server is None:
1026 1031 if not(self.setNextFile()):
1027 1032 return 0
1028 1033
@@ -1040,9 +1045,11 class JRODataReader(JRODataIO):
1040 1045
1041 1046 #Skip block out of startTime and endTime
1042 1047 while True:
1048 print 'cxxxx'
1043 1049 if not(self.__setNewBlock()):
1050 print 'returning'
1044 1051 return 0
1045
1052 print 'dxxx'
1046 1053 if not(self.readBlock()):
1047 1054 return 0
1048 1055
@@ -1275,20 +1282,19 class JRODataReader(JRODataIO):
1275 1282 warnings=True,
1276 1283 verbose=True,
1277 1284 server=None):
1278
1279 1285 if server is not None:
1280 server = kwargs.get('server', 'zmq.pipe')
1281 1286 if 'tcp://' in server:
1282 1287 address = server
1283 1288 else:
1284 1289 address = 'ipc:///tmp/%s' % server
1285 self.address = address
1290 self.server = address
1286 1291 self.context = zmq.Context()
1287 1292 self.receiver = self.context.socket(zmq.PULL)
1288 self.receiver.bind(self.address)
1293 self.receiver.bind(self.server)
1289 1294 time.sleep(0.5)
1290 print '[Starting] ReceiverData from {}'.format(self.address)
1295 print '[Starting] ReceiverData from {}'.format(self.server)
1291 1296 else:
1297 self.server = None
1292 1298 if path == None:
1293 1299 raise ValueError, "[Reading] The path is not valid"
1294 1300
@@ -1494,13 +1500,11 class JRODataReader(JRODataIO):
1494 1500 skip=skip,
1495 1501 cursor=cursor,
1496 1502 warnings=warnings,
1497 server=None,
1503 server=server,
1498 1504 verbose=verbose)
1499 1505 self.isConfig = True
1500 if self.server is None:
1506 print 'hola'
1501 1507 self.getData()
1502 else:
1503 self.getFromZMQ()
1504 1508
1505 1509 class JRODataWriter(JRODataIO):
1506 1510
@@ -190,6 +190,7 class VoltageReader(JRODataReader, ProcessingUnit):
190 190 self.blocksize = pts2read
191 191
192 192
193
193 194 def readBlock(self):
194 195 """
195 196 readBlock lee el bloque de datos desde la posicion actual del puntero del archivo
@@ -213,11 +214,23 class VoltageReader(JRODataReader, ProcessingUnit):
213 214 Exceptions:
214 215 Si un bloque leido no es un bloque valido
215 216 """
217
218 print 'READ BLOCK'
219 if self.server is not None:
220 self.zBlock = self.receiver.recv()
221 self.zHeader = self.zBlock[:24]
222 self.zDataBlock = self.zBlock[24:]
223 junk = numpy.fromstring(self.zDataBlock, numpy.dtype([('real','<i4'),('imag','<i4')]))
224 self.processingHeaderObj.profilesPerBlock = 240
225 self.processingHeaderObj.nHeights = 248
226 self.systemHeaderObj.nChannels
227 else:
216 228 current_pointer_location = self.fp.tell()
217 229 junk = numpy.fromfile( self.fp, self.dtype, self.blocksize )
218 230
219 231 try:
220 232 junk = junk.reshape( (self.processingHeaderObj.profilesPerBlock, self.processingHeaderObj.nHeights, self.systemHeaderObj.nChannels) )
233 print'junked'
221 234 except:
222 235 #print "The read block (%3d) has not enough data" %self.nReadBlocks
223 236
@@ -302,12 +315,6 class VoltageReader(JRODataReader, ProcessingUnit):
302 315
303 316 return
304 317
305
306 def getFromZMQ(self):
307 self.dataOut = self.receiver.recv_pyobj()
308 print '[Receiving] {} - {}'.format(self.dataOut.type,
309 self.dataOut.datatime.ctime())
310
311 318 def getData(self):
312 319 """
313 320 getData obtiene una unidad de datos del buffer de lectura, un perfil, y la copia al objeto self.dataOut
@@ -344,15 +351,15 class VoltageReader(JRODataReader, ProcessingUnit):
344 351 self.flagDiscontinuousBlock
345 352 self.flagIsNewBlock
346 353 """
347
354 print 1
348 355 if self.flagNoMoreFiles:
349 356 self.dataOut.flagNoData = True
350 357 print 'Process finished'
351 358 return 0
352
359 print 2
353 360 self.flagDiscontinuousBlock = 0
354 361 self.flagIsNewBlock = 0
355
362 print 3
356 363 if self.__hasNotDataInBuffer():
357 364
358 365 if not( self.readNextBlock() ):
@@ -361,7 +368,7 class VoltageReader(JRODataReader, ProcessingUnit):
361 368 self.getFirstHeader()
362 369
363 370 self.reshapeData()
364
371 print 4
365 372 if self.datablock is None:
366 373 self.dataOut.flagNoData = True
367 374 return 0
@@ -1,1 +1,1
1 <Project description="HF_EXAMPLE" id="191" name="test01"><ReadUnit datatype="Spectra" id="1911" inputId="0" name="SpectraReader"><Operation id="19111" name="run" priority="1" type="self"><Parameter format="str" id="191111" name="datatype" value="SpectraReader" /><Parameter format="str" id="191112" name="path" value="/home/nanosat/data/sp1_f0" /><Parameter format="date" id="191113" name="startDate" value="2017/01/28" /><Parameter format="date" id="191114" name="endDate" value="2017/01/28" /><Parameter format="time" id="191115" name="startTime" value="00:00:00" /><Parameter format="time" id="191116" name="endTime" value="23:59:59" /><Parameter format="int" id="191118" name="cursor" value="5" /><Parameter format="int" id="191119" name="skip" value="177" /><Parameter format="int" id="191120" name="walk" value="1" /><Parameter format="int" id="191121" name="verbose" value="1" /><Parameter format="int" id="191122" name="online" value="0" /></Operation></ReadUnit><ProcUnit datatype="Parameters" id="1913" inputId="1911" name="ParametersProc"><Operation id="19131" name="run" priority="1" type="self" /><Operation id="19132" name="SpectralMoments" priority="2" type="other" /><Operation id="19133" name="PublishData" priority="3" type="other"><Parameter format="int" id="191331" name="zeromq" value="1" /><Parameter format="bool" id="191332" name="verbose" value="0" /><Parameter format="int" id="191333" name="delay" value="0" /></Operation></ProcUnit><ProcUnit datatype="Spectra" id="1912" inputId="1911" name="SpectraProc"><Operation id="19121" name="run" priority="1" type="self" /></ProcUnit></Project>
1 <Project description="test" id="191" name="john"><ReadUnit datatype="VoltageReader" id="1911" inputId="0" name="VoltageReader"><Operation id="19111" name="run" priority="1" type="self"><Parameter format="str" id="191111" name="server" value="john" /></Operation></ReadUnit><ProcUnit datatype="SpectraProc" id="1912" inputId="1911" name="SpectraProc"><Operation id="19121" name="run" priority="1" type="self"><Parameter format="int" id="191211" name="nFFTPoints" value="64" /></Operation><Operation id="19122" name="SpectraPlot" priority="2" type="other"><Parameter format="int" id="191221" name="id" value="500" /><Parameter format="str" id="191222" name="wintitle" value="Jicamarca Radio Observatory" /><Parameter format="int" id="191223" name="showprofile" value="0" /></Operation></ProcUnit></Project> No newline at end of file
General Comments 0
You need to be logged in to leave comments. Login now