improved send function logic to make there be 1 function only

This commit is contained in:
Ziad-I
2024-06-20 20:55:56 +03:00
committed by Dion Moult
parent d2a27999ba
commit f6c30f2ddf
4 changed files with 17 additions and 20 deletions
@@ -36,8 +36,6 @@ class WebNamespace(socketio.AsyncNamespace):
print(f"Web client disconnected: {sid}")
async def on_web_operator(self, sid, data):
print(f"Web client {sid} operator: {data}")
# TODO: need to add event listeners in blenderbim side for event web_operator
await sio.emit("web_operator", data["operator"], namespace="/blender", room=data["blenderId"])
@@ -59,13 +57,13 @@ class BlenderNamespace(socketio.AsyncNamespace):
del blender_messages[sid]
await sio.emit("blender_disconnect", sid, namespace="/web")
async def on_default_data(self, sid, data):
print(f"Default data from Blender client {sid}: {data}")
async def on_data(self, sid, data):
print(f"Data from Blender client {sid}")
# blender_messages[sid]["default_data"] = data
# await sio.emit("default_data", {"blenderId": sid, "data": data}, namespace="/web")
async def on_csv_data(self, sid, data):
print(f"CSV data from Blender client {sid}:")
print(f"CSV data from Blender client {sid}")
# Store the message and forward it to the web client
blender_messages[sid]["csv_data"] = data
await sio.emit("csv_data", {"blenderId": sid, "data": data}, namespace="/web")
+1 -1
View File
@@ -192,7 +192,7 @@ def refresh_ui_data():
bpy.context.scene.DocProperties.should_draw_decorations = bpy.context.scene.DocProperties.should_draw_decorations
if bpy.context.scene.WebProperties.is_connected:
tool.Web.send_default_webui_data()
tool.Web.send_webui_data()
@persistent
@@ -254,7 +254,7 @@ class ExportIfcCsv(bpy.types.Operator):
schedule_creator = scheduler.Scheduler()
schedule_creator.schedule(self.filepath, tool.Drawing.get_path_with_ext(self.filepath, "svg"))
if props.format == "web":
tool.Web.send_webui_data(ifc_csv.dataframe.to_csv(index=False), event="csv_data")
tool.Web.send_webui_data(extra_data=ifc_csv.dataframe.to_csv(index=False), event="csv_data")
self.report({"INFO"}, f"Data is exported to {props.format.upper()}.")
return {"FINISHED"}
+12 -13
View File
@@ -85,7 +85,7 @@ class Web(blenderbim.core.tool.Web):
ws_thread.run_coro(cls.sio_connect(ws_url))
cls.set_is_connected(True)
bpy.app.timers.register(cls.check_operator_queue)
cls.send_default_webui_data()
cls.send_webui_data()
@classmethod
def disconnect_websocket_server(cls):
@@ -118,19 +118,18 @@ class Web(blenderbim.core.tool.Web):
print("Websocket server terminated successfully")
@classmethod
def send_default_webui_data(cls, event="default_data", namespace="/blender"):
if not WebData.is_loaded:
WebData.load()
cls.send_webui_data(WebData.data, event=event, namespace=namespace)
@classmethod
def send_webui_data(cls, data, event="data", namespace="/blender"):
def send_webui_data(cls, extra_data=None, event="data", namespace="/blender", use_web_data=True):
global ws_thread
# TODO: find a better way to include ifc_filename with the csv data
data = {
"IFC_File": bpy.context.scene.BIMProperties.ifc_file,
"data": data,
}
data = {}
if use_web_data:
if not WebData.is_loaded:
WebData.load()
data = WebData.data
if extra_data is not None:
data["data"] = extra_data
if ws_thread is not None and bpy.context.scene.WebProperties.is_connected:
ws_thread.run_coro(cls.sio_send(data, event, namespace))