source: ETALON/SPARC/SPARC_controls/power_function.py @ 797

Last change on this file since 797 was 797, checked in by delerue, 6 years ago

Added SPARC controls

File size: 4.1 KB
Line 
1__author__ = 'delerue'
2
3POWER_CONTROLLER_IP= '10.0.1.180'
4POWER_CONTROLLER_PORT=23
5
6from sparc_constants import *
7
8from writeclient import *
9import time
10import string
11
12VERBOSE_DEFAULT=1
13
14global write_to_motor_dated_log
15write_to_motor_dated_log='/Users/delerue/Downloads/write_to_motor_log'
16waittime=0.5
17logfile=''
18
19# basic functions
20def get_power_status(verbose=VERBOSE_DEFAULT):
21    "This function sends a message to the motor controller"
22    import socket
23    HOST=POWER_CONTROLLER_IP
24    PORT=POWER_CONTROLLER_PORT
25    msg=''
26    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
27    s.connect((HOST,PORT))
28    data = s.recv(1024)
29    if (verbose==1):
30        print 'Received', repr(data)
31#    if (datedlog!=''):
32#        date_str=datetime.now().strftime("_%Y%m%d")
33#        logfile=datedlog+date_str+".txt"
34    if (logfile!=''):
35        f = open(logfile, 'a')
36        time_str=datetime.now().strftime("%Y%m%d %H:%M:%S")
37        f.write("("+time_str+") > "+msg+"\n")
38    msg='admin:12345678\n'
39    if (verbose==1):
40        print 'Sending message ', msg, ' to host ', HOST, ' on port ', PORT
41    s.sendall(msg)
42    time.sleep(waittime)
43    data = s.recv(1024)
44    if (verbose==1):
45        print 'Received', repr(data)
46    time.sleep(waittime)
47    msg='getpower\n'
48    if (verbose==1):
49        print 'Sending message ', msg, ' to host ', HOST, ' on port ', PORT
50    s.sendall(msg)
51    time.sleep(waittime)
52    data = s.recv(1024)
53    if (verbose==1):
54        print 'Received', repr(data)
55    checkPos=string.find(data,':')
56    print 'pos', checkPos
57    print data[checkPos+2]
58    print data[checkPos+4]
59    print data[checkPos+6]
60    print data[checkPos+8]
61    retval=data[checkPos+2]+data[checkPos+4]+data[checkPos+6]+data[checkPos+8]
62    if (verbose==1):
63        print 'Power status', retval
64    time.sleep(waittime)
65    msg='exit\n'
66    if (verbose==1):
67        print 'Sending message ', msg, ' to host ', HOST, ' on port ', PORT
68    s.sendall(msg)
69    time.sleep(waittime)
70    data = s.recv(1024)
71    if (verbose==1):
72        print 'Received', repr(data)
73    time.sleep(waittime)
74    if (verbose==1):
75        print 'Closing socket'
76        s.close()
77    if (logfile!=''):
78        time_str=datetime.now().strftime("%Y%m%d %H:%M:%S")
79        f.write("("+time_str+") < "+data+"\n")
80        f.close()
81    if (verbose==1):
82        print 'Received', repr(data)
83    return retval
84
85def set_power_status(power_setting,verbose=VERBOSE_DEFAULT):
86    "This function sends a message to the motor controller"
87    import socket
88    HOST=POWER_CONTROLLER_IP
89    PORT=POWER_CONTROLLER_PORT
90    msg=''
91    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
92    s.connect((HOST,PORT))
93    data = s.recv(1024)
94    if (verbose==1):
95        print 'Received', repr(data)
96#    if (datedlog!=''):
97#        date_str=datetime.now().strftime("_%Y%m%d")
98#        logfile=datedlog+date_str+".txt"
99    if (logfile!=''):
100        f = open(logfile, 'a')
101        time_str=datetime.now().strftime("%Y%m%d %H:%M:%S")
102        f.write("("+time_str+") > "+msg+"\n")
103    msg='admin:12345678\n'
104    if (verbose==1):
105        print 'Sending message ', msg, ' to host ', HOST, ' on port ', PORT
106    s.sendall(msg)
107    time.sleep(waittime)
108    data = s.recv(1024)
109    if (verbose==1):
110        print 'Received', repr(data)
111    time.sleep(waittime)
112    msg='setpower p6='+ power_setting +'\n'
113    if (verbose==1):
114        print 'Sending message ', msg, ' to host ', HOST, ' on port ', PORT
115    s.sendall(msg)
116    time.sleep(waittime)
117    data = s.recv(1024)
118    if (verbose==1):
119        print 'Received', repr(data)
120    time.sleep(waittime)
121    msg='exit\n'
122    if (verbose==1):
123        print 'Sending message ', msg, ' to host ', HOST, ' on port ', PORT
124    s.sendall(msg)
125    time.sleep(waittime)
126    data = s.recv(1024)
127    if (verbose==1):
128        print 'Received', repr(data)
129    time.sleep(waittime)
130    if (verbose==1):
131        print 'Closing socket'
132        s.close()
133    if (logfile!=''):
134        time_str=datetime.now().strftime("%Y%m%d %H:%M:%S")
135        f.write("("+time_str+") < "+data+"\n")
136        f.close()
137    if (verbose==1):
138        print 'Received', repr(data)
139
140
141get_power_status()
142set_power_status('1110')
143get_power_status()
Note: See TracBrowser for help on using the repository browser.