diff --git a/apps/abs/forms.py b/apps/abs/forms.py
index 514f9c2..5a3e0e5 100644
--- a/apps/abs/forms.py
+++ b/apps/abs/forms.py
@@ -17,7 +17,7 @@ class ABSConfigurationForm(forms.ModelForm):
class Meta:
model = ABSConfiguration
- exclude = ('type', 'status', 'parameters', 'beams', 'module_status')
+ exclude = ('type', 'status', 'parameters', 'active_beam', 'module_status')
class ABSBeamAddForm(forms.Form):
diff --git a/apps/abs/models.py b/apps/abs/models.py
index 77c4571..e3c045b 100644
--- a/apps/abs/models.py
+++ b/apps/abs/models.py
@@ -175,48 +175,8 @@ def fromChar2Binary(char):
return bits
-def change_beam_for_multiprocessing(module):
-
- for i in range (1,50):
- beam_pos = 0
- module_address = ('192.168.1.'+str(module), 5500)
- header = 'JROABSCeCnModCnMod0100000'
- numbers = len(str(beam_pos))
- function = 'CHGB'
-
- message_tx = header+str(numbers)+function+str(beam_pos)+'0'
-
- # Create the datagram socket
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.connect(module_address)
-
- sock.send(message_tx)
- #t = sock.recv(1024)
- sock.close()
- sock = None
-
-
- time.sleep(0.2)
-
-
- beam_pos = 1
- numbers = len(str(beam_pos))
-
- message_tx = header+str(numbers)+function+str(beam_pos)+'0'
-
- # Create the datagram socket
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.connect(module_address)
- sock.send(message_tx)
- sock.close()
- sock = None
-
- time.sleep(0.2)
-
-
-
class ABSConfiguration(Configuration):
- beams = models.CharField(verbose_name='Beams', max_length=20000, default="{}")
+ active_beam = models.CharField(verbose_name='Active Beam', max_length=20000, default="{}")
module_status = models.CharField(verbose_name='Module Status', max_length=10000, default=json.dumps(status_default))
class Meta:
@@ -234,11 +194,11 @@ class ABSConfiguration(Configuration):
parameters['name'] = self.name
parameters['beams'] = {}
- beams = ast.literal_eval(self.beams)
+ beams = ABSBeam.objects.get(pk=self.id)
b=1
for beam in beams:
- absbeam = ABSBeam.objects.get(pk=beams[beam])
- parameters['beams']['beam'+str(b)] = absbeam.parms_to_dict()
+ #absbeam = ABSBeam.objects.get(pk=beams[beam])
+ parameters['beams']['beam'+str(b)] = beam.parms_to_dict()#absbeam.parms_to_dict()
b+=1
return parameters
@@ -336,6 +296,38 @@ class ABSConfiguration(Configuration):
return module_bits
+ def status_device(self):
+ """
+ This function gets the status of each abs module. It sends GET method to Web Application
+ in Python Bottle.
+ """
+ ip_address = self.device.ip_address
+ ip_address = ip_address.split('.')
+ module_seq = (ip_address[0],ip_address[1],ip_address[2])
+ dot = '.'
+ module_port = self.device.port_address
+
+ modules_status = json.loads(self.module_status)
+
+ for i in range(1,65):
+ module_ip = dot.join(module_seq)+'.'+str(i)
+ print module_ip
+
+ route = 'http://'+module_ip+':'+str(module_port)+'/hello'
+
+ try:
+ r = requests.get(route, timeout=0.7)
+ modules_status[str(i)] = 1
+ except:
+ modules_status[str(i)] = 0
+ pass
+
+ self.message = 'ABS modules Status have been updated.'
+ self.module_status=json.dumps(modules_status)
+ self.save()
+
+ return
+
def write_device(self):
"""
@@ -438,7 +430,7 @@ class ABSConfiguration(Configuration):
#El indice del apunte debe ser menor que el numero total de apuntes
#El servidor tcp en el embebido comienza a contar desde 0
- beams_list = ast.literal_eval(self.beams)
+ beams_list = ABSBeam.objects.filter(abs_conf=self)
if len(beams_list) < beam_pos:
return 0
@@ -496,7 +488,7 @@ class ABSConfiguration(Configuration):
#El indice del apunte debe ser menor que el numero total de apuntes
#El servidor tcp en el embebido comienza a contar desde 0
- beams_list = ast.literal_eval(self.beams)
+ beams_list = ABSBeam.objects.filter(abs_conf=self)
if len(beams_list) < beam_pos:
return 0
@@ -684,10 +676,6 @@ class ABSConfiguration(Configuration):
return 1
- def status_device(self):
-
- return 1
-
class ABSBeam(models.Model):
@@ -758,74 +746,7 @@ class ABSBeam(models.Model):
return self
- def change_beam(self, beam_pos=0):
-
- module_63 = ('192.168.1.63', 5500)
- header = 'JROABSCeCnModCnMod0100000'
- numbers = len(str(beam_pos))
- function = 'CHGB'
-
- message_tx = header+str(numbers)+function+str(beam_pos)+'0'
-
- # Create the datagram socket
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.connect(module_63)
- sock.send(message_tx)
- sock.close()
- return message_tx
-
- def change_module_beam(self, module=61,beam_pos=0):
-
- module_address = ('192.168.1.'+str(module), 5500)
- header = 'JROABSCeCnModCnMod0100000'
- numbers = len(str(beam_pos))
- function = 'CHGB'
-
- message_tx = header+str(numbers)+function+str(beam_pos)+'0'
-
- # Create the datagram socket
- try:
- sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- sock.connect(module_address)
- sock.send(message_tx)
- sock.close()
- except:
- return 0
- return message_tx
-
- def write_device(self):
-
- parameters = {}
-
- module_ip = '192.168.1.63'
- write_route = 'http://192.168.1.63:8080/configure'
-
- header = 'JROABSCeCnModCnMod01000108SNDFexperimento1.ab1'
- module = 'ABS_63'
- beams = {1: '001000', 2: '010001', 3: '010010', 4: '000011', 5: '101100', 6: '101101',
- 7: '110110', 8: '111111', 9: '000000', 10: '001001', 11: '010010', 12: '011011'}
-
- parameters['header'] = header
- parameters['module'] = module
- parameters['beams'] = json.dumps(beams)
-
- answer = ''
-
- try:
- r_write = requests.post(write_route, parameters, timeout=0.5)
- answer = r_write.json()
- self.message = answer['message']
- except:
- self.message = "Could not write ABS parameters"
- return 0
-
-
- #self.device.status = int(answer['status'])
-
- return 1
-
-
-
+
def module_6bits(self, module):
"""
This function reads antenna pattern and choose 6bits (upbits-downbits) for one abs module
@@ -862,44 +783,13 @@ class ABSBeam(models.Model):
return self.modules_conf
- def add_beam2list(self):
- """
- This function adds a beam to the beams list of ABS Configuration.
- """
- beams = ast.literal_eval(self.abs_conf.beams)
- if any(beams):
- for beam in beams:
- if beams[beam] == self.id:
- return
- i = len(beams)+1
- beams['beam'+str(i)] = self.id
- else:
- beams['beam1'] = self.id
-
- self.abs_conf.beams = json.dumps(beams)
- self.abs_conf.save()
-
- return
-
- def remove_beamfromlist(self):
+
+ def active_beam(self):
"""
- This function removes current beam from the beams list of ABS Configuration.
+ This function set this beam as the active beam of its ABS Configuration.
"""
- beams = ast.literal_eval(self.abs_conf.beams)
- dict_position = ''
-
- if any(beams):
- for beam in beams:
- if beams[beam] == self.id:
- dict_position = beam
- if dict_position != '':
- beams.pop(str(dict_position),None)
- else:
- return
-
- self.abs_conf.beams = json.dumps(beams)
+ self.abs_conf.active_beam = json.dumps({'active_beam': self.id})
self.abs_conf.save()
-
return
@property
diff --git a/apps/abs/templates/abs_conf.html b/apps/abs/templates/abs_conf.html
index 0f79f95..8a9d5f3 100644
--- a/apps/abs/templates/abs_conf.html
+++ b/apps/abs/templates/abs_conf.html
@@ -51,7 +51,7 @@
}
.north tr{
border: 1px solid #ffffff;
- background-color: #FF0000;
+
}
.north td{
border: 2px solid #e2e2e7;
@@ -71,14 +71,6 @@
border-bottom: 3px solid #e2e2e7;
}
-.north tr:nth-child(2) td:nth-child(2){
- background-color: #00cc00;
-}
-
-.north tr:nth-child(2) td:nth-child(4){
- background-color: #ee902c;
-}
-
.east {
@@ -88,7 +80,6 @@
}
.east tr{
border: 1px solid #ffffff;
- background-color: #FF0000;
}
.east td{
border: 2px solid #e2e2e7;
@@ -108,13 +99,7 @@
border-bottom: 3px solid #e2e2e7;
}
-.east tr:nth-child(2) td:nth-child(2){
- background-color: #00cc00;
-}
-.east tr:nth-child(2) td:nth-child(4){
- background-color: #ee902c;
-}
.west {
@@ -124,7 +109,6 @@
}
.west tr{
border: 1px solid #ffffff;
- background-color: #FF0000;
}
.west td{
border: 2px solid #e2e2e7;
@@ -144,13 +128,7 @@
border-bottom: 3px solid #e2e2e7;
}
-.west tr:nth-child(2) td:nth-child(2){
- background-color: #00cc00;
-}
-.west tr:nth-child(2) td:nth-child(4){
- background-color: #ee902c;
-}
.south {
@@ -160,7 +138,6 @@
}
.south tr{
border: 1px solid #ffffff;
- background-color: #FF0000;
}
.south td{
border: 2px solid #e2e2e7;
@@ -180,279 +157,373 @@
border-bottom: 3px solid #e2e2e7;
}
-.south tr:nth-child(2) td:nth-child(2){
- background-color: #00cc00;
-}
-
-.south tr:nth-child(2) td:nth-child(4){
- background-color: #ee902c;
-}
-
Beams:
+
{% if beams %}
-
+ Beams:
+
+
+
+
+
+
+
+ {% if active_beam %}
+
Active Beam: {{active_beam.name}}
+
+
+
+ North Quarter
+
+
+ {{active_beam.get_upvalues.0}} | {{active_beam.get_upvalues.1}} | {{active_beam.get_upvalues.2}} | {{active_beam.get_upvalues.3}} |
+
+
+ {{active_beam.get_downvalues.0}} | {{active_beam.get_downvalues.1}} | {{active_beam.get_downvalues.2}} | {{active_beam.get_downvalues.3}} |
+
+
+ {{active_beam.get_upvalues.8}} | {{active_beam.get_upvalues.9}} | {{active_beam.get_upvalues.10}} | {{active_beam.get_upvalues.11}} |
+
+
+ {{active_beam.get_downvalues.8}} | {{active_beam.get_downvalues.9}} | {{active_beam.get_downvalues.10}} | {{active_beam.get_downvalues.11}} |
+
+
+ {{active_beam.get_upvalues.16}} | {{active_beam.get_upvalues.17}} | {{active_beam.get_upvalues.18}} | {{active_beam.get_upvalues.19}} |
+
+
+ {{active_beam.get_downvalues.16}} | {{active_beam.get_downvalues.17}} | {{active_beam.get_downvalues.18}} | {{active_beam.get_downvalues.19}} |
+
+
+ {{active_beam.get_upvalues.24}} | {{active_beam.get_upvalues.25}} | {{active_beam.get_upvalues.26}} | {{active_beam.get_upvalues.27}} |
+
+
+ {{active_beam.get_downvalues.24}} | {{active_beam.get_downvalues.25}} | {{active_beam.get_downvalues.26}} | {{active_beam.get_downvalues.27}} |
+
+
+ |
+ East Quarter
+
+
+ {{active_beam.get_upvalues.4}} | {{active_beam.get_upvalues.5}} | {{active_beam.get_upvalues.6}} | {{active_beam.get_upvalues.7}} |
+
+
+ {{active_beam.get_downvalues.4}} | {{active_beam.get_downvalues.5}} | {{active_beam.get_downvalues.6}} | {{active_beam.get_downvalues.7}} |
+
+
+ {{active_beam.get_upvalues.12}} | {{active_beam.get_upvalues.13}} | {{active_beam.get_upvalues.14}} | {{active_beam.get_upvalues.15}} |
+
+
+ {{active_beam.get_downvalues.12}} | {{active_beam.get_downvalues.13}} | {{active_beam.get_downvalues.14}} | {{active_beam.get_downvalues.15}} |
+
+
+ {{active_beam.get_upvalues.20}} | {{active_beam.get_upvalues.21}} | {{active_beam.get_upvalues.22}} | {{active_beam.get_upvalues.23}} |
+
+
+ {{active_beam.get_downvalues.20}} | {{active_beam.get_downvalues.21}} | {{active_beam.get_downvalues.22}} | {{active_beam.get_downvalues.23}} |
+
+
+ {{active_beam.get_upvalues.28}} | {{active_beam.get_upvalues.29}} | {{active_beam.get_upvalues.30}} | {{active_beam.get_upvalues.31}} |
+
+
+ {{active_beam.get_downvalues.28}} | {{active_beam.get_downvalues.29}} | {{active_beam.get_downvalues.30}} | {{active_beam.get_downvalues.31}} |
+
+
+ |
+
+
+ West Quarter
+
+
+ {{active_beam.get_upvalues.32}} | {{active_beam.get_upvalues.33}} | {{active_beam.get_upvalues.34}} | {{active_beam.get_upvalues.35}} |
+
+
+ {{active_beam.get_downvalues.32}} | {{active_beam.get_downvalues.33}} | {{active_beam.get_downvalues.34}} | {{active_beam.get_downvalues.35}} |
+
+
+ {{active_beam.get_upvalues.40}} | {{active_beam.get_upvalues.41}} | {{active_beam.get_upvalues.42}} | {{active_beam.get_upvalues.43}} |
+
+
+ {{active_beam.get_downvalues.40}} | {{active_beam.get_downvalues.41}} | {{active_beam.get_downvalues.42}} | {{active_beam.get_downvalues.43}} |
+
+
+ {{active_beam.get_upvalues.48}} | {{active_beam.get_upvalues.49}} | {{active_beam.get_upvalues.50}} | {{active_beam.get_upvalues.51}} |
+
+
+ {{active_beam.get_downvalues.48}} | {{active_beam.get_downvalues.49}} | {{active_beam.get_downvalues.50}} | {{active_beam.get_downvalues.51}} |
+
+
+ {{active_beam.get_upvalues.56}} | {{active_beam.get_upvalues.57}} | {{active_beam.get_upvalues.58}} | {{active_beam.get_upvalues.59}} |
+
+
+ {{active_beam.get_downvalues.56}} | {{active_beam.get_downvalues.57}} | {{active_beam.get_downvalues.58}} | {{active_beam.get_downvalues.59}} |
+
+
+ |
+ South Quarter
+
+
+ {{active_beam.get_upvalues.36}} | {{active_beam.get_upvalues.37}} | {{active_beam.get_upvalues.38}} | {{active_beam.get_upvalues.39}} |
+
+
+ {{active_beam.get_downvalues.36}} | {{active_beam.get_downvalues.37}} | {{active_beam.get_downvalues.38}} | {{active_beam.get_downvalues.39}} |
+
+
+ {{active_beam.get_upvalues.44}} | {{active_beam.get_upvalues.45}} | {{active_beam.get_upvalues.46}} | {{active_beam.get_upvalues.47}} |
+
+
+ {{active_beam.get_downvalues.44}} | {{active_beam.get_downvalues.45}} | {{active_beam.get_downvalues.46}} | {{active_beam.get_downvalues.47}} |
+
+
+ {{active_beam.get_upvalues.52}} | {{active_beam.get_upvalues.53}} | {{active_beam.get_upvalues.54}} | {{active_beam.get_upvalues.55}} |
+
+
+ {{active_beam.get_downvalues.52}} | {{active_beam.get_downvalues.53}} | {{active_beam.get_downvalues.54}} | {{active_beam.get_downvalues.55}} |
+
+
+ {{active_beam.get_upvalues.60}} | {{active_beam.get_upvalues.61}} | {{active_beam.get_upvalues.62}} | {{active_beam.get_upvalues.63}} |
+
+
+ {{active_beam.get_downvalues.60}} | {{active_beam.get_downvalues.61}} | {{active_beam.get_downvalues.62}} | {{active_beam.get_downvalues.63}} |
+
+
+ |
+
+
+
+
+
+
+
+ Legend |
+
+
+ RED | Disconnected |
+
+
+ ORANGE | Connected |
+
+
+ GREEN | Running
+ |
+
+
+
+
+
+
+
+ {% else %}
+
This ABS Configuration does not have a current active ABS Beam...
+ Please send Beam List to ABS modules.
+
+ {% endif %}
+
+
+
+
+
+
+ {% for beam in beams %}
+
+
+
+ {% endfor %}
+
+
+
+
+
+
+
-
-
-
-
- North Quarter
-
-
- {{beams.0.get_upvalues.0}} | {{beams.0.get_upvalues.1}} | {{beams.0.get_upvalues.2}} | {{beams.0.get_upvalues.3}} |
-
-
- {{beams.0.get_downvalues.0}} | {{beams.0.get_downvalues.1}} | {{beams.0.get_downvalues.2}} | {{beams.0.get_downvalues.3}} |
-
-
- {{beams.0.get_upvalues.8}} | {{beams.0.get_upvalues.9}} | {{beams.0.get_upvalues.10}} | {{beams.0.get_upvalues.11}} |
-
-
- {{beams.0.get_downvalues.8}} | {{beams.0.get_downvalues.9}} | {{beams.0.get_downvalues.10}} | {{beams.0.get_downvalues.11}} |
-
-
- {{beams.0.get_upvalues.16}} | {{beams.0.get_upvalues.17}} | {{beams.0.get_upvalues.18}} | {{beams.0.get_upvalues.19}} |
-
-
- {{beams.0.get_downvalues.16}} | {{beams.0.get_downvalues.17}} | {{beams.0.get_downvalues.18}} | {{beams.0.get_downvalues.19}} |
-
-
- {{beams.0.get_upvalues.24}} | {{beams.0.get_upvalues.25}} | {{beams.0.get_upvalues.26}} | {{beams.0.get_upvalues.27}} |
-
-
- {{beams.0.get_downvalues.24}} | {{beams.0.get_downvalues.25}} | {{beams.0.get_downvalues.26}} | {{beams.0.get_downvalues.27}} |
-
-
- |
- East Quarter
-
-
- {{beams.0.get_upvalues.4}} | {{beams.0.get_upvalues.5}} | {{beams.0.get_upvalues.6}} | {{beams.0.get_upvalues.7}} |
-
-
- {{beams.0.get_downvalues.4}} | {{beams.0.get_downvalues.5}} | {{beams.0.get_downvalues.6}} | {{beams.0.get_downvalues.7}} |
-
-
- {{beams.0.get_upvalues.12}} | {{beams.0.get_upvalues.13}} | {{beams.0.get_upvalues.14}} | {{beams.0.get_upvalues.15}} |
-
-
- {{beams.0.get_downvalues.12}} | {{beams.0.get_downvalues.13}} | {{beams.0.get_downvalues.14}} | {{beams.0.get_downvalues.15}} |
-
-
- {{beams.0.get_upvalues.20}} | {{beams.0.get_upvalues.21}} | {{beams.0.get_upvalues.22}} | {{beams.0.get_upvalues.23}} |
-
-
- {{beams.0.get_downvalues.20}} | {{beams.0.get_downvalues.21}} | {{beams.0.get_downvalues.22}} | {{beams.0.get_downvalues.23}} |
-
-
- {{beams.0.get_upvalues.28}} | {{beams.0.get_upvalues.29}} | {{beams.0.get_upvalues.30}} | {{beams.0.get_upvalues.31}} |
-
-
- {{beams.0.get_downvalues.28}} | {{beams.0.get_downvalues.29}} | {{beams.0.get_downvalues.30}} | {{beams.0.get_downvalues.31}} |
-
-
- |
-
-
- West Quarter
-
-
- {{beams.0.get_upvalues.32}} | {{beams.0.get_upvalues.33}} | {{beams.0.get_upvalues.34}} | {{beams.0.get_upvalues.35}} |
-
-
- {{beams.0.get_downvalues.32}} | {{beams.0.get_downvalues.33}} | {{beams.0.get_downvalues.34}} | {{beams.0.get_downvalues.35}} |
-
-
- {{beams.0.get_upvalues.40}} | {{beams.0.get_upvalues.41}} | {{beams.0.get_upvalues.42}} | {{beams.0.get_upvalues.43}} |
-
-
- {{beams.0.get_downvalues.40}} | {{beams.0.get_downvalues.41}} | {{beams.0.get_downvalues.42}} | {{beams.0.get_downvalues.43}} |
-
-
- {{beams.0.get_upvalues.48}} | {{beams.0.get_upvalues.49}} | {{beams.0.get_upvalues.50}} | {{beams.0.get_upvalues.51}} |
-
-
- {{beams.0.get_downvalues.48}} | {{beams.0.get_downvalues.49}} | {{beams.0.get_downvalues.50}} | {{beams.0.get_downvalues.51}} |
-
-
- {{beams.0.get_upvalues.56}} | {{beams.0.get_upvalues.57}} | {{beams.0.get_upvalues.58}} | {{beams.0.get_upvalues.59}} |
-
-
- {{beams.0.get_downvalues.56}} | {{beams.0.get_downvalues.57}} | {{beams.0.get_downvalues.58}} | {{beams.0.get_downvalues.59}} |
-
-
- |
- South Quarter
-
-
- {{beams.0.get_upvalues.36}} | {{beams.0.get_upvalues.37}} | {{beams.0.get_upvalues.38}} | {{beams.0.get_upvalues.39}} |
-
-
- {{beams.0.get_downvalues.36}} | {{beams.0.get_downvalues.37}} | {{beams.0.get_downvalues.38}} | {{beams.0.get_downvalues.39}} |
-
-
- {{beams.0.get_upvalues.44}} | {{beams.0.get_upvalues.45}} | {{beams.0.get_upvalues.46}} | {{beams.0.get_upvalues.47}} |
-
-
- {{beams.0.get_downvalues.44}} | {{beams.0.get_downvalues.45}} | {{beams.0.get_downvalues.46}} | {{beams.0.get_downvalues.47}} |
-
-
- {{beams.0.get_upvalues.52}} | {{beams.0.get_upvalues.53}} | {{beams.0.get_upvalues.54}} | {{beams.0.get_upvalues.55}} |
-
-
- {{beams.0.get_downvalues.52}} | {{beams.0.get_downvalues.53}} | {{beams.0.get_downvalues.54}} | {{beams.0.get_downvalues.55}} |
-
-
- {{beams.0.get_upvalues.60}} | {{beams.0.get_upvalues.61}} | {{beams.0.get_upvalues.62}} | {{beams.0.get_upvalues.63}} |
-
-
- {{beams.0.get_downvalues.60}} | {{beams.0.get_downvalues.61}} | {{beams.0.get_downvalues.62}} | {{beams.0.get_downvalues.63}} |
-
-
- |
-
-
-
-
-
- Legend |
-
-
- RED | Disconnected |
-
-
- ORANGE | Connected |
-
-
- GREEN | Running |
-
-
+
+
{% else %}
No Beams...
diff --git a/apps/abs/views.py b/apps/abs/views.py
index 3f3f1e8..6dc27c8 100644
--- a/apps/abs/views.py
+++ b/apps/abs/views.py
@@ -121,18 +121,22 @@ def get_values_from_form(form_data):
def abs_conf(request, id_conf):
- conf = get_object_or_404(ABSConfiguration, pk=id_conf)
- beams = ABSBeam.objects.filter(abs_conf=conf)
- #beams_dict = ast.literal_eval(conf.beams)
- #beams = []
- #for beam_id in range(1,len(beams_dict)+1):
- # beam = ABSBeam.objects.get(pk=beams_dict['beam'+str(beam_id)])
- # beams.append(beam)
-
- #beams_id = ast.literal_eval(conf.beams)
-
- ip=conf.device.ip_address
- port=conf.device.port_address
+ conf = get_object_or_404(ABSConfiguration, pk=id_conf)
+ beams = ABSBeam.objects.filter(abs_conf=conf)
+ active_beam_id = json.loads(conf.active_beam)
+
+ #------------Colors for Active Beam:-------------
+ modules_status = json.loads(conf.module_status)
+
+ color_status = {}
+ for status in modules_status:
+ if modules_status[status] == 2: #Running background-color: #ff0000;
+ color_status[status] = 'bgcolor=#00cc00'
+ elif modules_status[status] == 1: #Connected background-color: #ee902c;
+ color_status[status] = 'bgcolor=#ee902c'
+ else: #Disconnected background-color: #00cc00;
+ color_status[status] = 'bgcolor=#FF0000'
+ #------------------------------------------------
kwargs = {}
kwargs['status'] = conf.device.get_status_display()
@@ -146,12 +150,20 @@ def abs_conf(request, id_conf):
kwargs['no_play'] = True
kwargs['button'] = 'Edit Configuration'
-
- #kwargs['no_play'] = True
- #kwargs['beams_id'] = beams_id
+ #------------------Active Beam-----------------------
+ try:
+ active_beam_id = active_beam_id['active_beam']
+ active_beam = ABSBeam.objects.get(pk=active_beam_id)
+ kwargs['active_beam'] = active_beam
+ for beam in beams:
+ if beam.id == active_beam.id:
+ beam.color_status=color_status
+ except:
+ active_beam = ''
+ #----------------------------------------------------
kwargs['beams'] = beams
- kwargs['beam_selector'] = 0
- #kwargs['my_data'] = simplejson.dumps(beams)
+ kwargs['modules_status'] = modules_status
+ kwargs['color_status'] = color_status
kwargs['only_stop'] = True
@@ -163,14 +175,7 @@ def abs_conf(request, id_conf):
def abs_conf_edit(request, id_conf):
conf = get_object_or_404(ABSConfiguration, pk=id_conf)
- #beams_list = ast.literal_eval(conf.beams)
- #i = 1
- #beams = []
- #for b in beams_list:
- # beam = ABSBeam.objects.get(pk=beams_list['beam'+str(i)])
- # beams.append(beam)
- # i=i+1
-
+
beams = ABSBeam.objects.filter(abs_conf=conf)
print beams
@@ -230,7 +235,7 @@ def add_beam(request, id_conf):
new_beam.save()
#---Update 6bits configuration and add beam to abs configuration beams list.
new_beam.modules_6bits()
- new_beam.add_beam2list()
+ #new_beam.add_beam2list()
messages.success(request, 'Beam: "%s" has been added.' % new_beam.name)
return redirect('url_edit_abs_conf', conf.id)