code: def call_rpc(*inputs, **kwargs):
      
  
      rpc_executor = kwargs['rpc_executor']
  
      output = []
      try:
          value = inputs[1].pop()
  
          addr = value.value >> 16
          rpc_id = value.value & 0xFFFF
  
          reading_value = rpc_executor.rpc(addr, rpc_id)
          output.append(IOTileReading(0, 0, reading_value))
      except (HardwareError, StreamEmptyError):
          pass
  
      for input_x in inputs:
          input_x.skip_all()
  
      return output
docs: Call an RPC based on the encoded value read from input b.
  
      The response of the RPC must be a 4 byte value that is used as
      the output of this call.  The encoded RPC must be a 32 bit value
      encoded as "BBH":
          B: ignored, should be 0
          B: the address of the tile that we should call
          H: The id of the RPC to call
  
      All other readings are then skipped so that there are no
      readings in any input queue when this function returns
  
      Returns:
          list(IOTileReading)