diff --git a/schain.xml b/schain.xml
index b67ac71..a18a91f 100644
--- a/schain.xml
+++ b/schain.xml
@@ -1 +1 @@
-
\ No newline at end of file
+
\ No newline at end of file
diff --git a/schainpy/model/io/jroIO_base.py b/schainpy/model/io/jroIO_base.py
index 30a6f83..77d08a0 100644
--- a/schainpy/model/io/jroIO_base.py
+++ b/schainpy/model/io/jroIO_base.py
@@ -11,7 +11,6 @@ import numpy
import fnmatch
import inspect
import time, datetime
-#import h5py
import traceback
try:
@@ -1274,99 +1273,112 @@ class JRODataReader(JRODataIO):
skip=None,
cursor=None,
warnings=True,
- verbose=True):
-
- if path == None:
- raise ValueError, "[Reading] The path is not valid"
-
- if ext == None:
- ext = self.ext
-
- if online:
- print "[Reading] Searching files in online mode..."
-
- for nTries in range( self.nTries ):
- fullpath, foldercounter, file, year, doy, set = self.__searchFilesOnLine(path=path, expLabel=expLabel, ext=ext, walk=walk, set=set)
-
- if fullpath:
- break
-
- print '[Reading] Waiting %0.2f sec for an valid file in %s: try %02d ...' % (self.delay, path, nTries+1)
- sleep( self.delay )
-
- if not(fullpath):
- print "[Reading] There 'isn't any valid file in %s" % path
- return
-
- self.year = year
- self.doy = doy
- self.set = set - 1
- self.path = path
- self.foldercounter = foldercounter
- last_set = None
+ verbose=True,
+ server=None):
+
+ if server is not None:
+ server = kwargs.get('server', 'zmq.pipe')
+ if 'tcp://' in server:
+ address = server
+ else:
+ address = 'ipc:///tmp/%s' % server
+ self.address = address
+ self.context = zmq.Context()
+ self.receiver = self.context.socket(zmq.PULL)
+ self.receiver.bind(self.address)
+ time.sleep(0.5)
+ print '[Starting] ReceiverData from {}'.format(self.address)
+ else:
+ if path == None:
+ raise ValueError, "[Reading] The path is not valid"
+
+ if ext == None:
+ ext = self.ext
+
+ if online:
+ print "[Reading] Searching files in online mode..."
+
+ for nTries in range( self.nTries ):
+ fullpath, foldercounter, file, year, doy, set = self.__searchFilesOnLine(path=path, expLabel=expLabel, ext=ext, walk=walk, set=set)
+
+ if fullpath:
+ break
+
+ print '[Reading] Waiting %0.2f sec for an valid file in %s: try %02d ...' % (self.delay, path, nTries+1)
+ sleep( self.delay )
+
+ if not(fullpath):
+ print "[Reading] There 'isn't any valid file in %s" % path
+ return
+
+ self.year = year
+ self.doy = doy
+ self.set = set - 1
+ self.path = path
+ self.foldercounter = foldercounter
+ last_set = None
+ else:
+ print "[Reading] Searching files in offline mode ..."
+ pathList, filenameList = self.__searchFilesOffLine(path, startDate=startDate, endDate=endDate,
+ startTime=startTime, endTime=endTime,
+ set=set, expLabel=expLabel, ext=ext,
+ walk=walk, cursor=cursor,
+ skip=skip, queue=queue)
- else:
- print "[Reading] Searching files in offline mode ..."
- pathList, filenameList = self.__searchFilesOffLine(path, startDate=startDate, endDate=endDate,
- startTime=startTime, endTime=endTime,
- set=set, expLabel=expLabel, ext=ext,
- walk=walk, cursor=cursor,
- skip=skip, queue=queue)
+ if not(pathList):
+ # print "[Reading] No *%s files in %s (%s - %s)"%(ext, path,
+ # datetime.datetime.combine(startDate,startTime).ctime(),
+ # datetime.datetime.combine(endDate,endTime).ctime())
- if not(pathList):
-# print "[Reading] No *%s files in %s (%s - %s)"%(ext, path,
-# datetime.datetime.combine(startDate,startTime).ctime(),
-# datetime.datetime.combine(endDate,endTime).ctime())
+ # sys.exit(-1)
-# sys.exit(-1)
+ self.fileIndex = -1
+ self.pathList = []
+ self.filenameList = []
+ return
self.fileIndex = -1
- self.pathList = []
- self.filenameList = []
- return
-
- self.fileIndex = -1
- self.pathList = pathList
- self.filenameList = filenameList
- file_name = os.path.basename(filenameList[-1])
- basename, ext = os.path.splitext(file_name)
- last_set = int(basename[-3:])
-
- self.online = online
- self.realtime = realtime
- self.delay = delay
- ext = ext.lower()
- self.ext = ext
- self.getByBlock = getblock
- self.nTxs = nTxs
- self.startTime = startTime
- self.endTime = endTime
-
- #Added-----------------
- self.selBlocksize = blocksize
- self.selBlocktime = blocktime
-
- # Verbose-----------
- self.verbose = verbose
- self.warnings = warnings
+ self.pathList = pathList
+ self.filenameList = filenameList
+ file_name = os.path.basename(filenameList[-1])
+ basename, ext = os.path.splitext(file_name)
+ last_set = int(basename[-3:])
+
+ self.online = online
+ self.realtime = realtime
+ self.delay = delay
+ ext = ext.lower()
+ self.ext = ext
+ self.getByBlock = getblock
+ self.nTxs = nTxs
+ self.startTime = startTime
+ self.endTime = endTime
+
+ #Added-----------------
+ self.selBlocksize = blocksize
+ self.selBlocktime = blocktime
+
+ # Verbose-----------
+ self.verbose = verbose
+ self.warnings = warnings
- if not(self.setNextFile()):
- if (startDate!=None) and (endDate!=None):
- print "[Reading] No files in range: %s - %s" %(datetime.datetime.combine(startDate,startTime).ctime(), datetime.datetime.combine(endDate,endTime).ctime())
- elif startDate != None:
- print "[Reading] No files in range: %s" %(datetime.datetime.combine(startDate,startTime).ctime())
- else:
- print "[Reading] No files"
+ if not(self.setNextFile()):
+ if (startDate!=None) and (endDate!=None):
+ print "[Reading] No files in range: %s - %s" %(datetime.datetime.combine(startDate,startTime).ctime(), datetime.datetime.combine(endDate,endTime).ctime())
+ elif startDate != None:
+ print "[Reading] No files in range: %s" %(datetime.datetime.combine(startDate,startTime).ctime())
+ else:
+ print "[Reading] No files"
- self.fileIndex = -1
- self.pathList = []
- self.filenameList = []
- return
+ self.fileIndex = -1
+ self.pathList = []
+ self.filenameList = []
+ return
-# self.getBasicHeader()
+ # self.getBasicHeader()
- if last_set != None:
- self.dataOut.last_block = last_set * self.processingHeaderObj.dataBlocksPerFile + self.basicHeaderObj.dataBlock
+ if last_set != None:
+ self.dataOut.last_block = last_set * self.processingHeaderObj.dataBlocksPerFile + self.basicHeaderObj.dataBlock
return
def getBasicHeader(self):
@@ -1457,6 +1469,7 @@ class JRODataReader(JRODataIO):
skip=None,
cursor=None,
warnings=True,
+ server=None,
verbose=True, **kwargs):
if not(self.isConfig):
@@ -1481,10 +1494,13 @@ class JRODataReader(JRODataIO):
skip=skip,
cursor=cursor,
warnings=warnings,
+ server=None,
verbose=verbose)
self.isConfig = True
-
- self.getData()
+ if self.server is None:
+ self.getData()
+ else:
+ self.getFromZMQ()
class JRODataWriter(JRODataIO):
diff --git a/schainpy/model/io/jroIO_voltage.py b/schainpy/model/io/jroIO_voltage.py
index 1ad1910..a6fa073 100644
--- a/schainpy/model/io/jroIO_voltage.py
+++ b/schainpy/model/io/jroIO_voltage.py
@@ -10,6 +10,7 @@ from jroIO_base import LOCALTIME, JRODataReader, JRODataWriter
from schainpy.model.proc.jroproc_base import ProcessingUnit, Operation
from schainpy.model.data.jroheaderIO import PROCFLAG, BasicHeader, SystemHeader, RadarControllerHeader, ProcessingHeader
from schainpy.model.data.jrodata import Voltage
+import zmq
# from _sha import blocksize
class VoltageReader(JRODataReader, ProcessingUnit):
@@ -301,6 +302,12 @@ class VoltageReader(JRODataReader, ProcessingUnit):
return
+
+ def getFromZMQ(self):
+ self.dataOut = self.receiver.recv_pyobj()
+ print '[Receiving] {} - {}'.format(self.dataOut.type,
+ self.dataOut.datatime.ctime())
+
def getData(self):
"""
getData obtiene una unidad de datos del buffer de lectura, un perfil, y la copia al objeto self.dataOut
diff --git a/schainpy/trash b/schainpy/trash
new file mode 100644
index 0000000..384299d
--- /dev/null
+++ b/schainpy/trash
@@ -0,0 +1 @@
+You should install "digital_rf_hdf5" module if you want to read USRP data