code: def execute(self, slave_id, route_map):
          
          try:
              values = []
  
              for address in range(self.starting_address,
                                   self.starting_address + self.quantity):
                  endpoint = route_map.match(slave_id, self.function_code,
                                             address)
                  values.append(endpoint(slave_id=slave_id, address=address,
                                         function_code=self.function_code))
  
              return values
  
          # route_map.match() returns None if no match is found. Calling None
          # results in TypeError.
          except TypeError:
              raise IllegalDataAddressError()
docs: Execute the Modbus function registered for a route.
  
          :param slave_id: Slave id.
          :param eindpoint: Instance of modbus.route.Map.
          :return: Result of call to endpoint.