
import os, sys

path = os.path.split(os.getcwd())[0]
path = os.path.split(path)[0]

sys.path.insert(0, path)

from schainpy.controller import Project

controllerObj = Project()
controllerObj.setup(id = '002', name='script02', description="JASMET Meteor Detection")

#--------------------------------------    Setup    -----------------------------------------
#Verificar estas variables

#Path para los archivos
# path = '/mnt/jars/2016_08/NOCHE'
# path = '/media/joscanoa/DATA_JASMET/JASMET/2016_08/DIA' 
# path = '/media/joscanoa/DATA_JASMET/JASMET/2016_08/NOCHE' 
path = '/media/joscanoa/DATA_JASMET/JASMET/2016_08/DIA' 

#Path para los graficos
pathfig = os.path.join(os.environ['HOME'],'Pictures/JASMET30/201608/graphics')

#Path para los archivos HDF5 de meteoros
pathfile = os.path.join(os.environ['HOME'],'Pictures/JASMET30/201608/meteor')

#Fechas para busqueda de archivos
startDate = '2016/08/29'
endDate = '2016/09/11'
#Horas para busqueda de archivos
startTime = '00:00:00'
endTime = '23:59:59'
                            
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
#------------------------------    Voltage Reading Unit    ----------------------------------

readUnitConfObj = controllerObj.addReadUnit(datatype='VoltageReader',
                                            path=path,
                                            startDate=startDate,
                                            endDate=endDate,
                                            startTime=startTime,
                                            endTime=endTime,
                                            online=0,
                                            delay=30,
                                            walk=1,
                                            getblock=1,
                                            blocktime=100)

opObj11 = readUnitConfObj.addOperation(name='printNumberOfBlock')

#--------------------------    Voltage Processing Unit    ------------------------------------

procUnitConfObj0 = controllerObj.addProcUnit(datatype='VoltageProc', inputId=readUnitConfObj.getId())

opObj00 = procUnitConfObj0.addOperation(name='selectChannels')
opObj00.addParameter(name='channelList', value='0,1,2,3,4', format='intlist')

opObj01 = procUnitConfObj0.addOperation(name='setRadarFrequency')
opObj01.addParameter(name='frequency', value='30.e6', format='float')

opObj01 = procUnitConfObj0.addOperation(name='interpolateHeights')
opObj01.addParameter(name='topLim', value='73', format='int')
opObj01.addParameter(name='botLim', value='71', format='int')

opObj02 = procUnitConfObj0.addOperation(name='Decoder', optype='other')

opObj03 = procUnitConfObj0.addOperation(name='CohInt', optype='other')
opObj03.addParameter(name='n', value='2', format='int')

#---------------------------    Parameters Processing Unit    ------------------------------------

procUnitConfObj1 = controllerObj.addProcUnit(datatype='ParametersProc', inputId=procUnitConfObj0.getId())
#     
opObj10 = procUnitConfObj1.addOperation(name='SMDetection', optype='other')
opObj10.addParameter(name='azimuth', value='45', format='float') 
opObj10.addParameter(name='hmin', value='60', format='float') 
opObj10.addParameter(name='hmax', value='120', format='float')

opObj12 = procUnitConfObj1.addOperation(name='ParamWriter', optype='other')
opObj12.addParameter(name='path', value=pathfile)
opObj12.addParameter(name='blocksPerFile', value='1000', format='int')
opObj12.addParameter(name='metadataList',value='type,heightList,paramInterval,timeZone',format='list')
opObj12.addParameter(name='dataList',value='data_param,utctime',format='list')
opObj12.addParameter(name='mode',value='2',format='int')
     
#--------------------------------------------------------------------------------------------------

print "Escribiendo el archivo XML"
controllerObj.writeXml("JASMET02.xml")
print "Leyendo el archivo XML"
controllerObj.readXml("JASMET02.xml")

controllerObj.createObjects()
controllerObj.connectObjects()
controllerObj.run()