##// END OF EJS Templates
Task #95: connect icon...
Fiorella Quino -
r36:6e8539ca71a5
parent child
Show More
@@ -1,182 +1,199
1 from django.shortcuts import redirect, render, get_object_or_404
1 from django.shortcuts import redirect, render, get_object_or_404
2 from django.contrib import messages
2 from django.contrib import messages
3
3
4 from apps.main.models import Experiment, Configuration
4 from apps.main.models import Experiment, Configuration
5 from .models import CGSConfiguration
5 from .models import CGSConfiguration
6
6
7 from .forms import CGSConfigurationForm
7 from .forms import CGSConfigurationForm
8 from apps.main.views import sidebar
8 from apps.main.views import sidebar
9
9
10 import requests
10 import requests
11 # Create your views here.
11 # Create your views here.
12
12
13 def cgs_conf(request, id_conf):
13 def cgs_conf(request, id_conf):
14
14
15 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
15 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
16
16
17 ip=conf.device.ip_address
17 ip=conf.device.ip_address
18 port=conf.device.port_address
18 port=conf.device.port_address
19
19
20 kwargs = {}
20 kwargs = {}
21
22 if request.method=='GET':
23 #r: response = icon, status
24 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
25 r = requests.get(route)
26 response = str(r.text)
27 response = response.split(";")
28 icon = response[0]
29 status = response[-1]
30 #print r.text
31 #"icon" could be: "alert" or "okay"
32 if "okay" in icon or "alert" in icon:
33 kwargs['connected'] = True
34
35 if not kwargs['connected']:
36 messages.error(request, message=status)
37
21 kwargs['dev_conf'] = conf
38 kwargs['dev_conf'] = conf
22 kwargs['dev_conf_keys'] = ['experiment', 'device',
39 kwargs['dev_conf_keys'] = ['experiment', 'device',
23 'freq0', 'freq1',
40 'freq0', 'freq1',
24 'freq2', 'freq3']
41 'freq2', 'freq3']
25
42
26 kwargs['title'] = 'CGS Configuration'
43 kwargs['title'] = 'CGS Configuration'
27 kwargs['suptitle'] = 'Details'
44 kwargs['suptitle'] = 'Details'
28
45
29 kwargs['button'] = 'Edit Configuration'
46 kwargs['button'] = 'Edit Configuration'
30
47
31 ###### SIDEBAR ######
48 ###### SIDEBAR ######
32 kwargs.update(sidebar(conf))
49 kwargs.update(sidebar(conf))
33
50
34 return render(request, 'cgs_conf.html', kwargs)
51 return render(request, 'cgs_conf.html', kwargs)
35
52
36 def cgs_conf_edit(request, id_conf):
53 def cgs_conf_edit(request, id_conf):
37
54
38 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
55 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
39
56
40 if request.method=='GET':
57 if request.method=='GET':
41 form = CGSConfigurationForm(instance=conf)
58 form = CGSConfigurationForm(instance=conf)
42
59
43 if request.method=='POST':
60 if request.method=='POST':
44 form = CGSConfigurationForm(request.POST, instance=conf)
61 form = CGSConfigurationForm(request.POST, instance=conf)
45
62
46 if form.is_valid():
63 if form.is_valid():
47 conf = form.save(commit=False)
64 conf = form.save(commit=False)
48
65
49 if conf.verify_frequencies():
66 if conf.verify_frequencies():
50
67
51 conf.save()
68 conf.save()
52 return redirect('url_cgs_conf', id_conf=conf.id)
69 return redirect('url_cgs_conf', id_conf=conf.id)
53
70
54 ##ERRORS
71 ##ERRORS
55
72
56 kwargs = {}
73 kwargs = {}
57 kwargs['id_dev'] = conf.id
74 kwargs['id_dev'] = conf.id
58 kwargs['form'] = form
75 kwargs['form'] = form
59 kwargs['title'] = 'Device Configuration'
76 kwargs['title'] = 'Device Configuration'
60 kwargs['suptitle'] = 'Edit'
77 kwargs['suptitle'] = 'Edit'
61 kwargs['button'] = 'Save'
78 kwargs['button'] = 'Save'
62
79
63 ###### SIDEBAR ######
80 ###### SIDEBAR ######
64 kwargs.update(sidebar(conf))
81 kwargs.update(sidebar(conf))
65
82
66 return render(request, 'cgs_conf_edit.html', kwargs)
83 return render(request, 'cgs_conf_edit.html', kwargs)
67
84
68 def cgs_conf_write(request, id_conf):
85 def cgs_conf_write(request, id_conf):
69
86
70 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
87 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
71 ip=conf.device.ip_address
88 ip=conf.device.ip_address
72 port=conf.device.port_address
89 port=conf.device.port_address
73
90
74 #Frequencies from form
91 #Frequencies from form
75 f0 = int(conf.freq0)
92 f0 = int(conf.freq0)
76 f1 = int(conf.freq1)
93 f1 = int(conf.freq1)
77 f2 = int(conf.freq2)
94 f2 = int(conf.freq2)
78 f3 = int(conf.freq3)
95 f3 = int(conf.freq3)
79 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
96 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
80 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
97 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
81 r = requests.post(route, post_data)
98 r = requests.post(route, post_data)
82 text = r.text
99 text = r.text
83 text = text.split(',')
100 text = text.split(',')
84
101
85 try:
102 try:
86 title = text[0]
103 title = text[0]
87 status = text[1]
104 status = text[1]
88 status_ok = r.status_code
105 status_ok = r.status_code
89 if status_ok == 200 or title == "okay":
106 if status_ok == 200 or title == "okay":
90 messages.success(request, status)
107 messages.success(request, status)
91 else:
108 else:
92 messages.error(request, status)
109 messages.error(request, status)
93 except:
110 except:
94 messages.error(request, "An hardware error was found")
111 messages.error(request, "An hardware error was found")
95
112
96
113
97
114
98
115
99 return redirect('url_cgs_conf', id_conf=conf.id)
116 return redirect('url_cgs_conf', id_conf=conf.id)
100
117
101 def cgs_conf_read(request, id_conf):
118 def cgs_conf_read(request, id_conf):
102
119
103 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
120 conf = get_object_or_404(CGSConfiguration, pk=id_conf)
104 ip=conf.device.ip_address
121 ip=conf.device.ip_address
105 port=conf.device.port_address
122 port=conf.device.port_address
106
123
107 if request.method=='POST':
124 if request.method=='POST':
108 form = CGSConfigurationForm(request.POST, instance=conf)
125 form = CGSConfigurationForm(request.POST, instance=conf)
109
126
110 if form.is_valid():
127 if form.is_valid():
111 cgs_model = form.save(commit=False)
128 cgs_model = form.save(commit=False)
112
129
113 if cgs_model.verify_frequencies():
130 if cgs_model.verify_frequencies():
114
131
115 cgs_model.save()
132 cgs_model.save()
116 return redirect('url_cgs_conf', id_conf=conf.id)
133 return redirect('url_cgs_conf', id_conf=conf.id)
117
134
118 messages.error(request, "Parameters could not be saved. Invalid parameters")
135 messages.error(request, "Parameters could not be saved. Invalid parameters")
119
136
120 data = {}
137 data = {}
121
138
122
139
123 if request.method=='GET':
140 if request.method=='GET':
124 #r: response = icon, status
141 #r: response = icon, status
125 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
142 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
126 r = requests.get(route)
143 r = requests.get(route)
127 response = str(r.text)
144 response = str(r.text)
128 response = response.split(";")
145 response = response.split(";")
129 icon = response[0]
146 icon = response[0]
130 status = response[-1]
147 status = response[-1]
131 print r.text
148 print r.text
132 #"icon" could be: "alert" or "okay"
149 #"icon" could be: "alert" or "okay"
133 if "okay" in icon:
150 if "okay" in icon:
134 messages.success(request, status)
151 messages.success(request, status)
135 else:
152 else:
136 messages.error(request, status)
153 messages.error(request, status)
137 #Get Frequencies
154 #Get Frequencies
138 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
155 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
139 #frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
156 #frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
140 frequencies = requests.get(route)
157 frequencies = requests.get(route)
141 frequencies = frequencies.json()
158 frequencies = frequencies.json()
142 frequencies = frequencies.get("Frecuencias")
159 frequencies = frequencies.get("Frecuencias")
143 f0 = frequencies.get("f0")
160 f0 = frequencies.get("f0")
144 f1 = frequencies.get("f1")
161 f1 = frequencies.get("f1")
145 f2 = frequencies.get("f2")
162 f2 = frequencies.get("f2")
146 f3 = frequencies.get("f3")
163 f3 = frequencies.get("f3")
147 print f0,f1,f2,f3
164 print f0,f1,f2,f3
148
165
149
166
150 if not response:
167 if not response:
151 messages.error(request, "Could not read parameters from Device")
168 messages.error(request, "Could not read parameters from Device")
152 return redirect('url_cgs_conf', id_conf=conf.id)
169 return redirect('url_cgs_conf', id_conf=conf.id)
153
170
154 data = {'experiment' : conf.experiment.id,
171 data = {'experiment' : conf.experiment.id,
155 'device' : conf.device.id,
172 'device' : conf.device.id,
156 'freq0' : f0,
173 'freq0' : f0,
157 'freq1' : f1,
174 'freq1' : f1,
158 'freq2' : f2,
175 'freq2' : f2,
159 'freq3' : f3,
176 'freq3' : f3,
160 }
177 }
161
178
162 form = CGSConfigurationForm(initial = data)
179 form = CGSConfigurationForm(initial = data)
163
180
164 kwargs = {}
181 kwargs = {}
165 kwargs['id_dev'] = conf.id
182 kwargs['id_dev'] = conf.id
166 kwargs['form'] = form
183 kwargs['form'] = form
167 kwargs['title'] = 'Device Configuration'
184 kwargs['title'] = 'Device Configuration'
168 kwargs['suptitle'] = 'Parameters read from device'
185 kwargs['suptitle'] = 'Parameters read from device'
169 kwargs['button'] = 'Save'
186 kwargs['button'] = 'Save'
170
187
171 ###### SIDEBAR ######
188 ###### SIDEBAR ######
172 kwargs.update(sidebar(conf))
189 kwargs.update(sidebar(conf))
173
190
174 return render(request, 'cgs_conf_edit.html', kwargs)
191 return render(request, 'cgs_conf_edit.html', kwargs)
175
192
176 #def cgs_conf_export(request, id_conf):
193 #def cgs_conf_export(request, id_conf):
177
194
178 # conf = get_object_or_404(CGSConfiguration, pk=id_conf)
195 # conf = get_object_or_404(CGSConfiguration, pk=id_conf)
179 # ip=conf.device.ip_address
196 # ip=conf.device.ip_address
180 # port=conf.device.port_address
197 # port=conf.device.port_address
181
198
182 # return render(request, 'cgs_conf_export.html', kwargs) No newline at end of file
199 # return render(request, 'cgs_conf_export.html', kwargs)
General Comments 0
You need to be logged in to leave comments. Login now