##// END OF EJS Templates
CGS models: default values...
Fiorella Quino -
r98:10a81d95e909
parent child
Show More
@@ -1,173 +1,173
1 1 from django.db import models
2 2 from apps.main.models import Configuration
3 3 from django.core.validators import MinValueValidator, MaxValueValidator
4 4
5 5
6 6 from apps.main.models import Device, Experiment
7 7
8 8 from files import read_json_file
9 9 # Create your models here. validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)]
10 10
11 11 class CGSConfiguration(Configuration):
12 12
13 freq0 = models.IntegerField(verbose_name='Frequency 0',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
14 freq1 = models.IntegerField(verbose_name='Frequency 1',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
15 freq2 = models.IntegerField(verbose_name='Frequency 2',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
16 freq3 = models.IntegerField(verbose_name='Frequency 3',validators=[MinValueValidator(0), MaxValueValidator(450e6)], blank=True, null=True)
13 freq0 = models.PositiveIntegerField(verbose_name='Frequency 0',validators=[MaxValueValidator(450e6)], default = 60)
14 freq1 = models.PositiveIntegerField(verbose_name='Frequency 1',validators=[MaxValueValidator(450e6)], default = 60)
15 freq2 = models.PositiveIntegerField(verbose_name='Frequency 2',validators=[MaxValueValidator(450e6)], default = 60)
16 freq3 = models.PositiveIntegerField(verbose_name='Frequency 3',validators=[MaxValueValidator(450e6)], default = 60)
17 17
18 18 def verify_frequencies(self):
19 19
20 20 return True
21 21
22 22
23 23 def update_from_file(self, fp):
24 24
25 25 kwargs = read_json_file(fp)
26 26
27 27 if not kwargs:
28 28 return False
29 29
30 30 self.freq0 = kwargs['freq0']
31 31 self.freq1 = kwargs['freq1']
32 32 self.freq2 = kwargs['freq2']
33 33 self.freq3 = kwargs['freq3']
34 34
35 35 return True
36 36
37 37 def parms_to_dict(self):
38 38
39 39 parameters = {}
40 40
41 41 if self.freq0 == None or self.freq0 == '':
42 42 parameters['freq0'] = 0
43 43 else:
44 44 parameters['freq0'] = self.freq0
45 45
46 46 if self.freq1 == None or self.freq1 == '':
47 47 parameters['freq1'] = 0
48 48 else:
49 49 parameters['freq1'] = self.freq1
50 50
51 51 if self.freq2 == None or self.freq2 == '':
52 52 parameters['freq2'] = 0
53 53 else:
54 54 parameters['freq2'] = self.freq2
55 55
56 56 if self.freq3 == None or self.freq3 == '':
57 57 parameters['freq3'] = 0
58 58 else:
59 59 parameters['freq3'] = self.freq3
60 60
61 61
62 62 return parameters
63 63
64 64
65 65 def status_device(self):
66 66
67 67 import requests
68 68
69 69 ip=self.device.ip_address
70 70 port=self.device.port_address
71 71
72 72 route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
73 73 try:
74 74 r = requests.get(route,timeout=0.5)
75 75 except:
76 76 self.device.status = 0
77 77 self.device.save()
78 78 return self.device.status
79 79
80 80 response = str(r.text)
81 81 response = response.split(";")
82 82 icon = response[0]
83 83 status = response[-1]
84 84
85 85 print icon, status
86 86 #"icon" could be: "alert" or "okay"
87 87 if "alert" in icon:
88 88 if "Starting Up" in status: #No Esta conectado
89 89 self.device.status = 0
90 90 else:
91 91 self.device.status = 1
92 92 elif "okay" in icon:
93 93 self.device.status = 3
94 94 else:
95 95 self.device.status = 1
96 96
97 97 self.message = status
98 98 self.device.save()
99 99
100 100
101 101 return self.device.status
102 102
103 103
104 104 def read_device(self):
105 105
106 106 import requests
107 107
108 108 ip=self.device.ip_address
109 109 port=self.device.port_address
110 110
111 111 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
112 112 try:
113 113 frequencies = requests.get(route,timeout=0.5)
114 114
115 115 except:
116 116 self.message = "Could not read CGS parameters from this device"
117 117 return None
118 118
119 119 frequencies = frequencies.json()
120 120 frequencies = frequencies.get("Frecuencias")
121 121 f0 = frequencies.get("f0")
122 122 f1 = frequencies.get("f1")
123 123 f2 = frequencies.get("f2")
124 124 f3 = frequencies.get("f3")
125 125
126 126 parms = {'freq0': f0,
127 127 'freq1': f1,
128 128 'freq2': f2,
129 129 'freq3': f3}
130 130
131 131 self.message = ""
132 132 return parms
133 133
134 134
135 135 def write_device(self):
136 136
137 137 import requests
138 138
139 139 ip=self.device.ip_address
140 140 port=self.device.port_address
141 141
142 142 #---Frequencies from form
143 143 f0 = self.freq0
144 144 f1 = self.freq1
145 145 f2 = self.freq2
146 146 f3 = self.freq3
147 147 post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
148 148 route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
149 149
150 150 try:
151 151 r = requests.post(route, post_data, timeout=0.5)
152 152 except:
153 153 self.message = "Could not write CGS parameters"
154 154 return None
155 155
156 156 text = r.text
157 157 text = text.split(',')
158 158
159 159 if len(text)>1:
160 160 title = text[0]
161 161 status = text[1]
162 162 if title == "okay":
163 163 self.message = status
164 164 return 3
165 165 else:
166 166 self.message = title + ", " + status
167 167 return 1
168 168
169 169 return 1
170 170
171 171
172 172 class Meta:
173 173 db_table = 'cgs_configurations'
General Comments 0
You need to be logged in to leave comments. Login now