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 | |
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')
-rw-r--r-- | myadmin/urls.py | 4 | ||||
-rw-r--r-- | myadmin/views.py | 124 |
2 files changed, 124 insertions, 4 deletions
diff --git a/myadmin/urls.py b/myadmin/urls.py index 39a24b2..c1831e5 100644 --- a/myadmin/urls.py +++ b/myadmin/urls.py @@ -8,6 +8,10 @@ urlpatterns = [ url(r'^admin/webcam/?$', views.webcam_index, name='admin_webcam'), url(r'^admin/profile/([0-9]+)/?$', views.profile, name='admin_profile'), url(r'^admin/testing/?$', views.testing, name='admin_testing'), + url(r'^admin/resetdevice/?$', views.reset_device, name='admin_reset_device'), + url(r'^admin/setdevice/?$', views.set_device_params, name='admin_set_device'), + url(r'^admin/gettemp/?$', views.get_device_temp, name='admin_get_temp'), + url(r'^admin/toggle_allotment_mode/?$', views.toggle_allotment_mode, name='admin_toggle_allotment_mode'), ]
\ No newline at end of file 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)) |