diff --git a/apps/cgs/models.py b/apps/cgs/models.py
index 61b2463..664512b 100644
--- a/apps/cgs/models.py
+++ b/apps/cgs/models.py
@@ -20,6 +20,10 @@ class CGSConfiguration(Configuration):
#clk_in = models.PositiveIntegerField(default=10e6)
#mult = models.PositiveIntegerField(default=40)
#div = models.PositiveIntegerField(default=1)
+
+ def verify_frequencies(self):
+
+ return True
class Meta:
diff --git a/apps/cgs/templates/cgs_conf.html b/apps/cgs/templates/cgs_conf.html
index 6a4530c..99944d7 100644
--- a/apps/cgs/templates/cgs_conf.html
+++ b/apps/cgs/templates/cgs_conf.html
@@ -1,11 +1 @@
-{% extends "dev_conf.html" %}
-
-{% block extra-js%}
-
-{% endblock %}
\ No newline at end of file
+{% extends "dev_conf.html" %}
\ No newline at end of file
diff --git a/apps/cgs/templates/cgs_conf_edit.html b/apps/cgs/templates/cgs_conf_edit.html
index 029ea49..ae0e31c 100644
--- a/apps/cgs/templates/cgs_conf_edit.html
+++ b/apps/cgs/templates/cgs_conf_edit.html
@@ -1 +1,83 @@
-{% extends "dev_conf_edit.html" %}
\ No newline at end of file
+{% extends "dev_conf_edit.html" %}
+{% load bootstrap3 %}
+{% load static %}
+{% load main_tags %}
+
+{% block extra-js%}
+
+
+{% endblock %}
\ No newline at end of file
diff --git a/apps/cgs/urls.py b/apps/cgs/urls.py
index 80fd729..0e94589 100644
--- a/apps/cgs/urls.py
+++ b/apps/cgs/urls.py
@@ -1,12 +1,14 @@
from django.conf.urls import url
urlpatterns = (
- #url(r'^configuration/$', 'apps.cgs.views.configurate_frequencies', name='new_device'),
-# url(r'^(?P-?\d+)/$', 'apps.cgs.views.configurate_frequencies', name='new_device'),
- url(r'^(?P-?\d+)/$', 'apps.main.views.dev_conf', name='url_cgs_conf'),
- url(r'^(?P-?\d+)/edit/$', 'apps.main.views.dev_conf_edit', name='url_edit_cgs_conf'),
- url(r'^(?P-?\d+)/write/$', 'apps.main.views.dev_conf_write', name='url_write_cgs_conf'),
- url(r'^(?P-?\d+)/read/$', 'apps.main.views.dev_conf_read', name='url_read_cgs_conf'),
+ url(r'^(?P-?\d+)/$', 'apps.cgs.views.cgs_conf', name='url_cgs_conf'),
+ url(r'^(?P-?\d+)/edit/$', 'apps.cgs.views.cgs_conf_edit', name='url_edit_cgs_conf'),
+ #url(r'^(?P-?\d+)/(?P-?\d+)/$', 'apps.cgs.views.cgs_conf', name='url_cgs_conf'),
+ url(r'^(?P-?\d+)/edit/$', 'apps.cgs.views.cgs_conf_edit', name='url_edit_cgs_conf'),
+ url(r'^(?P-?\d+)/write/$', 'apps.cgs.views.cgs_conf_write', name='url_write_cgs_conf'),
+ url(r'^(?P-?\d+)/read/$', 'apps.cgs.views.cgs_conf_read', name='url_read_cgs_conf'),
+ #url(r'^(?P-?\d+)/write/$', 'apps.main.views.dev_conf_write', name='url_write_cgs_conf'),
+ #url(r'^(?P-?\d+)/read/$', 'apps.main.views.dev_conf_read', name='url_read_cgs_conf'),
url(r'^(?P-?\d+)/import/$', 'apps.main.views.dev_conf_import', name='url_import_cgs_conf'),
url(r'^(?P-?\d+)/export/$', 'apps.main.views.dev_conf_export', name='url_export_cgs_conf'),
)
diff --git a/apps/cgs/views.py b/apps/cgs/views.py
index ce05a42..10bd4a8 100644
--- a/apps/cgs/views.py
+++ b/apps/cgs/views.py
@@ -1,14 +1,22 @@
from django.shortcuts import redirect, render, get_object_or_404
+from django.contrib import messages
from apps.main.models import Experiment, Configuration
from .models import CGSConfiguration
+
from .forms import CGSConfigurationForm
+from apps.main.views import sidebar
+
+import requests
# Create your views here.
def cgs_conf(request, id_conf):
conf = get_object_or_404(CGSConfiguration, pk=id_conf)
+ ip=conf.device.ip_address
+ port=conf.device.port_address
+
kwargs = {}
kwargs['dev_conf'] = conf
kwargs['dev_conf_keys'] = ['experiment', 'device',
@@ -21,17 +29,7 @@ def cgs_conf(request, id_conf):
kwargs['button'] = 'Edit Configuration'
###### SIDEBAR ######
- experiments = Experiment.objects.filter(campaign=conf.experiment.campaign)
- configurations = Configuration.objects.filter(experiment=conf.experiment)
-
- exp_keys = ['id', 'campaign', 'name', 'start_time', 'end_time']
- conf_keys = ['id', 'device__name', 'device__device_type__name', 'device__ip_address']
-
- kwargs['experiment_keys'] = exp_keys[1:]
- kwargs['experiments'] = experiments.values(*exp_keys)
-
- kwargs['configuration_keys'] = conf_keys[1:]
- kwargs['configurations'] = configurations.values(*conf_keys)
+ kwargs.update(sidebar(conf))
return render(request, 'cgs_conf.html', kwargs)
@@ -46,13 +44,117 @@ def cgs_conf_edit(request, id_conf):
form = CGSConfigurationForm(request.POST, instance=conf)
if form.is_valid():
- form.save()
- return redirect('url_cgs_conf', id_conf=id_conf)
+ conf = form.save(commit=False)
+
+ if conf.verify_frequencies():
+
+ conf.save()
+ return redirect('url_cgs_conf', id_conf=conf.id)
+
+ ##ERRORS
kwargs = {}
+ kwargs['id_dev'] = conf.id
kwargs['form'] = form
kwargs['title'] = 'Device Configuration'
kwargs['suptitle'] = 'Edit'
- kwargs['button'] = 'Update'
+ kwargs['button'] = 'Save'
+
+ ###### SIDEBAR ######
+ kwargs.update(sidebar(conf))
+
+ return render(request, 'cgs_conf_edit.html', kwargs)
+
+def cgs_conf_write(request, id_conf):
+
+ conf = get_object_or_404(CGSConfiguration, pk=id_conf)
+ ip=conf.device.ip_address
+ port=conf.device.port_address
+
+ #Frequencies from form
+ f0 = conf.freq0
+ f1 = conf.freq1
+ f2 = conf.freq2
+ f3 = conf.freq3
+
+ post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
+ route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
+ r = requests.post(route, post_data)
+ print r.url
+ print r.text
+
+
+
+
+ return redirect('url_cgs_conf', id_conf=conf.id)
+
+def cgs_conf_read(request, id_conf):
+
+ conf = get_object_or_404(CGSConfiguration, pk=id_conf)
+ ip=conf.device.ip_address
+ port=conf.device.port_address
+
+ if request.method=='POST':
+ form = CGSConfigurationForm(request.POST, instance=conf)
+
+ if form.is_valid():
+ cgs_model = form.save(commit=False)
+
+ if cgs_model.verify_frequencies():
+
+ cgs_model.save()
+ return redirect('url_cgs_conf', id_conf=conf.id)
+
+ messages.error(request, "Parameters could not be saved. Invalid parameters")
+
+ data = {}
+
+
+ if request.method=='GET':
+ #r: response = icon, status
+ route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
+ r = requests.get(route)
+ response = str(r.text)
+ response = response.split(";")
+ icon = response[0]
+ status = response[-1]
+ #"icon" could be: "alert" or "okay"
+ if "okay" in icon:
+ messages.success(request, status)
+ else:
+ messages.error(request, status)
+ #Get Frequencies
+ frequencies = requests.get('http://10.10.10.175:8080/frequencies/')
+ frequencies = frequencies.json()
+ frequencies = frequencies.get("Frecuencias")
+ f0 = frequencies.get("f0")
+ f1 = frequencies.get("f1")
+ f2 = frequencies.get("f2")
+ f3 = frequencies.get("f3")
+ print f0,f1,f2,f3
+
+ if not response:
+ messages.error(request, "Could not read parameters from Device")
+ return redirect('url_cgs_conf', id_conf=conf.id)
+
+ data = {'experiment' : conf.experiment.id,
+ 'device' : conf.device.id,
+ 'freq0' : f0,
+ 'freq1' : f1,
+ 'freq2' : f2,
+ 'freq3' : f3,
+ }
+
+ form = CGSConfigurationForm(data)
+
+ kwargs = {}
+ kwargs['id_dev'] = conf.id
+ kwargs['form'] = form
+ kwargs['title'] = 'Device Configuration'
+ kwargs['suptitle'] = 'Parameters read from device'
+ kwargs['button'] = 'Save'
+
+ ###### SIDEBAR ######
+ kwargs.update(sidebar(conf))
return render(request, 'cgs_conf_edit.html', kwargs)
\ No newline at end of file