views.py
107 lines
| 2.7 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 | |||
from apps.main.models import Experiment | |||
from .models import ATRADConfiguration | |||
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 | |||
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) | |||
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) | |||
import os | |||
from django.http import HttpResponse# | |||
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) | |||
def prueba(request): | |||
kwargs = {'no_sidebar': True} | |||
return render(request, 'prueba.html', kwargs) | |||
@sio.on('connection-bind') | |||
def connection_bind(sid, data): | |||
print("sid:",sid,"data",data) | |||
@sio.on('disconnect') | |||
def test_disconnect(sid): | |||
print("Disconnected") | |||
@sio.event | |||
def control_event(sid,message): | |||
mqtt_client.publish('test/data2',message['data']) | |||
def hello(data): | |||
try: | |||
rc, mid = mqtt_client.publish('test/data2', 'Hello') | |||
sio.emit('test', data={'topic':mid, 'status': 'Not Running'}) | |||
except: | |||
print('ERROR', flush=True) | |||
return HttpResponse("Hello") |