summaryrefslogtreecommitdiffstats
path: root/pywrap/html_server.py
blob: 1731cae86c2d8fdfc57a9fca43b9e79102c434c7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
import pcipywrap
import json

#import flask elements
from flask import render_template
from flask import Flask
from flask import request
from flask import url_for
from flask import redirect

app = Flask(__name__)
pcilib = 0;
device = '/dev/fpga0'
model = 'test_pywrap'

@app.route('/set_property')
def set_property():
   val = request.args.get('val')
   prop = request.args.get('prop')

   try:
      pcilib.set_property(float(val), str(prop))
      return redirect(url_for('get_property_list', branch=prop))
   except Exception as e:
      return str(e)
   
@app.route('/write_register')
def write_register():
   val = request.args.get('val')
   name = request.args.get('name')
   bank = request.args.get('bank')

   try:
      pcilib.write_register(float(val), str(name), str(bank))
      return redirect(url_for('get_register_info', name=name, bank=bank))
   except Exception as e:
      return str(e)

@app.route('/register_info')
def get_register_info():
   name = request.args.get('name')
   bank = request.args.get('bank')
   
   reg_info = 0
   value = 0
   try:
      reg_info = pcilib.get_register_info(str(name), str(bank))
      value = pcilib.read_register(str(name), str(bank))
   except Exception as e:
      return str(e)
   return render_template('register_info.html',
                          register=reg_info,
                          value=value)
                             

@app.route("/registers_list")
def get_registers_list():
   reg_list = 0
   try:
      reg_list = pcilib.get_registers_list()
   except Exception as e:
      return str(e)

   return render_template('registers_list.html',
                          registers=reg_list,
                         )

@app.route("/property_info")
def get_property_list():
   branch = request.args.get('branch')
   if not branch is None:
      branch = str(branch)
   
   prop_info = 0
   try:
      prop_info = pcilib.get_property_list(branch)
   except Exception as e:
      return str(e)
   
   value = -1
   if (len(prop_info) == 1) and not ('childs' in (prop_info[0])['flags']):
      try:
         branch = (prop_info[0])['path']
         value = pcilib.get_property(branch)
      except Exception as e:
         return str(e)

   return render_template('property_info.html',
                          value = value,
                          branch = branch,
                          properties = prop_info,
                          json = json
                         )
                         
@app.route("/")
def greet():
   return render_template('base.html',
                          device = device,
                          model = model)

if __name__ == "__main__":
   pcilib = pcipywrap.Pcipywrap(device, model)
   pcipywrap.__redirect_logs_to_exeption()
   app.debug = True
   app.run()