135 lines
3.7 KiB
Python
135 lines
3.7 KiB
Python
# from vrpmdv-server/vrpmdv-main import application
|
|
import sys
|
|
import json
|
|
from flask import Flask, request , send_from_directory , Response
|
|
from flask_cors import CORS
|
|
from vrpmdvdata import VRPMDV_Data
|
|
from vrpmdvmonreqschema import VRPMDV_MonReqSchema
|
|
# import ecal.core.core as ecal_core
|
|
# from proto_messages.RTService_pb2 import _RTSERVICE as rtservice
|
|
|
|
|
|
app = Flask(__name__, static_url_path='', static_folder='./build')
|
|
CORS(app) #comment this on deployment
|
|
|
|
vrpmdvdata = VRPMDV_Data()
|
|
|
|
|
|
@app.route("/", defaults={'path':''})
|
|
def serve(path):
|
|
return send_from_directory(app.static_folder,'index.html')
|
|
|
|
@app.route('/vrpmdvapi/1_0/monitorings', methods=['GET'])
|
|
def get_monitorings():
|
|
data = vrpmdvdata.getMonitorings()
|
|
resp = Response(data, status=200, mimetype='application/json')
|
|
return resp
|
|
|
|
@app.route('/vrpmdvapi/1_0/monitorings/<id>', methods=['GET'])
|
|
def get_monitoring(id):
|
|
data = vrpmdvdata.getMonitoring(id)
|
|
resp = Response(data, status=200, mimetype='application/json')
|
|
return resp
|
|
|
|
@app.route('/vrpmdvapi/1_0/monitorings/<id>', methods=['PATCH'])
|
|
def set_monitoring(id):
|
|
# vrpmreq = VRPMDV_MonReqSchema().load(request.get_json())
|
|
vrpmreq = request.get_json()
|
|
data = vrpmdvdata.setMonitoring(id, vrpmreq)
|
|
resp = Response(data, status=200, mimetype='application/json')
|
|
return resp
|
|
|
|
|
|
@app.route('/vrpmdvapi/1_0/monitorings', methods=['POST'])
|
|
def create_monitoring():
|
|
#vrpmreq = VRPMDV_MonReqSchema().load(request.get_json())
|
|
#data = vrpmdvdata.createMonitoring(vrpmreq)
|
|
data = vrpmdvdata.createMonitoring(request)
|
|
resp = Response(data, status=200, mimetype='application/json')
|
|
return resp
|
|
|
|
|
|
@app.route('/vrpmdvapi/1_0/monitorings/<id>', methods=['DELETE'])
|
|
def delete_monitoring(id):
|
|
data = vrpmdvdata.deleteMonitoring(id)
|
|
resp = Response(data, status=200, mimetype='application/json')
|
|
return resp
|
|
|
|
|
|
|
|
@app.route('/vrpmdvapi/1_0/monitorings/start', methods=['PATCH'])
|
|
def start_monitoring():
|
|
vrpmid = request.get_json()
|
|
data = vrpmdvdata.startMonitoring(vrpmid)
|
|
resp = Response(data, status=200, mimetype='application/json')
|
|
return resp
|
|
|
|
@app.route('/vrpmdvapi/1_0/monitorings/stop/', methods=['PATCH'])
|
|
def stop_monitoring():
|
|
vrpmid = request.get_json()
|
|
data = vrpmdvdata.stopMonitoring(vrpmid)
|
|
resp = Response(data, status=200, mimetype='application/json')
|
|
return resp
|
|
|
|
@app.route('/vrpmdvapi/1_0/monitoringstatus/<id>', methods=['PATCH'])
|
|
def setStatus(id):
|
|
vrpmStatus = request.get_json()
|
|
data = vrpmdvdata.setStatus(id, vrpmStatus)
|
|
resp = Response(data, status=200, mimetype='application/json')
|
|
return resp
|
|
|
|
|
|
@app.route('/vrpmdvapi/1_0/monitoringfiles', methods=['GET'])
|
|
def get_monitoringfiles():
|
|
#vrpmreq = VRPMDV_MonReqSchema().load(request.get_json())
|
|
#data = vrpmdvdata.createMonitoring(vrpmreq)
|
|
data = vrpmdvdata.getMonitoringfiles(0)
|
|
resp = Response(data, status=200, mimetype='application/json')
|
|
return resp
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
|
# initialize eCAL API. The name of our Process will be
|
|
|
|
# "Python Protobuf Subscriber"
|
|
|
|
#ecal_core.initialize(sys.argv, "Python Protobuf Subscriber")
|
|
|
|
app.run()
|
|
|
|
|
|
|
|
# if __name__ == "__main__":
|
|
|
|
|
|
|
|
# # Create a Protobuf Publisher that publishes on the topic
|
|
|
|
# # "hello_world_python_protobuf_topic". The second parameter tells eCAL which
|
|
|
|
# # datatype we are expecting to receive on that topic.
|
|
|
|
# sub = ProtoSubscriber("hello_world_python_protobuf_topic"
|
|
|
|
# , hello_world_pb2.HelloWorld)
|
|
|
|
|
|
# # Set the Callback
|
|
|
|
# sub.set_callback(callback)
|
|
|
|
|
|
|
|
# # Just don't exit
|
|
|
|
# while ecal_core.ok():
|
|
|
|
# time.sleep(0.5)
|
|
|
|
|
|
|
|
# # finalize eCAL API
|
|
|
|
# ecal_core.finalize() |