From a1eea88eb3a193deb8d16a0c587f7ee7f35c0e6b Mon Sep 17 00:00:00 2001 From: nfa Date: Thu, 23 Dec 2021 13:48:16 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E8=87=B3?= =?UTF-8?q?=20'env'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- env/views.py | 117 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 117 insertions(+) create mode 100644 env/views.py diff --git a/env/views.py b/env/views.py new file mode 100644 index 0000000..6ab9f44 --- /dev/null +++ b/env/views.py @@ -0,0 +1,117 @@ +from django.shortcuts import render +from django.http import HttpResponse,Http404,HttpResponseRedirect +from .envpost import * +from django.views.decorators.csrf import csrf_exempt +import time +from datetime import datetime +import json + +@csrf_exempt +def ntp_time(request): + spot = request.GET.get('spot') + # servaddr = request.GET.get('servaddr') + timespan = request.GET.get('timespan') + afire = request.GET.get('afire') + atemp = request.GET.get('atemp') + ahum = request.GET.get('ahum') + try: + save_deviceinfo(spot, timespan, afire, atemp, ahum) + except: + pass + return HttpResponse(str(int(time.time())+28801)) + +@csrf_exempt +def epost(request): + if request.method != 'POST': + return HttpResponse('Request method error.') + token = request.POST.get('token') + if not check_token(token): + return HttpResponse('Bad Request.') + sn = request.POST.get('sn') + if not check_spot(sn): + return HttpResponse('POST too soon.') + errcode = request.POST.get('errno') + electricity = request.POST.get('electricity') + fire = request.POST.get('fire') + water = request.POST.get('water') + temperature = request.POST.get('temperature') + humidity = request.POST.get('humidity') + envdata = {'sn':sn,'errcode':errcode, 'electricity':electricity, 'fire':fire, 'water':water, 'temperature':temperature, 'humidity':humidity} + deal_post(envdata) + return HttpResponse('Data received.') + +def index(request): + return HttpResponseRedirect('/admin/') + +def chart_index(request): + if request.method == 'POST': + topic = request.POST.get('topicval') # 统计主题 + tp = request.POST.get('tpval') # 统计分类 + spot = request.POST.get('spotval') # 地点 + statics_data = '' + if not request.POST.get('startdate'): + startdate = datetime.strftime(datetime.now() - timedelta(days=30), '%Y-%m-%d') + else: + startdate = request.POST.get('startdate') + if not request.POST.get('enddate'): + enddate = datetime.strftime(datetime.now(), '%Y-%m-%d') + else: + enddate = request.POST.get('enddate') + starttime = datetime.strptime(startdate + ' 00:00:00', '%Y-%m-%d %H:%M:%S') + endtime = datetime.strptime(enddate + ' 23:59:59', '%Y-%m-%d %H:%M:%S') + if not topic: + topic = '' + if not tp: + tp = '' + if not spot: + spot = '' + if topic == '报警统计': + statics_data = list(alarm_statics(spot, starttime, endtime)) + if topic == '采集统计': + statics_data = list(env_statics(spot, tp, starttime, endtime)) + for item in statics_data: + item['rectime'] = datetime.strftime(item['rectime'], '%Y/%m/%d %H:%M:%S') + if topic == '综合统计': + statics_data = compre_statics(starttime, endtime) + spots = parse_spots(get_spots()) + return render(request, 'chartindex.html', {'startdate': startdate, 'enddate': enddate, 'topicname': topic, + 'tpname': tp, 'statics_data': statics_data, 'spots': spots, 'spot': spot}) + else: + startdate = datetime.strftime(datetime.now()-timedelta(days=30), '%Y-%m-%d') + enddate = datetime.strftime(datetime.now(), '%Y-%m-%d') + spots = get_spots() + return render(request, 'chartindex.html', {'startdate': startdate, 'enddate': enddate, 'spots': spots}) + +def sys_cmd(request): + if request.method == 'GET': + spots = get_spots() + cmdlist = get_cmdlist() + return render(request, 'sysmanager.html', {'spots': spots, 'sptname': '', 'cmdname': '', 'cmdlist':cmdlist}) + else: + spots = get_spots() + spot = request.POST.get('spotval') + cmd = request.POST.get('cmdval') + sptname = request.POST.get('sptname') + cmdname = request.POST.get('cmdname') + param = request.POST.get('paramval') + if spot and cmd: + store_cmd(spot, cmd, param) + cmdlist = get_cmdlist() + return render(request, 'sysmanager.html', {'spot': spot, 'cmd': cmd, 'param': param, 'spots': spots, + 'sptname':sptname, 'cmdname':cmdname, 'cmdlist':cmdlist}) + +def cmd_query(request): + # 设备取命令 + cmdqueue = pop_cmd(request.GET.get('spot')) + return HttpResponse(cmdqueue) + +def cmd_queue(request): + # 获取当前未执行命令列表 + cmdlist = get_cmdlist() + return HttpResponse(json.dumps({'cmdlist':cmdlist})) + +def query_deviceinfo(request): + # 管理端获取最新定设备参数 + deviceinfo = get_deviceinfo(request.GET.get('spot')) + return HttpResponse(json.dumps(deviceinfo)) +