#!/usr/bin/python

import connect
import moduleIO
import monitorIO
import time
from multiprocessing import Process, Manager
#from redis.sentinel import Sentinel
import dataReduction
import os
import glob

if __name__ == '__main__':
    # ======Try to connect NEON server
    #sentinel=Sentinel([('10.1.53.240', 9001),('10.1.53.240', 9011),('10.1.53.240', 9021)], socket_timeout=0.1)
    #r=sentinel.master_for('neonmaster', socket_timeout=20, password='sanlie;123')
    ip_port = [('10.1.33.141', 9001), ('10.1.33.145',9001)]
    passwd = 'sanlie;123'
    r = connect.connectNeon(ip_port, passwd, 10)
    r_write = r.getRedisWrite()
    r_read = r.getRedisRead()

    for file in glob.glob('./*.nxs'):
        os.remove(file)
    print "clear all nxs file"

    #set command
    #moduleList=['module131']
    moduleList=['module131', 'module132', 'module133', 'module231', 'module232', 'module233', 'module322', 'module331', 'module332', 'module333', 'module341', 'module342', 'module343', 'module422', 'module431', 'module432', 'module433', 'module441', 'module442', 'module443', 'module521', 'module522', 'module523', 'module531', 'module532', 'module533', 'module541', 'module542', 'module543', 'module621', 'module622', 'module623', 'module631', 'module632', 'module633', 'module641', 'module642', 'module643']
    monitorList=['monitor1','monitor2','monitor3']
    myPro=[]
    for name in moduleList:
        myPro.append(moduleIO.moduleIO(r_write,r_read, 1, name))
    myPro.append(monitorIO.monitorIO(r_write, r_read, 1,monitorList))
    myPro.append(dataReduction.reduction(r_write,r_read,30))
    for t in myPro:
        t.start()
        print t," start!"
