summaryrefslogtreecommitdiff
path: root/myadmin
diff options
context:
space:
mode:
authordk-152017-05-22 16:28:20 +0530
committerdk-152017-05-22 16:29:48 +0530
commitf2470f4a71aec65825c4dc2ce710f6bbf53a5e3d (patch)
treef615d42e2ac6ee3751db1df77ab310d1e36c024e /myadmin
parentc6e01e832025dc9f3082350c790cef914807c6c2 (diff)
downloadSBHS-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.py4
-rw-r--r--myadmin/views.py124
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))