summaryrefslogtreecommitdiffstats
path: root/pywrap/html_server.py
diff options
context:
space:
mode:
authorVasilii Chernov <vchernov@inr.ru>2016-02-22 12:21:04 +0100
committerVasilii Chernov <vchernov@inr.ru>2016-02-22 12:21:04 +0100
commit2c2a714e0615d6aff3773fabfd3b93e8672a40a1 (patch)
treee482ce7d9c6de21dac5999fb2af2cab30208ec32 /pywrap/html_server.py
parentb16fd97ffcaf9e7bd3fd52e505adbed2ffd0c768 (diff)
downloadpcitool-2c2a714e0615d6aff3773fabfd3b93e8672a40a1.tar.gz
pcitool-2c2a714e0615d6aff3773fabfd3b93e8672a40a1.tar.bz2
pcitool-2c2a714e0615d6aff3773fabfd3b93e8672a40a1.tar.xz
pcitool-2c2a714e0615d6aff3773fabfd3b93e8672a40a1.zip
Add device html server
Diffstat (limited to 'pywrap/html_server.py')
-rw-r--r--pywrap/html_server.py105
1 files changed, 105 insertions, 0 deletions
diff --git a/pywrap/html_server.py b/pywrap/html_server.py
new file mode 100644
index 0000000..1731cae
--- /dev/null
+++ b/pywrap/html_server.py
@@ -0,0 +1,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()