def execute(self, slave_id, route_map): """ 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. """ 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()
def execute(self, slave_id, route_map): """ Execute the Modbus function registered for a route. :param slave_id: Slave id. :param eindpoint: Instance of modbus.route.Map. """ endpoint = route_map.match(slave_id, self.function_code, self.address) try: endpoint(slave_id=slave_id, address=self.address, value=self.value, function_code=self.function_code) # route_map.match() returns None if no match is found. Calling None # results in TypeError. except TypeError: raise IllegalDataAddressError()