def server_info_reply_handler(self, addr, tags, stuff, source): self.mon.log( self, 'server info reply from slave ' + OSC.getUrlStr(source) + self.pretty_list(stuff, '\n')) print 'Received reply to Server-Info command from slave: ', OSC.getUrlStr( source), self.pretty_list(stuff, '\n') return None
def server_info_handler(self,addr, tags, stuff, source): msg = OSC.OSCMessage(self.prefix+'/system/server-info-reply') msg.append(self.this_unit_name) msg.append(self.input_server.getOSCAddressSpace()) self.mon.log(self,'Sent Server Info reply to %s:' % OSC.getUrlStr(source)) return msg
def loopback_reply_handler(self, addr, tags, stuff, source): self.mon.log( self, 'server info reply from slave ' + OSC.getUrlStr(source) + self.pretty_list(stuff, '\n')) print 'Received reply to Loopback command from slave: ' + OSC.getUrlStr( source) + ' ' + self.pretty_list(stuff, '\n') return None
def loopback_handler(self,addr, tags, stuff, source): # send a reply to the client. msg = OSC.OSCMessage(self.prefix+'/system/loopback-reply') text= "Message from %s" % OSC.getUrlStr(source)+'\n' text+= " %s" % addr+ self.pretty_list(stuff) self.add_status(text +'\n' + 'Sent reply to Loopback request to %s:' % OSC.getUrlStr(source)+'\n') return msg
def loopback_handler(self, addr, tags, stuff, source): # send a reply to the client. msg = OSC.OSCMessage(self.prefix + '/system/loopback-reply') text = "Message from %s" % OSC.getUrlStr(source) + '\n' text += " %s" % addr + self.pretty_list(stuff) self.add_status(text + '\n' + 'Sent reply to Loopback request to %s:' % OSC.getUrlStr(source) + '\n') return msg
def server_info_handler(self,addr, tags, stuff, source): # send a reply to the client. msg = OSC.OSCMessage(self.prefix+'/system/server-info-reply') msg.append(self.osc_config.this_unit_name) msg.append(self.server.getOSCAddressSpace()) text= "Message from %s" % OSC.getUrlStr(source)+'\n' text+= " %s" % addr+ self.pretty_list(stuff) self.add_status(text) self.add_status('Sent reply to Server Info request to %s:' % OSC.getUrlStr(source)+'\n') return msg
def server_info_handler(self, addr, tags, stuff, source): # send a reply to the client. msg = OSC.OSCMessage(self.prefix + '/system/server-info-reply') msg.append(self.osc_config.this_unit_name) msg.append(self.server.getOSCAddressSpace()) text = "Message from %s" % OSC.getUrlStr(source) + '\n' text += " %s" % addr + self.pretty_list(stuff) self.add_status(text) self.add_status('Sent reply to Server Info request to %s:' % OSC.getUrlStr(source) + '\n') return msg
def run_app(self): if self.osc_config.slave_enabled != 'yes': self.mon.err(self, 'Slave not enabled in oscmonitor.cfg') return if self.osc_config.this_unit_ip == '': self.mon.err(self, 'IP of own unit must be provided in oscmonitor.cfg') return if self.osc_config.listen_port == '': self.mon.err(self, 'Listen port must be provided in oscmonitor.cfg') return self.client = None self.server = None self.st = None # initialise OSC variables self.prefix = '/pipresents' self.this_unit = '/' + self.osc_config.this_unit_name self.add_status('this unit OSC address is: ' + self.this_unit) self.add_status('Listening for Commands from Master on: ' + self.osc_config.this_unit_ip + ':' + self.osc_config.listen_port) #connect client for replies then start server to listen for commands self.client = OSC.OSCClient() self.init_server(self.osc_config.this_unit_ip, self.osc_config.listen_port, self.client) self.add_initial_handlers() self.start_server()
def sendto(self, client, dest, address, arg_list): msg = OSC.OSCMessage() msg.setAddress(address) for arg in arg_list: msg.append(arg) try: client.sendto(msg, dest) except Exception as e: self.mon.err(self, 'error in client when sending OSC command: ' + str(e))
def sendto(self,ip,osc_address,arg_list): # print ip,osc_address,arg_list if self.output_client is None: self.mon.warn(self,'Master not enabled, ignoring OSC command') return msg = OSC.OSCMessage() # print address msg.setAddress(osc_address) for arg in arg_list: # print arg msg.append(arg) try: self.output_client.sendto(msg,(ip,int(self.reply_listen_port))) self.mon.log(self,'Sent OSC command: '+osc_address+' '+' '.join(arg_list) + ' to '+ ip +':'+self.reply_listen_port) except Exception as e: self.mon.warn(self,'error in client when sending OSC command: '+ str(e))
def no_match_handler(self,addr, tags, stuff, source): text= "No handler for message from %s" % OSC.getUrlStr(source)+'\n' text+= " %s" % addr+ self.pretty_list(stuff,'') self.add_status(text+'\n')
def loopback_reply_handler(self,addr, tags, stuff, source): self.add_status('Loopback reply received from: '+ OSC.getUrlStr(source))
def loopback_handler(self, addr, tags, stuff, source): msg = OSC.OSCMessage(self.prefix + '/system/loopback-reply') self.mon.log(self, 'Sent loopback reply to %s:' % OSC.getUrlStr(source)) return msg
def init(self, pp_profile, manager_unit, preferred_interface, my_ip, show_command_callback, input_event_callback, animate_callback): self.pp_profile = pp_profile self.show_command_callback = show_command_callback self.input_event_callback = input_event_callback self.animate_callback = animate_callback self.mon = Monitor() config_file = self.pp_profile + os.sep + 'pp_io_config' + os.sep + 'osc.cfg' if not os.path.exists(config_file): self.mon.err(self, 'OSC Configuration file not found: ' + config_file) return 'error', 'OSC Configuration file nof found: ' + config_file self.mon.log(self, 'OSC Configuration file found at: ' + config_file) self.osc_config = OSCConfig() # reads config data if self.osc_config.read(config_file) == False: return 'error', 'failed to read osc.cfg' # unpack config data and initialise if self.osc_config.this_unit_name == '': return 'error', 'OSC Config - This Unit has no name' if len(self.osc_config.this_unit_name.split()) > 1: return 'error', 'OSC config - This Unit Name not a single word: ' + self.osc_config.this_unit_name self.this_unit_name = self.osc_config.this_unit_name if self.osc_config.this_unit_ip == '': self.this_unit_ip = my_ip else: self.this_unit_ip = self.osc_config.this_unit_ip if self.osc_config.slave_enabled == 'yes': if not self.osc_config.listen_port.isdigit(): return 'error', 'OSC Config - Listen port is not a positve number: ' + self.osc_config.listen_port self.listen_port = self.osc_config.listen_port if self.osc_config.master_enabled == 'yes': if not self.osc_config.reply_listen_port.isdigit(): return 'error', 'OSC Config - Reply Listen port is not a positve number: ' + self.osc_config.reply_listen_port self.reply_listen_port = self.osc_config.reply_listen_port # prepare the list of slaves status, message = self.parse_slaves() if status == 'error': return status, message self.prefix = '/pipresents' self.this_unit = '/' + self.this_unit_name self.input_server = None self.input_reply_client = None self.input_st = None self.output_client = None self.output_reply_server = None self.output_reply_st = None if self.osc_config.slave_enabled == 'yes' and self.osc_config.master_enabled == 'yes' and self.listen_port == self.reply_listen_port: # The two listen ports are the same so use one server for input and output #start the client that sends commands to the slaves self.output_client = OSC.OSCClient() self.mon.log( self, 'sending commands to slaves and replies to master on: ' + self.reply_listen_port) #start the input+output reply server self.mon.log( self, 'listen to commands and replies from slave units using: ' + self.this_unit_ip + ':' + self.reply_listen_port) self.output_reply_server = myOSCServer( (self.this_unit_ip, int(self.reply_listen_port)), self.output_client) self.add_default_handler(self.output_reply_server) self.add_input_handlers(self.output_reply_server) self.add_output_reply_handlers(self.output_reply_server) self.input_server = self.output_reply_server else: if self.osc_config.slave_enabled == 'yes': # we want this to be a slave to something else # start the client that sends replies to controlling unit self.input_reply_client = OSC.OSCClient() #start the input server self.mon.log( self, 'listening to commands on: ' + self.this_unit_ip + ':' + self.listen_port) self.input_server = myOSCServer( (self.this_unit_ip, int(self.listen_port)), self.input_reply_client) self.add_default_handler(self.input_server) self.add_input_handlers(self.input_server) # print self.pretty_list(self.input_server.getOSCAddressSpace(),'\n') if self.osc_config.master_enabled == 'yes': #we want to control other units #start the client that sends commands to the slaves self.output_client = OSC.OSCClient() self.mon.log( self, 'sending commands to slaves on port: ' + self.reply_listen_port) #start the output reply server self.mon.log( self, 'listen to replies from slave units using: ' + self.this_unit_ip + ':' + self.reply_listen_port) self.output_reply_server = myOSCServer( (self.this_unit_ip, int(self.reply_listen_port)), self.output_client) self.add_default_handler(self.output_reply_server) self.add_output_reply_handlers(self.output_reply_server) return 'normal', 'osc.cfg read'
def no_match_handler(self, addr, tags, stuff, source): text = "No handler for message from %s" % OSC.getUrlStr(source) + '\n' text += " %s" % addr + self.pretty_list(stuff, '') self.mon.warn(self, text) return None
def no_match_handler(self,addr, tags, stuff, source): text= "No handler for message from %s" % OSC.getUrlStr(source)+'\n' text+= " %s" % addr+ self.pretty_list(stuff,'') self.mon.warn(self,text) return None
def init_server(self, ip, port_text, client): self.mon.log(self, 'Start Server: ' + ip + ':' + port_text) return OSC.OSCServer((ip, int(port_text)), client)
def server_info_reply_handler(self,addr, tags, stuff, source): unit=stuff[0] commands=stuff[1:] self.add_status('Server Information from: '+ OSC.getUrlStr(source)) self.add_status('OSC name: '+ unit) self.add_status('Commands:\n'+self.pretty_list(commands,'\n'))
def loopback_reply_handler(self,addr, tags, stuff, source): self.mon.log(self,'server info reply from slave '+OSC.getUrlStr(source)+ self.pretty_list(stuff,'\n')) print 'Received reply to Loopback command from slave: ' + OSC.getUrlStr(source)+ ' '+ self.pretty_list(stuff,'\n') return None
def server_info_reply_handler(self,addr, tags, stuff, source): self.mon.log(self,'server info reply from slave '+OSC.getUrlStr(source)+ self.pretty_list(stuff,'\n')) print 'Received reply to Server-Info command from slave: ',OSC.getUrlStr(source), self.pretty_list(stuff,'\n') return None
def loopback_handler(self,addr, tags, stuff, source): msg = OSC.OSCMessage(self.prefix+'/system/loopback-reply') self.mon.log(self,'Sent loopback reply to %s:' % OSC.getUrlStr(source)) return msg
def no_match_handler(self, addr, tags, stuff, source): text = "Message from %s" % OSC.getUrlStr(source) + '\n' text += " %s" % addr + self.pretty_list(stuff) self.add_status(text + '\n')
def loopback_reply_handler(self, addr, tags, stuff, source): self.add_status('Loopback reply received from: ' + OSC.getUrlStr(source))
def init_client(self): return OSC.OSCClient()
def server_info_reply_handler(self, addr, tags, stuff, source): unit = stuff[0] commands = stuff[1:] self.add_status('Server Information from: ' + OSC.getUrlStr(source)) self.add_status('OSC name: ' + unit) self.add_status('Commands:\n' + self.pretty_list(commands, '\n'))