2016-11-07 57 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