Class RegisterBlockFetcher

  • All Implemented Interfaces:

    
    public class RegisterBlockFetcher
    
                        

    A RegisterBlockFetcher needs to have a Schema, a target RegisterBlock and a ModbusDevice

    • Constructor Detail

      • RegisterBlockFetcher

        RegisterBlockFetcher(SchemaDevice schemaDevice, ModbusDevice modbusDevice)
    • Method Detail

      • need

         final Unit need(Field field)
        Parameters:
        field - The field that must be kept up-to-date
      • unNeed

         final Unit unNeed(Field field)
        Parameters:
        field - The field that no longer needs to be kept up-to-date
      • needAll

         final Unit needAll()

        We want all fields to be kept up-to-date

      • unNeedAll

         final Unit unNeedAll()

        We no longer want all fields to be kept up-to-date

      • update

         final Unit update(Field field)

        We force an immediate update of all registers needed for the provided field. No batching, buffering or any optimization is done.

        Parameters:
        field - The field that must be updated
      • update

         final Unit update(Long maxAge)

        Update all registers related to the needed fields to be updated with a maximum age of the provided milliseconds

        Parameters:
        maxAge - maximum age of the fields in milliseconds
      • calculateFetchBatches

         List<RegisterBlockFetcher.FetchBatch> calculateFetchBatches(Long maxAge)

        Determine which sets of registers need to be retrieved again.

        Parameters:
        maxAge - The maximum age (in milliseconds) of the data for it to need an update.
        Returns:

        The list of address ranges that must be retrieved (Sorted by the start address)