##// 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,26 +756,26 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:
764 764 raise ValueError, "datatype or name should be defined"
765
765
766 766 if name==None:
767 767 if 'Reader' in datatype:
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
779 self.path = os.path.abspath(path)
777 if path != '':
778 self.path = os.path.abspath(path)
780 779 self.startDate = startDate
781 780 self.endDate = endDate
782 781 self.startTime = startTime
@@ -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,16 +826,19 class ReadUnitConf(ProcUnitConf):
826 826
827 827 opObj = self.addOperation(name = 'run', optype = 'self')
828 828
829 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
830 opObj.addParameter(name='path' , value=self.path, format='str')
831 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
832 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
833 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
834 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
835 opObj.addParameter(name='queue' , value=self.queue, format='obj')
836
837 for key, value in kwargs.items():
838 opObj.addParameter(name=key, value=value, format=type(value).__name__)
829 if self.server is None:
830 opObj.addParameter(name='datatype' , value=self.datatype, format='str')
831 opObj.addParameter(name='path' , value=self.path, format='str')
832 opObj.addParameter(name='startDate' , value=self.startDate, format='date')
833 opObj.addParameter(name='endDate' , value=self.endDate, format='date')
834 opObj.addParameter(name='startTime' , value=self.startTime, format='time')
835 opObj.addParameter(name='endTime' , value=self.endTime, format='time')
836 opObj.addParameter(name='queue' , value=self.queue, format='obj')
837 for key, value in kwargs.items():
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:
137 header = numpy.fromfile(fp, BASIC_STRUCTURE,1)
138
136 if hasattr(fp, 'read'):
137 print 'fromfile'
138 header = numpy.fromfile(fp, BASIC_STRUCTURE,1)
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.fp == None:
998 return 0
997 if self.server is None:
998 if self.fp == None:
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,21 +1012,24 class JRODataReader(JRODataIO):
1010 1012 return 0
1011 1013 else:
1012 1014 return 1
1013
1014 currentSize = self.fileSize - self.fp.tell()
1015 neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize
1016
1017 if (currentSize >= neededSize):
1018 self.basicHeaderObj.read(self.fp)
1015 print 'xxxx'
1016 if self.server is None:
1017 currentSize = self.fileSize - self.fp.tell()
1018 neededSize = self.processingHeaderObj.blockSize + self.basicHeaderSize
1019 if (currentSize >= neededSize):
1020 self.basicHeaderObj.read(self.fp)
1021 self.lastUTTime = self.basicHeaderObj.utc
1022 return 1
1023 else:
1024 self.basicHeaderObj.read(self.zHeader)
1019 1025 self.lastUTTime = self.basicHeaderObj.utc
1020 1026 return 1
1021
1022 1027 if self.__waitNewBlock():
1023 1028 self.lastUTTime = self.basicHeaderObj.utc
1024 1029 return 1
1025
1026 if not(self.setNextFile()):
1027 return 0
1030 if self.server is None:
1031 if not(self.setNextFile()):
1032 return 0
1028 1033
1029 1034 deltaTime = self.basicHeaderObj.utc - self.lastUTTime #
1030 1035 self.lastUTTime = self.basicHeaderObj.utc
@@ -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)
1291 else:
1295 print '[Starting] ReceiverData from {}'.format(self.server)
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:
1501 self.getData()
1502 else:
1503 self.getFromZMQ()
1506 print 'hola'
1507 self.getData()
1504 1508
1505 1509 class JRODataWriter(JRODataIO):
1506 1510
@@ -189,6 +189,7 class VoltageReader(JRODataReader, ProcessingUnit):
189 189 pts2read = self.processingHeaderObj.profilesPerBlock * self.processingHeaderObj.nHeights * self.systemHeaderObj.nChannels
190 190 self.blocksize = pts2read
191 191
192
192 193
193 194 def readBlock(self):
194 195 """
@@ -213,11 +214,23 class VoltageReader(JRODataReader, ProcessingUnit):
213 214 Exceptions:
214 215 Si un bloque leido no es un bloque valido
215 216 """
216 current_pointer_location = self.fp.tell()
217 junk = numpy.fromfile( self.fp, self.dtype, self.blocksize )
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:
228 current_pointer_location = self.fp.tell()
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