From bdaccdf421c24d7913138572cb54aa4218b5eaad Mon Sep 17 00:00:00 2001 From: misyaguziya <53165965+misyaguziya@users.noreply.github.com> Date: Sun, 25 May 2025 22:15:53 +0900 Subject: [PATCH] [Update] OSC: Improve error handling and refactor OSC server initialization --- src-python/models/osc/osc.py | 32 ++++++++++++++++++++++++++------ 1 file changed, 26 insertions(+), 6 deletions(-) diff --git a/src-python/models/osc/osc.py b/src-python/models/osc/osc.py index 9e995b21..ef4e1152 100644 --- a/src-python/models/osc/osc.py +++ b/src-python/models/osc/osc.py @@ -7,7 +7,13 @@ from tinyoscquery.queryservice import OSCQueryService from tinyoscquery.query import OSCQueryBrowser, OSCQueryClient from tinyoscquery.utility import get_open_udp_port, get_open_tcp_port from tinyoscquery.shared.node import OSCAccess -from utils import errorLogging + +try: + from utils import errorLogging +except ImportError: + def errorLogging(): + import traceback + print("Error occurred:", traceback.format_exc()) class OSCHandler: def __init__(self, ip_address="127.0.0.1", port=9000) -> None: @@ -107,7 +113,7 @@ class OSCHandler: osc_dispatcher = dispatcher.Dispatcher() for filter, target in self.dict_filter_and_target.items(): osc_dispatcher.map(filter, target) - self.osc_server = osc_server.ThreadingOSCUDPServer((self.osc_server_ip_address, self.osc_server_port), osc_dispatcher, asyncio.get_event_loop()) + self.osc_server = osc_server.ThreadingOSCUDPServer((self.osc_server_ip_address, self.osc_server_port), osc_dispatcher) Thread(target=self.oscServerServe, daemon=True).start() while True: @@ -142,12 +148,26 @@ class OSCHandler: if __name__ == "__main__": handler = OSCHandler() - handler.receiveOscParameters({ - "/avatar/parameters/MuteSelf": print, + handler.setDictFilterAndTarget({ + "/avatar/parameters/MuteSelf": lambda address, *args: print(f"Received {address} with args {args}"), + "/chatbox/typing": lambda address, *args: print(f"Received {address} with args {args}"), + "/chatbox/input": lambda address, *args: print(f"Received {address} with args {args}"), }) + handler.receiveOscParameters() sleep(5) handler.sendTyping(True) sleep(1) - handler.sendMessage(message="Hello World", notification=True) - sleep(60) + handler.sendMessage(message="Hello World 1", notification=True) + sleep(10) + + print("IP address changed to 192.168.193.2") + handler.setOscIpAddress("192.168.193.2") + sleep(5) + handler.sendMessage(message="Hello World 2", notification=True) + + print("IP address changed to 127.0.0.1") + handler.setOscIpAddress("127.0.0.1") + sleep(5) + handler.sendMessage(message="Hello World 3", notification=True) + sleep(10) handler.oscServerStop() \ No newline at end of file