java.lang.Object
org.openremote.agent.protocol.bluetooth.mesh.utils.MeshAddress

public class MeshAddress extends Object
  • Field Details

  • Constructor Details

    • MeshAddress

      public MeshAddress()
  • Method Details

    • formatAddress

      public static String formatAddress(int address, boolean add0x)
    • isAddressInRange

      public static boolean isAddressInRange(byte[] address)
    • isAddressInRange

      public static boolean isAddressInRange(int address)
      Checks if the address is in range
      Parameters:
      address - address
      Returns:
      true if is in range or false otherwise
    • isValidUnassignedAddress

      public static boolean isValidUnassignedAddress(byte[] address)
      Validates an unassigned address
      Parameters:
      address - 16-bit address
      Returns:
      true if the address is a valid unassigned address or false otherwise
    • isValidUnassignedAddress

      public static boolean isValidUnassignedAddress(int address)
      Validates a unassigned address
      Parameters:
      address - 16-bit address
      Returns:
      true if the address is a valid unassigned address or false otherwise
    • isValidUnicastAddress

      public static boolean isValidUnicastAddress(byte[] address)
      Validates a unicast address
      Parameters:
      address - Address in bytes
      Returns:
      true if the address is a valid unicast address or false otherwise
    • isValidUnicastAddress

      public static boolean isValidUnicastAddress(int address)
      Validates a unicast address
      Parameters:
      address - 16-bit address
      Returns:
      true if the address is a valid unicast address or false otherwise
    • isValidVirtualAddress

      public static boolean isValidVirtualAddress(byte[] address)
      Validates a virtual address
      Parameters:
      address - Address in bytes
      Returns:
      true if the address is a valid virtual address or false otherwise
    • isValidVirtualAddress

      public static boolean isValidVirtualAddress(int address)
      Validates a unicast address
      Parameters:
      address - 16-bit address
      Returns:
      true if the address is a valid virtual address or false otherwise
    • isValidGroupAddress

      public static boolean isValidGroupAddress(byte[] address)
    • isValidGroupAddress

      public static boolean isValidGroupAddress(int address)
      Returns true if the its a valid group address
      Parameters:
      address - 16-bit address
      Returns:
      true if the address is valid and false otherwise
    • isValidFixedGroupAddress

      public static boolean isValidFixedGroupAddress(int address)
      Returns true if the its a valid fixed group address. Fixed group addresses include all proxies, all friends, all relays and all nodes address.
      Parameters:
      address - 16-bit address
      Returns:
      true if the address is valid and false otherwise
    • isValidSubscriptionAddress

      public static boolean isValidSubscriptionAddress(int address)
      Returns true if the address is a valid subscription address
      Parameters:
      address - 16-bit address
      Returns:
      true if the address is valid and false otherwise
    • isValidSubscriptionAddress

      public static boolean isValidSubscriptionAddress(byte[] address)
      Validates a given address for subscriptions
      Parameters:
      address - group address
      Returns:
      true if is valid and false otherwise
    • isValidProxyFilterAddress

      public static boolean isValidProxyFilterAddress(int address)
      Validates if the given address is a valid address that can be used as a proxy filter
      Parameters:
      address - Unicast/Virtual or Group address
      Returns:
      true if is valid and false otherwise
    • isValidProxyFilterAddress

      public static boolean isValidProxyFilterAddress(byte[] address)
      Validates if the given address is a valid address that can be used as a proxy filter
      Parameters:
      address - Unicast/Virtual or Group address
      Returns:
      true if is valid and false otherwise
    • getAddressType

      public static AddressType getAddressType(int address)
      Returns the AddressType
      Parameters:
      address - 16-bit mesh address
    • generateRandomLabelUUID

      public static UUID generateRandomLabelUUID()
      Generates a random uuid
    • generateVirtualAddress

      public static Integer generateVirtualAddress(UUID uuid)
      Generates a virtual address from a given Lable UUID
      Parameters:
      uuid - Type 4 UUID
    • getLabelUuid

      public static UUID getLabelUuid(List<UUID> uuids, int address)
      Returns the label UUID for a given virtual address
      Parameters:
      address - 16-bit virtual address
    • getHash

      public static int getHash(int address)
      Returns the value of the hash from a virtual address

      The hash stored in a virtual address is derived from the label UUID. In a virtual address bits 13 to 0 are set to the value of a hash of the corresponding Label UUID.

      Parameters:
      address - virtual address
    • addressIntToBytes

      public static byte[] addressIntToBytes(int unicastAddress)
      Returns the unicast address as int
      Parameters:
      unicastAddress - unicast address
      Returns:
      unicast address
    • addressBytesToInt

      public static short addressBytesToInt(byte[] unicastAddress)
      Returns the unicast address as int
      Parameters:
      unicastAddress - unicast address
      Returns:
      unicast address
    • isValidHeartbeatPublicationDestination

      public static boolean isValidHeartbeatPublicationDestination(int address)
      Validates if the address is a valid Heartbeat publicaiton destination. A valid address shall be an unassigned address, a unicast address, or a group address, all other values are Prohibited.
      Parameters:
      address - address
      Returns:
      true if valid or false otherwise.
    • isValidHeartbeatSubscriptionSource

      public static boolean isValidHeartbeatSubscriptionSource(int address)
      Validates if the address is a valid Heartbeat subscription source. A valid address shall be an unassigned address, a unicast address. All other values are Prohibited.
      Parameters:
      address - address
      Returns:
      true if valid or false otherwise.
      Throws:
      IllegalArgumentException - if the address is not the unassigned address or a unicast address.
    • isValidHeartbeatSubscriptionDestination

      public static boolean isValidHeartbeatSubscriptionDestination(int address)
      Validates if the address is a valid Heartbeat subscription source. A valid address shall be an unassigned address, a primary unicast address of the node, or a group address, All other values are Prohibited.
      Parameters:
      address - address
      Returns:
      true if valid or false otherwise.