views.py
124 lines
| 3.9 KiB
| text/x-python
|
PythonLexer
|
r380 | from django.shortcuts import redirect, render, get_object_or_404 | |
from django.contrib import messages | |||
from django.http import HttpResponse | |||
|
r391 | from django.template.loader import get_template | |
|
r380 | ||
from apps.main.models import Experiment | |||
|
r391 | from .models import ATRADConfiguration, ATRADData | |
|
r380 | ||
from .forms import ATRADConfigurationForm, UploadFileForm | |||
from apps.main.views import sidebar | |||
import requests | |||
import json | |||
import os | |||
from django.http import JsonResponse | |||
from .mqtt import client as mqtt_client | |||
from radarsys.socketconfig import sio as sio | |||
|
r391 | from datetime import timedelta | |
|
r380 | ||
def atrad_conf(request, id_conf): | |||
conf = get_object_or_404(ATRADConfiguration, pk=id_conf) | |||
ip=conf.device.ip_address | |||
port=conf.device.port_address | |||
kwargs = {} | |||
kwargs['status'] = conf.device.get_status_display() | |||
kwargs['dev_conf'] = conf | |||
kwargs['dev_conf_keys'] = ['label', | |||
'topic'] | |||
kwargs['title'] = 'ATRAD Configuration' | |||
kwargs['suptitle'] = 'Details' | |||
kwargs['button'] = 'Edit Configuration' | |||
#kwargs['no_play'] = True | |||
###### SIDEBAR ###### | |||
kwargs.update(sidebar(conf=conf)) | |||
return render(request, 'atrad_conf.html', kwargs) | |||
|
r391 | def atrad_tx(request, id_conf, id_tx): | |
kwargs = {} | |||
kwargs['id_tx'] = id_tx[-1] | |||
kwargs['title'] = 'Temperature Details' | |||
kwargs['button'] = 'Edit Configuration' | |||
time = ATRADData.objects.last().datetime | |||
|
r396 | id_stx = (int(id_tx[-1])-1)*4+1 | |
mydata = ATRADData.objects.filter(datetime__gte = (time-timedelta(hours=1)),nstx = id_stx).values('datetime','temp1_1','temp2_1','temp3_1','temp4_1','temp5_1','temp6_1', | |||
'temp1_2','temp2_2','temp3_2','temp4_2','temp5_2','temp6_2','temp1_3','temp2_3','temp3_3','temp4_3','temp5_3','temp6_3', | |||
'temp1_4','temp2_4','temp3_4','temp4_4','temp5_4','temp6_4') | |||
kwargs['data'] = json.dumps(list(mydata),default=str) | |||
|
r391 | return render(request, 'atrad_tx.html', kwargs) | |
def QuerytoStr(data): | |||
time = data[0] | |||
strdata = str(time) | |||
return strdata | |||
|
r380 | def atrad_conf_edit(request, id_conf): | |
conf = get_object_or_404(ATRADConfiguration, pk=id_conf) | |||
if request.method=='GET': | |||
form = ATRADConfigurationForm(instance=conf) | |||
if request.method=='POST': | |||
form = ATRADConfigurationForm(request.POST, instance=conf) | |||
if form.is_valid(): | |||
if conf.topic == None: conf.topic = 0 | |||
conf = form.save(commit=False) | |||
if conf.verify_frequencies(): | |||
conf.save() | |||
return redirect('url_atrad_conf', id_conf=conf.id) | |||
kwargs = {} | |||
kwargs['id_dev'] = conf.id | |||
kwargs['form'] = form | |||
kwargs['title'] = 'Device Configuration' | |||
kwargs['suptitle'] = 'Edit' | |||
kwargs['button'] = 'Save' | |||
return render(request, 'atrad_conf_edit.html', kwargs) | |||
def publish_message(request): | |||
rc, mid = mqtt_client.publish('test/data2',1) | |||
return JsonResponse({'code1': 'HIKA', 'code2': 'LUCAS'}) | |||
def monitor(request): | |||
kwargs = {'no_sidebar': True} | |||
return render(request, 'monitor.html', kwargs) | |||
|
r391 | def atrad_prueba(request): | |
keys = ['id','temp1','temp2','temp3','temp4','temp5','temp6'] | |||
time = ATRADData.objects.last().datetime | |||
|
r396 | mydata = ATRADData.objects.filter(datetime__gte = (time-timedelta(hours=1))).values('id','temp1_1','temp2_1','temp3_1','temp4_1','temp5_1','temp6_1', | |
'temp1_2','temp2_2','temp3_2','temp4_2','temp5_2','temp6_2','temp1_3','temp2_3','temp3_3','temp4_3','temp5_3','temp6_3', | |||
'temp1_4','temp2_4','temp3_4','temp4_4','temp5_4','temp6_4') | |||
|
r391 | template = get_template('prueba.html') | |
context = { | |||
'last' : time, | |||
'temps': mydata, | |||
'keys' : keys, | |||
} | |||
return HttpResponse(template.render(context, request)) | |||
|
r380 | ||
@sio.on('connection-bind') | |||
|
r384 | def atrad_connection_bind(sid, data): | |
|
r380 | print("sid:",sid,"data",data) | |
@sio.on('disconnect') | |||
|
r384 | def atrad_disconnect(sid): | |
|
r380 | print("Disconnected") | |
@sio.event | |||
|
r384 | def atrad_control_event(sid,message): | |
|
r396 | mqtt_client.publish('test/data2', json.dumps(message)) |