1 changed files with 117 additions and 0 deletions
@ -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)) |
||||
|
|
Loading…
Reference in new issue