diff options
author | dk-15 | 2017-05-22 16:28:20 +0530 |
---|---|---|
committer | dk-15 | 2017-05-22 16:29:48 +0530 |
commit | f2470f4a71aec65825c4dc2ce710f6bbf53a5e3d (patch) | |
tree | f615d42e2ac6ee3751db1df77ab310d1e36c024e /myadmin/views.py | |
parent | c6e01e832025dc9f3082350c790cef914807c6c2 (diff) | |
download | SBHS-2018-Rpi-f2470f4a71aec65825c4dc2ce710f6bbf53a5e3d.tar.gz SBHS-2018-Rpi-f2470f4a71aec65825c4dc2ce710f6bbf53a5e3d.tar.bz2 SBHS-2018-Rpi-f2470f4a71aec65825c4dc2ce710f6bbf53a5e3d.zip |
Write views for admin/testing
Diffstat (limited to 'myadmin/views.py')
-rw-r--r-- | myadmin/views.py | 124 |
1 files changed, 120 insertions, 4 deletions
diff --git a/myadmin/views.py b/myadmin/views.py index 37dc7fc..b868c4f 100644 --- a/myadmin/views.py +++ b/myadmin/views.py @@ -1,9 +1,10 @@ from django.shortcuts import render, redirect -from django.http import Http404 +from django.http import Http404,HttpResponse from django.contrib.auth.decorators import login_required +from django.views.decorators.csrf import csrf_exempt from sbhs_server.tables.models import Board, Booking -from sbhs_server import settings -import subprocess +from sbhs_server import settings,sbhs +import subprocess,json,serial,os # Create your views here. def checkadmin(req): @@ -79,4 +80,119 @@ def testing(req): checkadmin(req) boards = Board.objects.order_by('online').all() allotment_mode = "Random" if Board.can_do_random_allotment() else "Workshop" - return render(req, 'admin/testexp.html', {"boards": boards, "allotment_mode": allotment_mode})
\ No newline at end of file + return render(req, 'admin/testexp.html', {"boards": boards, "allotment_mode": allotment_mode}) + +@csrf_exempt +def reset_device(req): + """Resets the device to fan = 100 and heat = 0 + Takes mid as paramter + Returns status_code = 200, data={temp:temp of the device} if succesful + else + status_code = 500 , data={error:errorMessage} + """ + mid=int(req.POST.get('mid')) + usb_path=settings.MID_PORT_MAP.get(mid,None) + + if usb_path is None: + retVal={"status_code":400,"message":"Invalid MID"} + return HttpResponse(json.dumps(retVal)) + + #trying to connect to device + + # check if SBHS device is connected + if not os.path.exists(usb_path): + retVal={"status_code":500,"message":"Device Not connected to defined USB Port"} + return HttpResponse(json.dumps(retVal)) + + try: + board = sbhs.Sbhs() + board.machine_id=mid + board.boardcon= serial.Serial(port=usb_path, baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=2) #orignal stopbits = 1 + board.status = 1 + if board.reset_board(): + retVal={"status_code":200,"message":board.getTemp()} + return HttpResponse(json.dumps(retVal)) + else: + retVal={"status_code":500,"message":"Could not set the parameters.Try again."} + return HttpResponse(json.dumps(retVal)) + except serial.serialutil.SerialException: + retVal={"status_code":500,"message":"Could not connect to the device.Try again."} + return HttpResponse(json.dumps(retVal)) + + +@csrf_exempt +def set_device_params(req): + """Sets the device parameters as per the arguments sent + Takes mid,fan,heat as paramter + Returns status_code = 200, data={temp:temp of the device} if succesful + else + status_code = 500 , data={error:errorMessage} + """ + mid=int(req.POST.get('mid')) + fan=int(req.POST.get('fan')) + heat=int(req.POST.get('heat')) + usb_path=settings.MID_PORT_MAP.get(mid,None) + + if usb_path is None: + retVal={"status_code":400,"message":"Invalid MID"} + return HttpResponse(json.dumps(retVal)) + + #trying to connect to device + + # check if SBHS device is connected + if not os.path.exists(usb_path): + retVal={"status_code":500,"message":"Device Not connected to defined USB Port"} + return HttpResponse(json.dumps(retVal)) + + try: + board = sbhs.Sbhs() + board.machine_id=mid + board.boardcon= serial.Serial(port=usb_path, baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=2) #orignal stopbits = 1 + board.status = 1 + if board.setFan(fan) and board.setHeat(heat): + retVal={"status_code":200,"message":board.getTemp()} + return HttpResponse(json.dumps(retVal)) + else: + retVal={"status_code":500,"message":"Could not set the parameters.Try again."} + return HttpResponse(json.dumps(retVal)) + except serial.serialutil.SerialException: + retVal={"status_code":500,"message":"Could not connect to the device.Try again."} + return HttpResponse(json.dumps(retVal)) + +@csrf_exempt +def get_device_temp(req): + """Sets the device parameters as per the arguments sent + Takes mid,fan,heat as paramter + Returns status_code = 200, data={temp:temp of the device} if succesful + else + status_code = 500 , data={error:errorMessage} + """ + mid=int(req.POST.get('mid')) + usb_path=settings.MID_PORT_MAP.get(mid,None) + + if usb_path is None: + retVal={"status_code":400,"message":"Invalid MID"} + return HttpResponse(json.dumps(retVal)) + + #trying to connect to device + + # check if SBHS device is connected + if not os.path.exists(usb_path): + retVal={"status_code":500,"message":"Device Not connected to defined USB Port"} + return HttpResponse(json.dumps(retVal)) + + try: + board = sbhs.Sbhs() + board.machine_id=mid + board.boardcon= serial.Serial(port=usb_path, baudrate=9600, bytesize=8, parity='N', stopbits=1, timeout=2) #orignal stopbits = 1 + board.status = 1 + temp=board.getTemp() + if temp!=0.0: + retVal={"status_code":200,"message":temp} + return HttpResponse(json.dumps(retVal)) + else: + retVal={"status_code":500,"message":"Could not set the parameters.Try again."} + return HttpResponse(json.dumps(retVal)) + except serial.serialutil.SerialException: + retVal={"status_code":500,"message":"Could not connect to the device.Try again."} + return HttpResponse(json.dumps(retVal)) |