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")