def handle_delivery(self, channel, method, header, body): """ The incoming message is either a hardware status update, a command sent by another Pi or a social media status update. # On HW message: update the robot # On Pi message: add to message queue # On SM message: TBD """ # For testing purposes message = Message.decode(body) if message.getChannel() == "Message": # If it's a "do this" type message ... logger.debug('Adding message from %s with content \'%s\'' % (message.getSource(), message.getContent())) self.msgQueue.append(message) elif message.getChannel() == "Subs": logger.debug('Message for Subs channel: \'%s\'' % message.getContent()) usercode.run(self, self.channel) else: # If it's a robot status update ... hwDict = message.getContent() logger.debug('Updating the robot status: %s' % str(hwDict)) # Apply the value changes for key, valueList in hwDict.iteritems(): for index, value in enumerate(valueList): if value is not None: self.robot[key][index] = value #tells user script that there is unread data on all ports for sensor in self.sensorStatus: self.sensorStatus[sensor] = True
def handle_delivery(self, channel, method, header, body): """ The incoming message is either a hardware status update, a command sent by another Pi or a social media status update. # On HW message: update the robot # On Pi message: add to message queue # On SM message: TBD """ # For testing purposes message = Message.decode(body) if message.getChannel() == "Message": # If it's a "do this" type message ... logger.debug('Adding message from %s with content \'%s\'' % (message.getSource(), message.getContent())) self.msgQueue.append(message) elif message.getChannel() == "Subs": logger.debug('Message for Subs channel: \'%s\'' % message.getContent()) usercode.run(self, self.channel) else: # If it's a robot status update ... hwDict = message.getContent() logger.debug('Updating the robot status: %s' % str(hwDict)) # Apply the value changes for key, valueList in hwDict.iteritems(): for index, value in enumerate(valueList): if value is not None: self.robot[key][index] = value #tells user script that there is unread data on all ports for sensor in self.sensorStatus: self.sensorStatus[sensor]= True
def executeScript(self): """ Resets the robot to its default state and runs the script downloaded from Google Blockly via usercode.run(). """ global channel2 # Initialize local image to the default state. self.robot = Message.initStatus() # Runs the user code generated by Blockly. logger.info('Running usercode.py ...') connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue="HwCmd") connection2 = pika.BlockingConnection(pika.ConnectionParameters(host='localhost')) channel2 = connection2.channel() channel2.queue_declare(queue="Message") usercode.run(self, channel, channel2)
def executeScript(self): """ Resets the robot to its default state and runs the script downloaded from Google Blockly via usercode.run(). """ global channel2 # Initialize local image to the default state. self.robot = Message.initStatus() # Runs the user code generated by Blockly. logger.info('Running usercode.py ...') connection = pika.BlockingConnection( pika.ConnectionParameters(host='localhost')) channel = connection.channel() channel.queue_declare(queue="HwCmd") connection2 = pika.BlockingConnection( pika.ConnectionParameters(host='localhost')) channel2 = connection2.channel() channel2.queue_declare(queue="Message") usercode.run(self, channel, channel2)