32 lines
1.0 KiB
Python
32 lines
1.0 KiB
Python
from osc4py3.as_eventloop import *
|
|
#from osc4py3 import oscdispatch
|
|
import time
|
|
from osc4py3 import oscmethod as osm
|
|
|
|
# Define the OSC message handler
|
|
def joint_states_handler(address):
|
|
time.sleep(1) # Simulate processing time
|
|
print(f"Received OSC message at {address}")
|
|
|
|
# Start the OSC system
|
|
osc_startup()
|
|
|
|
# Create an OSC UDP server
|
|
osc_udp_server("127.0.0.1", 8000, "osc_server")
|
|
|
|
# Register handlers for different joint state messages
|
|
osc_method("/joint_states", joint_states_handler, argscheme=osm.OSCARG_ADDRESS)
|
|
osc_method("/joint_states/*/position", joint_states_handler,argscheme=osm.OSCARG_ADDRESS)
|
|
osc_method("/joint_states/*/velocity", joint_states_handler,argscheme=osm.OSCARG_ADDRESS)
|
|
osc_method("/joint_states/*/effort", joint_states_handler,argscheme=osm.OSCARG_ADDRESS)
|
|
|
|
print("OSC Receiver is listening on 127.0.0.1:8000...\nPress Ctrl+C to exit.")
|
|
|
|
# Keep the server running
|
|
try:
|
|
while True:
|
|
osc_process()
|
|
except KeyboardInterrupt:
|
|
print("\nShutting down OSC receiver...")
|
|
osc_terminate()
|