地址中的Python OSC通配符

地址中的Python OSC通配符,python,wildcard,osc,Python,Wildcard,Osc,我找到了一个和我差不多的话题。我想要一个通用处理程序,而不是8个地址的8个处理程序。 代码片段显示了dispatcher 1…8的调用,以及常规调用和两个处理程序 # dispatcher.map("/presets/1", preset_handler_1, preset01) # dispatcher.map("/presets/2", preset_handler_2, preset02) # dispatcher.map("/presets/3", preset_handler_3, p

我找到了一个和我差不多的话题。我想要一个通用处理程序,而不是8个地址的8个处理程序。 代码片段显示了dispatcher 1…8的调用,以及常规调用和两个处理程序

# dispatcher.map("/presets/1", preset_handler_1, preset01)
# dispatcher.map("/presets/2", preset_handler_2, preset02)
# dispatcher.map("/presets/3", preset_handler_3, preset03)
# dispatcher.map("/presets/4", preset_handler_4, preset04)
# dispatcher.map("/presets/5", preset_handler_5, preset05)
# dispatcher.map("/presets/6", preset_handler_6, preset06)
# dispatcher.map("/presets/7", preset_handler_7, preset07)
# dispatcher.map("/presets/8", preset_handler_8, preset08)
dispatcher.map("/presets/*", preset_handler, activePreset)

def preset_handler_8(unused_addr, args, val):
  if (val==1):
    print (args[0],"active")
    activePreset=8

def preset_handler(addr, args, val):
  print("phNDLER active")
  if (val==1):
    PRINT("HANDLER ACTIVE")
    preset_num=str(addr[-1])
    print (preset_num)
    activePreset=preset_num
似乎我只能在OSC消息中实现一个通配符来触发多个处理程序,反之亦然。 有没有可能在处理程序调用中使用通配符?
干杯Stefan

我也想要同样的东西,所以刚刚为python osc创建了一个pull请求。试试我的叉子,告诉我它是否适合你:

您的python osc就是我正在使用的。让我更精确地解释一下:我不想为每个预设调用定义一个处理程序(表示类似于“/Presets/…”的每个地址)我希望调用一个处理程序,在这个处理程序中,我希望执行预设特定的操作。因此,这与您的实现相反。我发现,如果我在OSC布局中有一个带有通配符的地址,每个处理程序都将被调用。那么,是否有可能反之亦然,或者在我的情况下,每个预设都需要一个处理程序?顺便说一句:Do您有关于OSC实现的文档吗?通配符处理程序已合并,因此现在您可以使用attwad创建的主项目:。您现在可以完成问题中概述的目标:dispatcher.map(“/presets/*”,preset\U处理程序,activePreset)自述文件有足够的信息可以继续使用,除了代码可以很好地阅读更多文档之外。