[Update] mainloop: Improve receiver loop to handle empty input and add stop message
[Update] osc: Refactor OSC query service initialization to run in a separate thread
This commit is contained in:
@@ -358,8 +358,11 @@ class Main:
|
|||||||
self.main_loop = True
|
self.main_loop = True
|
||||||
|
|
||||||
def receiver(self) -> None:
|
def receiver(self) -> None:
|
||||||
while True:
|
while self.main_loop:
|
||||||
received_data = sys.stdin.readline().strip()
|
received_data = sys.stdin.readline().strip()
|
||||||
|
if not received_data:
|
||||||
|
time.sleep(0.1)
|
||||||
|
continue
|
||||||
received_data = json.loads(received_data)
|
received_data = json.loads(received_data)
|
||||||
|
|
||||||
if received_data:
|
if received_data:
|
||||||
@@ -441,11 +444,13 @@ if __name__ == "__main__":
|
|||||||
main.start()
|
main.start()
|
||||||
|
|
||||||
case "test":
|
case "test":
|
||||||
for _ in range(100):
|
endpoint = "/set/enable/translation"
|
||||||
time.sleep(0.5)
|
result, status = main.handleRequest(endpoint)
|
||||||
endpoint = "/get/data/mic_host_list"
|
printResponse(status, endpoint, result)
|
||||||
result, status = main.handleRequest(endpoint)
|
endpoint = "/run/send_message_box"
|
||||||
printResponse(status, endpoint, result)
|
data = {"id":"123456", "message":"テスト"}
|
||||||
|
result, status = main.handleRequest(endpoint, data)
|
||||||
|
printResponse(status, endpoint, result)
|
||||||
|
|
||||||
case "test_all":
|
case "test_all":
|
||||||
import time
|
import time
|
||||||
@@ -648,3 +653,4 @@ if __name__ == "__main__":
|
|||||||
result, status = main.handleRequest(endpoint, data)
|
result, status = main.handleRequest(endpoint, data)
|
||||||
printResponse(status, endpoint, result)
|
printResponse(status, endpoint, result)
|
||||||
time.sleep(0.5)
|
time.sleep(0.5)
|
||||||
|
main.stop()
|
||||||
@@ -118,15 +118,17 @@ class OSCHandler:
|
|||||||
self.osc_server = osc_server.ThreadingOSCUDPServer((self.osc_server_ip_address, self.osc_server_port), osc_dispatcher)
|
self.osc_server = osc_server.ThreadingOSCUDPServer((self.osc_server_ip_address, self.osc_server_port), osc_dispatcher)
|
||||||
Thread(target=self.oscServerServe, daemon=True).start()
|
Thread(target=self.oscServerServe, daemon=True).start()
|
||||||
|
|
||||||
while True:
|
def startOSCQueryService():
|
||||||
try:
|
while True:
|
||||||
self.osc_query_service = OSCQueryService(self.osc_query_service_name, self.http_port, self.osc_server_port)
|
try:
|
||||||
for filter, target in self.dict_filter_and_target.items():
|
self.osc_query_service = OSCQueryService(self.osc_query_service_name, self.http_port, self.osc_server_port)
|
||||||
self.osc_query_service.advertise_endpoint(filter, access=OSCAccess.READWRITE_VALUE)
|
for filter, target in self.dict_filter_and_target.items():
|
||||||
break
|
self.osc_query_service.advertise_endpoint(filter, access=OSCAccess.READWRITE_VALUE)
|
||||||
except Exception:
|
break
|
||||||
errorLogging()
|
except Exception:
|
||||||
sleep(1)
|
errorLogging()
|
||||||
|
sleep(1)
|
||||||
|
Thread(target=startOSCQueryService, daemon=True).start()
|
||||||
|
|
||||||
def oscServerServe(self) -> None:
|
def oscServerServe(self) -> None:
|
||||||
# ポーリング間隔を長くして(2秒から10秒に)CPUの使用率を削減
|
# ポーリング間隔を長くして(2秒から10秒に)CPUの使用率を削減
|
||||||
|
|||||||
Reference in New Issue
Block a user