##// END OF EJS Templates
Task #714: Modulo web del ABS ...
Task #714: Modulo web del ABS git-svn-id: http://jro-dev.igp.gob.pe/svn/jro_hard/radarsys/trunk/webapp@189 aa17d016-51d5-4e8b-934c-7b2bbb1bbe71

File last commit:

r108:999098167c8a
r166:d72e9c99e97e
Show More
models.py
182 lines | 5.1 KiB | text/x-python | PythonLexer
Juan C. Espinoza
Proyecto base en Django (refs #259) ...
r0 from django.db import models
Juan C. Espinoza
Updating base models and views ...
r6 from apps.main.models import Configuration
Fiorella Quino
CGS model, form, view, url and html have been added....
r4 from django.core.validators import MinValueValidator, MaxValueValidator
from apps.main.models import Device, Experiment
Fiorella Quino
Task #95: se agrego la funcion "import" para archivos .json ...
r42 from files import read_json_file
Fiorella Quino
Task #95: Se agrego funcion "export" archivo .json para cgs. Se modifico modelo de cgs, de float a integer...
r43 # Create your models here. validators=[MinValueValidator(62.5e6), MaxValueValidator(450e6)]
Fiorella Quino
CGS model, form, view, url and html have been added....
r4
Juan C. Espinoza
Updating base models and views ...
r6 class CGSConfiguration(Configuration):
Fiorella Quino
Task #95: se agrego la funcion "import" para archivos .json ...
r42
Fiorella Quino
CGS models: default values...
r98 freq0 = models.PositiveIntegerField(verbose_name='Frequency 0',validators=[MaxValueValidator(450e6)], default = 60)
freq1 = models.PositiveIntegerField(verbose_name='Frequency 1',validators=[MaxValueValidator(450e6)], default = 60)
freq2 = models.PositiveIntegerField(verbose_name='Frequency 2',validators=[MaxValueValidator(450e6)], default = 60)
freq3 = models.PositiveIntegerField(verbose_name='Frequency 3',validators=[MaxValueValidator(450e6)], default = 60)
Fiorella Quino
Task #94: edit, save, read function...
r31
def verify_frequencies(self):
return True
Fiorella Quino
Task #95: se agrego la funcion "import" para archivos .json ...
r42
def update_from_file(self, fp):
kwargs = read_json_file(fp)
if not kwargs:
return False
self.freq0 = kwargs['freq0']
self.freq1 = kwargs['freq1']
self.freq2 = kwargs['freq2']
self.freq3 = kwargs['freq3']
return True
Fiorella Quino
Task #95: Modulo CGS "parms_to_dict()"...
r58
def parms_to_dict(self):
parameters = {}
Fiorella Quino
Import Experiment Function...
r108 parameters['device_id'] = self.device.id
Fiorella Quino
Task #95: Modulo CGS "parms_to_dict()"...
r58 if self.freq0 == None or self.freq0 == '':
parameters['freq0'] = 0
else:
parameters['freq0'] = self.freq0
if self.freq1 == None or self.freq1 == '':
parameters['freq1'] = 0
else:
parameters['freq1'] = self.freq1
if self.freq2 == None or self.freq2 == '':
parameters['freq2'] = 0
else:
parameters['freq2'] = self.freq2
if self.freq3 == None or self.freq3 == '':
parameters['freq3'] = 0
else:
parameters['freq3'] = self.freq3
return parameters
Fiorella Quino
Import Experiment Function...
r108 def dict_to_parms(self, parameters):
self.freq0 = parameters['freq0']
self.freq1 = parameters['freq1']
self.freq2 = parameters['freq2']
self.freq3 = parameters['freq3']
Fiorella Quino
Task #95: Modulo CGS ...
r59 def status_device(self):
import requests
ip=self.device.ip_address
port=self.device.port_address
route = "http://" + str(ip) + ":" + str(port) + "/status/ad9548"
try:
Fiorella Quino
Task # 487: Operation View: radar_play...
r90 r = requests.get(route,timeout=0.5)
Fiorella Quino
Task #95: Modulo CGS ...
r59 except:
self.device.status = 0
self.device.save()
return self.device.status
response = str(r.text)
response = response.split(";")
icon = response[0]
status = response[-1]
print icon, status
#"icon" could be: "alert" or "okay"
if "alert" in icon:
if "Starting Up" in status: #No Esta conectado
self.device.status = 0
else:
self.device.status = 1
elif "okay" in icon:
self.device.status = 3
else:
self.device.status = 1
self.message = status
self.device.save()
return self.device.status
def read_device(self):
import requests
ip=self.device.ip_address
port=self.device.port_address
route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
try:
Fiorella Quino
Task # 487: Operation View: radar_play...
r90 frequencies = requests.get(route,timeout=0.5)
Fiorella Quino
Task #95: Modulo CGS ...
r59
except:
self.message = "Could not read CGS parameters from this device"
return None
frequencies = frequencies.json()
frequencies = frequencies.get("Frecuencias")
f0 = frequencies.get("f0")
f1 = frequencies.get("f1")
f2 = frequencies.get("f2")
f3 = frequencies.get("f3")
parms = {'freq0': f0,
'freq1': f1,
'freq2': f2,
'freq3': f3}
self.message = ""
return parms
def write_device(self):
import requests
ip=self.device.ip_address
port=self.device.port_address
#---Frequencies from form
f0 = self.freq0
f1 = self.freq1
f2 = self.freq2
f3 = self.freq3
post_data = {"f0":f0, "f1":f1, "f2":f2, "f3":f3}
route = "http://" + str(ip) + ":" + str(port) + "/frequencies/"
try:
Fiorella Quino
Task # 487: Operation View: radar_play...
r90 r = requests.post(route, post_data, timeout=0.5)
Fiorella Quino
Task #95: Modulo CGS ...
r59 except:
self.message = "Could not write CGS parameters"
return None
text = r.text
text = text.split(',')
if len(text)>1:
title = text[0]
status = text[1]
if title == "okay":
self.message = status
return 3
else:
self.message = title + ", " + status
return 1
return 1
Juan C. Espinoza
Updating base models and views ...
r6 class Meta:
db_table = 'cgs_configurations'