2016-11-07 60 views
0

我在Python 2.7中编码,以适应从我的ipad到我的锉刀pi使用应用商店中的'touchOSC'应用的OSC通信。 (这不是音乐或midi,而是简单地访问值来控制步进电机等)。我使用Windows编码,然后我将.py传输到我的锉刀pi(这里不是问题)。我使用下面代码中的名称IP地址来设置推子与OSC的布局软件的联系。另外,我在touchOSC提供的软件中将推子的范围值设置为0到1.OSC适当的推子控制算法

问题是我在我的ipad上调用推子时只接收零。我希望看到的值是浮动值从0增加到1。我相信我需要使用某种排序范围功能?这是问题,如何指定我希望推子在下面的代码中增加?

现在的代码是:

from OSC import OSCServer,OSCClient, OSCMessage 

server = OSCServer(("192.168.0.8", 8000)) 
client = OSCClient() 

def handle_timeout(self): 
    print ("I'm IDLE") 
#This here is just to do something while the script recieves no information.... 
server.handle_timeout = types.MethodType(handle_timeout, server) 

def fader_0(path, tags, args, source): 
    value=int(args[0]) # Value is the variable that will transform the input from the faders into whole numbers(easier to deal with) 
    print "Fader Value:", value 

server.addMsgHandler("/1/fader1", fader) 

我的问题关于Def fader_0(path, tags, args, source) 当我输入:value = int(args[0]),我收到一个零,当我调整上通过触摸OSC我的iPad推子。这很明显;但是,我希望在推子增加时访问0和1之间的浮点数。

我假设的代码将是:价值= float(args[someLoop])可能像value = float(args[range(0,1,.125)])

预先感谢您。

+0

'range'不起作用与浮动步骤。你想要做什么? –

+0

是的,你是对的。我只想编辑代码行,以便在调用推子时不发送零,而是发送一个与推子增加相对应的浮点值列表。也许这将是一个while循环? '而真实。如果参数<1.值+ = 0.125。其他:休息。打印值' –

+0

我不太确定这是否是重复的,因为它是一个可控增量。我的问题是如何通过滑块增加值?我想知道如果一个while循环会做到这一点,或者如果有更好的方式,如使用计数器。我很抱歉,但我没有太多的专业知识通过OSC发送这些类型的通信。 –

回答

0

从TouchOSC来的值是0和1之间漂浮在fader_0功能,目前从变换TouchOSC,args[0]浮子到int这轮任何数量小于1至0,从而程序打印出零每次。

你可以很容易看到这种情况发生在Python解释:

In [2]: int(0.7) 
Out[2]: 0 

的解决方案只是从fader_0删除int功能,像这样:

def fader_0(path, tags, args, source): 
    value=args[0] 
    print "Fader Value:", value