Python-osc, add_arg在for循环中



我想在不知道列表确切长度的情况下将add_arg添加到OSC消息中。
问题是,我想避免像这样输入osc消息:

probabilityMSG.add_arg(classProbability[0], arg_type='f')
probabilityMSG.add_arg(classProbability[1], arg_type='f')
probabilityMSG.add_arg(classProbability[2], arg_type='f')
probabilityMSG.add_arg(classProbability[3], arg_type='f')

我试着把add_arg放到for循环中。下面是我的函数:

def send_OSC(overallClassProbability, predictedClass, predictedParams):
ipAddress = "127.0.0.1"
port = 5005
client = udp_client.SimpleUDPClient(ipAddress, port)
classProbability = overallClassProbability.flatten()
probabilityMSG = osc_message_builder.OscMessageBuilder(address = '/percentage')
classMSG = osc_message_builder.OscMessageBuilder(address= '/class')
paramsMSG = osc_message_builder.OscMessageBuilder(address= '/params')
# -------
for i in range(len(classProbability)):
probabilityMSG.add_arg(classProbability[i], arg_type='f')
# -------
for i in range(len(predictedParams)):
paramsMSG.add_arg(predictedParams[i], arg_type='f')
# -------
classMSG.add_arg(predictedClass, arg_type='i')
# -------
paramsMSG = paramsMSG.build()
classMSG = classMSG.build()
probabilityMSG = probabilityMSG.build()
client.send(paramsMSG)
client.send(classMSG)
client.send(probabilityMSG)

但是我没有这个技术出来…
似乎python-osc无法处理这个

你知道吗?

编辑:我应该写一个自我修改的Python代码吗?我正在考虑制作一个脚本,可以修改OSC消息发送脚本。

我指的是这篇文章的自我修改Python脚本。

我不知道上次为什么不行。但是,是的,在for循环中使用add_arg似乎工作得很好。

的例子:

for i in range(len(classProbability)):
probabilityMSG.add_arg(classProbability[i], arg_type='f')

然而,我没有在python-osc的文档中找到任何提及。也许这对高级用户来说是显而易见的。

最新更新