##// END OF EJS Templates
pruebas jrovoltage
José Chávez -
r963:4617926e8b88
parent child
Show More
@@ -217,7 +217,6 class ParameterConf():
217 self.id = str(new_id)
217 self.id = str(new_id)
218
218
219 def setup(self, id, name, value, format='str'):
219 def setup(self, id, name, value, format='str'):
220
221 self.id = str(id)
220 self.id = str(id)
222 self.name = name
221 self.name = name
223 if format == 'obj':
222 if format == 'obj':
@@ -757,7 +756,8 class ReadUnitConf(ProcUnitConf):
757
756
758 return self.ELEMENTNAME
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 #Compatible with old signal chain version
762 #Compatible with old signal chain version
763 if datatype==None and name==None:
763 if datatype==None and name==None:
@@ -768,14 +768,13 class ReadUnitConf(ProcUnitConf):
768 name = datatype
768 name = datatype
769 else:
769 else:
770 name = '%sReader' %(datatype)
770 name = '%sReader' %(datatype)
771
772 if datatype==None:
771 if datatype==None:
773 datatype = name.replace('Reader','')
772 datatype = name.replace('Reader','')
774
773
775 self.id = id
774 self.id = id
776 self.name = name
775 self.name = name
777 self.datatype = datatype
776 self.datatype = datatype
778
777 if path != '':
779 self.path = os.path.abspath(path)
778 self.path = os.path.abspath(path)
780 self.startDate = startDate
779 self.startDate = startDate
781 self.endDate = endDate
780 self.endDate = endDate
@@ -785,6 +784,7 class ReadUnitConf(ProcUnitConf):
785 self.inputId = '0'
784 self.inputId = '0'
786 self.parentId = parentId
785 self.parentId = parentId
787 self.queue = queue
786 self.queue = queue
787 self.server = server
788 self.addRunOperation(**kwargs)
788 self.addRunOperation(**kwargs)
789
789
790 def update(self, datatype, path, startDate, endDate, startTime, endTime, parentId=None, name=None, **kwargs):
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 opObj = self.addOperation(name = 'run', optype = 'self')
827 opObj = self.addOperation(name = 'run', optype = 'self')
828
828
829 if self.server is None:
829 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
830 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
830 opObj.addParameter(name='path' , value=self.path, format='str')
831 opObj.addParameter(name='path' , value=self.path, format='str')
831 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
832 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
@@ -833,9 +834,11 class ReadUnitConf(ProcUnitConf):
833 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
834 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
834 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
835 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
835 opObj.addParameter(name='queue' , value=self.queue, format='obj')
836 opObj.addParameter(name='queue' , value=self.queue, format='obj')
836
837 for key, value in kwargs.items():
837 for key, value in kwargs.items():
838 opObj.addParameter(name=key, value=value, format=type(value).__name__)
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 return opObj
843 return opObj
841
844
@@ -115,7 +115,6 class BasicHeader(Header):
115 dstFlag = None
115 dstFlag = None
116 errorCount = None
116 errorCount = None
117 datatime = None
117 datatime = None
118
119 __LOCALTIME = None
118 __LOCALTIME = None
120
119
121 def __init__(self, useLocalTime=True):
120 def __init__(self, useLocalTime=True):
@@ -134,8 +133,12 class BasicHeader(Header):
134 def read(self, fp):
133 def read(self, fp):
135
134
136 try:
135 try:
136 if hasattr(fp, 'read'):
137 print 'fromfile'
137 header = numpy.fromfile(fp, BASIC_STRUCTURE,1)
138 header = numpy.fromfile(fp, BASIC_STRUCTURE,1)
138
139 else:
140 print 'fromstring'
141 header = numpy.fromstring(fp, BASIC_STRUCTURE,1)
139 except Exception, e:
142 except Exception, e:
140 print "BasicHeader: "
143 print "BasicHeader: "
141 print e
144 print e
@@ -12,6 +12,7 import fnmatch
12 import inspect
12 import inspect
13 import time, datetime
13 import time, datetime
14 import traceback
14 import traceback
15 import zmq
15
16
16 try:
17 try:
17 from gevent import sleep
18 from gevent import sleep
@@ -993,12 +994,13 class JRODataReader(JRODataIO):
993 self.__isFirstTimeOnline = 0
994 self.__isFirstTimeOnline = 0
994
995
995 def __setNewBlock(self):
996 def __setNewBlock(self):
996
997 if self.server is None:
997 if self.fp == None:
998 if self.fp == None:
998 return 0
999 return 0
999
1000
1000 # if self.online:
1001 # if self.online:
1001 # self.__jumpToLastBlock()
1002 # self.__jumpToLastBlock()
1003 print 'xxxx'
1002
1004
1003 if self.flagIsNewFile:
1005 if self.flagIsNewFile:
1004 self.lastUTTime = self.basicHeaderObj.utc
1006 self.lastUTTime = self.basicHeaderObj.utc
@@ -1010,19 +1012,22 class JRODataReader(JRODataIO):
1010 return 0
1012 return 0
1011 else:
1013 else:
1012 return 1
1014 return 1
1013
1015 print 'xxxx'
1016 if self.server is None:
1014 currentSize = self.fileSize - self.fp.tell()
1017 currentSize = self.fileSize - self.fp.tell()
1015 neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize
1018 neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize
1016
1017 if (currentSize >= neededSize):
1019 if (currentSize >= neededSize):
1018 self.basicHeaderObj.read(self.fp)
1020 self.basicHeaderObj.read(self.fp)
1019 self.lastUTTime = self.basicHeaderObj.utc
1021 self.lastUTTime = self.basicHeaderObj.utc
1020 return 1
1022 return 1
1021
1023 else:
1024 self.basicHeaderObj.read(self.zHeader)
1025 self.lastUTTime = self.basicHeaderObj.utc
1026 return 1
1022 if self.__waitNewBlock():
1027 if self.__waitNewBlock():
1023 self.lastUTTime = self.basicHeaderObj.utc
1028 self.lastUTTime = self.basicHeaderObj.utc
1024 return 1
1029 return 1
1025
1030 if self.server is None:
1026 if not(self.setNextFile()):
1031 if not(self.setNextFile()):
1027 return 0
1032 return 0
1028
1033
@@ -1040,9 +1045,11 class JRODataReader(JRODataIO):
1040
1045
1041 #Skip block out of startTime and endTime
1046 #Skip block out of startTime and endTime
1042 while True:
1047 while True:
1048 print 'cxxxx'
1043 if not(self.__setNewBlock()):
1049 if not(self.__setNewBlock()):
1050 print 'returning'
1044 return 0
1051 return 0
1045
1052 print 'dxxx'
1046 if not(self.readBlock()):
1053 if not(self.readBlock()):
1047 return 0
1054 return 0
1048
1055
@@ -1275,20 +1282,19 class JRODataReader(JRODataIO):
1275 warnings=True,
1282 warnings=True,
1276 verbose=True,
1283 verbose=True,
1277 server=None):
1284 server=None):
1278
1279 if server is not None:
1285 if server is not None:
1280 server = kwargs.get('server', 'zmq.pipe')
1281 if 'tcp://' in server:
1286 if 'tcp://' in server:
1282 address = server
1287 address = server
1283 else:
1288 else:
1284 address = 'ipc:///tmp/%s' % server
1289 address = 'ipc:///tmp/%s' % server
1285 self.address = address
1290 self.server = address
1286 self.context = zmq.Context()
1291 self.context = zmq.Context()
1287 self.receiver = self.context.socket(zmq.PULL)
1292 self.receiver = self.context.socket(zmq.PULL)
1288 self.receiver.bind(self.address)
1293 self.receiver.bind(self.server)
1289 time.sleep(0.5)
1294 time.sleep(0.5)
1290 print '[Starting] ReceiverData from {}'.format(self.address)
1295 print '[Starting] ReceiverData from {}'.format(self.server)
1291 else:
1296 else:
1297 self.server = None
1292 if path == None:
1298 if path == None:
1293 raise ValueError, "[Reading] The path is not valid"
1299 raise ValueError, "[Reading] The path is not valid"
1294
1300
@@ -1494,13 +1500,11 class JRODataReader(JRODataIO):
1494 skip=skip,
1500 skip=skip,
1495 cursor=cursor,
1501 cursor=cursor,
1496 warnings=warnings,
1502 warnings=warnings,
1497 server=None,
1503 server=server,
1498 verbose=verbose)
1504 verbose=verbose)
1499 self.isConfig = True
1505 self.isConfig = True
1500 if self.server is None:
1506 print 'hola'
1501 self.getData()
1507 self.getData()
1502 else:
1503 self.getFromZMQ()
1504
1508
1505 class JRODataWriter(JRODataIO):
1509 class JRODataWriter(JRODataIO):
1506
1510
@@ -190,6 +190,7 class VoltageReader(JRODataReader, ProcessingUnit):
190 self.blocksize = pts2read
190 self.blocksize = pts2read
191
191
192
192
193
193 def readBlock(self):
194 def readBlock(self):
194 """
195 """
195 readBlock lee el bloque de datos desde la posicion actual del puntero del archivo
196 readBlock lee el bloque de datos desde la posicion actual del puntero del archivo
@@ -213,11 +214,23 class VoltageReader(JRODataReader, ProcessingUnit):
213 Exceptions:
214 Exceptions:
214 Si un bloque leido no es un bloque valido
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 current_pointer_location = self.fp.tell()
228 current_pointer_location = self.fp.tell()
217 junk = numpy.fromfile( self.fp, self.dtype, self.blocksize )
229 junk = numpy.fromfile( self.fp, self.dtype, self.blocksize )
218
230
219 try:
231 try:
220 junk = junk.reshape( (self.processingHeaderObj.profilesPerBlock, self.processingHeaderObj.nHeights, self.systemHeaderObj.nChannels) )
232 junk = junk.reshape( (self.processingHeaderObj.profilesPerBlock, self.processingHeaderObj.nHeights, self.systemHeaderObj.nChannels) )
233 print'junked'
221 except:
234 except:
222 #print "The read block (%3d) has not enough data" %self.nReadBlocks
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 return
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 def getData(self):
318 def getData(self):
312 """
319 """
313 getData obtiene una unidad de datos del buffer de lectura, un perfil, y la copia al objeto self.dataOut
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 self.flagDiscontinuousBlock
351 self.flagDiscontinuousBlock
345 self.flagIsNewBlock
352 self.flagIsNewBlock
346 """
353 """
347
354 print 1
348 if self.flagNoMoreFiles:
355 if self.flagNoMoreFiles:
349 self.dataOut.flagNoData = True
356 self.dataOut.flagNoData = True
350 print 'Process finished'
357 print 'Process finished'
351 return 0
358 return 0
352
359 print 2
353 self.flagDiscontinuousBlock = 0
360 self.flagDiscontinuousBlock = 0
354 self.flagIsNewBlock = 0
361 self.flagIsNewBlock = 0
355
362 print 3
356 if self.__hasNotDataInBuffer():
363 if self.__hasNotDataInBuffer():
357
364
358 if not( self.readNextBlock() ):
365 if not( self.readNextBlock() ):
@@ -361,7 +368,7 class VoltageReader(JRODataReader, ProcessingUnit):
361 self.getFirstHeader()
368 self.getFirstHeader()
362
369
363 self.reshapeData()
370 self.reshapeData()
364
371 print 4
365 if self.datablock is None:
372 if self.datablock is None:
366 self.dataOut.flagNoData = True
373 self.dataOut.flagNoData = True
367 return 0
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