#!/usr/bin/python

#from mantid.simpleapi import *
#import jsonArray
import time
import getCommand
from multiprocessing import Process, Manager
#from redis.sentinel import Sentinel
import heartBeat
#import dataReduction
import connect

if __name__ == '__main__':
    #myapp=QtGui.QApplication(sys.argv)
    # ======Try to connect NEON server
    #sentinel=Sentinel([('10.1.33.141', 9001),('10.1.33.141', 9011),('10.1.33.141', 9021)], socket_timeout=0.1)
    #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)]
    #ip_port = [('10.1.31.116', 9001), ('10.1.31.116',9011), ('10.1.31.116',9021)]
    #ip_port = [('10.1.53.240', 9001), ('10.1.53.240',9011), ('10.1.53.240',9021)]

    passwd = 'sanlie;123'
    r = connect.connectNeon(ip_port, passwd, 10)

    r_write = r.getRedisWrite()
    r_read = r.getRedisRead()



    #set command
    manager = Manager()
    myDict=manager.dict()
    myDict['state'] = False
    myDict['configure'] = False
    myDict['running']= False
    myDict['started']=False
    myDict['pause']=False
    myDict['error']=True

    print 'waiting . . .'
    init=1
    r_write.set("/GPPD/stateMachine/status",init)

    myCommandThread=getCommand.getCommand(r_write, r_read, 0.1, myDict)
    myCommandThread.start()
    print myCommandThread, " start!"
    # heartbeat process
    myHeartbeatThread=heartBeat.neonHeartBeat(r_write, r_read, 0.5, myDict)
    myHeartbeatThread.start()
    print myHeartbeatThread," start!"

