User Tools

Site Tools


python-osc-arduino

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
python-osc-arduino [2014/05/26 08:43]
zoza
python-osc-arduino [2014/05/26 09:01]
zoza
Line 6: Line 6:
 import codecs, time import codecs, time
 from datetime import datetime from datetime import datetime
 +import OSC, threading
  
 print "i am here" print "i am here"
  
-# open a file on the SD card and write the date and time of access 
 f_out = codecs.open("/​mnt/​sd/​arduino/​www/​pajton.csv",​ "​w",​ encoding="​utf-8"​) f_out = codecs.open("/​mnt/​sd/​arduino/​www/​pajton.csv",​ "​w",​ encoding="​utf-8"​)
-currentTime = datetime.fromtimestamp(int(time.time())).strftime('​%Y-%m-%d %H:%M:%S') +currentTime = datetime.fromtimestamp(int(time.time())).strftime('​%Y-%m-%d %H:%M: 
-f_out.write('​pisao '​+str(currentTime)+f_out.write('​pisao'​+str(currentTime))
-f_out.close()+
  
 +# tupple with ip, port
 +receive_address = '​0.0.0.0',​ 50000
  
 +# OSC Server. there are three different types of server.
 +s = OSC.OSCServer(receive_address) # basic
 +
 +# this registers a '​default'​ handler (for unmatched messages),
 +# an /'​error'​ handler, an '/​info'​ handler.
 +# And, if the client supports it, a '/​subscribe'​ & '/​unsubscribe'​ handler
 +s.addDefaultHandlers()
 +
 +def all_handler(addr,​ tags, stuff, source):
 +    print "​received new osc msg from %s" % OSC.getUrlStr(source)
 +    f_out.write(OSC.getUrlStr(source)+';​ ')
 +    print "with addr : %s" % addr
 +    f_out.write(addr+';​ ')
 +    print "​typetags %s" % tags
 +    print "data %s" % stuff
 +    f_out.write(addr+';​ ')
 +    f_out.write(str(stuff[0])+';​ ')
 +    f_out.write(str(time.time())+';​ ')
 +    f_out.write('​\n'​)
 +
 +
 +s.addMsgHandler("/​conversation",​ all_handler) # adding our function
 +s.addMsgHandler("/​data",​ all_handler)
 +s.addMsgHandler("/​sms",​ all_handler)
 +s.addMsgHandler("/​signal",​ all_handler)
 +
 +# checking which handlers we have added
 +print "​Registered Callback-functions are :"
 +for addr in s.getOSCAddressSpace():​
 +    print addr
 +
 +# Start OSCServer ​                                                 ​
 +print "​\nStarting OSCServer. Use ctrl-C to quit." ​                 ​
 +st = threading.Thread(target = s.serve_forever) ​                   ​
 +st.start() ​                                                        
 +                                                                   
 +try:                                                               
 +    while 1:                                                       
 +        time.sleep(5) ​                                             ​
 +                                                                   
 +except KeyboardInterrupt: ​                                         ​
 +    print "​\nClosing OSCServer." ​                
 +    s.close() ​                                   ​
 +    print "​Waiting for Server-thread to finish"  ​
 +    st.join() ##!!!                              ​
 +    print "​Done" ​                                
 +    f_out.close()  ​
 </​code>​ </​code>​
python-osc-arduino.txt · Last modified: 2014/05/26 09:01 by zoza