45 lines
1.7 KiB
Python
45 lines
1.7 KiB
Python
#from fastapi.responses import StreamingResponse, FileResponse
|
|
|
|
# @app.get("/events")
|
|
# async def sse_endpoint():
|
|
# """SSE endpoint to stream OPC UA updates"""
|
|
# return StreamingResponse(event_stream(), media_type="text/event-stream")
|
|
|
|
# Serve index.html
|
|
#@app.get("/")
|
|
#async def serve_frontend():
|
|
# return FileResponse("static/index.html")
|
|
|
|
# @app.get("/modes/semiAuto/{strng}")
|
|
# async def semiAutoStringEventStream(strng):
|
|
# return StreamingResponse(strng_semi_auto_data_stream(), media_type="text/event-stream")
|
|
|
|
# async def event_stream():
|
|
# # Send current value immediately if available
|
|
# if latest_value["value"] is not None:
|
|
# yield f"data: {json.dumps(latest_value)}\n\n"
|
|
|
|
# while True:
|
|
# await new_value_event.wait() # wait for new value
|
|
# data = json.dumps(latest_value)
|
|
# yield f"data: {data}\n\n"
|
|
# new_value_event.clear() # reset event and wait for next update
|
|
|
|
# async def strng_semi_auto_data_stream():
|
|
# while True:
|
|
# await new_value_event.wait()
|
|
# data
|
|
|
|
# @app.get("/getMode")
|
|
# async def set_mode(request: Request):
|
|
# client = request.app.state.opcua_client
|
|
# nsidx = request.app.state.ns_idx
|
|
# #node = client.get_node(f"ns={nsidx};s=GVL_SCADA.eRequestedControlMode")
|
|
# #node = client.get_node(f"ns={nsidx};s=GVL_SCADA.eCurrentControlMode")
|
|
# try:
|
|
# node = client.get_node(f"ns={nsidx};s=GVL_SCADA.stHMIInterface[0].stHMIInterfaceModule3.stHMIInterfaceUnit1.stP11.rValue")
|
|
# value = await node.read_value()
|
|
# print(value)
|
|
# return {"node_id": "GVL_SCADA.eCurrentControlMode", "value": value}
|
|
# except:
|
|
# return {"node_id": "GVL_SCADA.eCurrentControlMode", "value": 0.0} |