Class BeaconManager

java.lang.Object
com.zebra.scannercontrol.beacon.BeaconManager

public class BeaconManager extends Object
BeaconManager class is responsible for processing beacon data from scanRecord and all the beacon processes. Beacon list will also be managed through this class
  • Field Details

    • beaconList

      public static ArrayList<ZebraBeacon> beaconList
    • ZEBRA_BEACON_CODE

      public static String ZEBRA_BEACON_CODE
    • BEACON_FILTER_EQUALS

      public static String BEACON_FILTER_EQUALS
    • BEACON_FILTER_TO

      public static String BEACON_FILTER_TO
    • BEACON_FILTER_FROM

      public static String BEACON_FILTER_FROM
    • BEACON_FILTER_ALL

      public static String BEACON_FILTER_ALL
    • BEACON_FILTER_ON

      public static String BEACON_FILTER_ON
    • BEACON_FILTER_OFF

      public static String BEACON_FILTER_OFF
    • BEACON_FILTER_YES

      public static String BEACON_FILTER_YES
    • BEACON_FILTER_NO

      public static String BEACON_FILTER_NO
  • Constructor Details

    • BeaconManager

      public BeaconManager()
  • Method Details

    • getInstance

      public static BeaconManager getInstance(android.content.Context context, IDcsBeaconEvents iDcsBeaconEvents)
    • processBeaconData

      public void processBeaconData(byte[] scanRecord)
      process beacon data from scanRecord byte[] AD Length -- 1 byte -- 0x1C AD Type -- 1 byte -- 0xFF Company ID -- 2 bytes -- 0x01F1 Zebra Scanner Beacon Code -- 2 bytes -- 0xADC1 Model Number -- 6 bytes -- Matches model name on scanner label Serial Number -- 14 bytes -- Matches serial number on scanner label RSSI Power Reference -- 1 byte -- Reference RSSI at 1 meter Battery Percentage -- 7 bits -- 0 to 100% Battery Charge Status -- 1 bit -- ON or OFF In Motion -- 1 bit -- YES or NO In Cradle -- 1 bit -- YES or NO Connected -- 1 bit -- YES or NO Virtual Tether Alarm -- 1 bit -- ON or OFF Reserved -- 3 bits -- Future use Product Release Name -- 9 bytes -- Remove first 5 bytes and ‘-‘ to fit more info (ex. PAACXS00-010-R05 becomes S00010R05) Date of Manufacture -- 3 bytes -- Sending "22NOV19" is not efficient (7 bytes) - instead convert to 22, 11, 19 (3 bytes) Configuration File -- 15 bytes -- Configuration file name
      Parameters:
      scanRecord -
    • compareBeacon

      public boolean compareBeacon(ZebraBeacon beaconPrimary, ZebraBeacon beaconSecondary)
      compareBeacon method use to compare 2 beacons attribute by attribute.
      Parameters:
      beaconPrimary -
      beaconSecondary -
      Returns:
      Boolean
    • getByteBinaryString

      public String[] getByteBinaryString(byte byteToSplit)
      convert byte to 8 bits
      Parameters:
      byteToSplit -
      Returns:
      String[]
    • mapZConfigFileName

      public String mapZConfigFileName(byte[] scanRecord)
      process config file name
      Parameters:
      scanRecord -
      Returns:
      String config file name
    • mapZManufactureDate

      public String mapZManufactureDate(byte[] scanRecord)
      process manufacture date
      Parameters:
      scanRecord -
      Returns:
      String manufacture date
    • mapZProductReleaseName

      public String mapZProductReleaseName(byte[] scanRecord)
      process product release name
      Parameters:
      scanRecord -
      Returns:
      String product release name
    • mapZModelNo

      public String mapZModelNo(byte[] scanRecord)
      process Model Number
      Parameters:
      scanRecord -
      Returns:
      zModelNumber
    • mapZSerialNo

      public String mapZSerialNo(byte[] scanRecord)
      process Serial Number
      Parameters:
      scanRecord -
      Returns:
      zSerialNumber
    • filter

      public boolean filter(ZebraBeacon beacon)
      filter beacon according to the user added filter list
      Parameters:
      beacon -
      Returns:
      if(filtered beacon)? true:false
    • filterByModelNo

      public boolean filterByModelNo(ZebraBeacon beacon, String zFilterModelNo)
      filter beacon by model number
      Parameters:
      beacon -
      zFilterModelNo -
      Returns:
      if (beacon filter by model no)? true: false - default true if no model number added
    • filterBySerialNo

      public boolean filterBySerialNo(ZebraBeacon beacon, String zFilterSerialNo)
      filter beacon by serial number
      Parameters:
      beacon -
      zFilterSerialNo -
      Returns:
      if (beacon filter by serial number)? true: false - default true if no serial number added
    • filterByRSSIPowerReference

      public boolean filterByRSSIPowerReference(ZebraBeacon beacon, String zFilterRSSIPowerReference)
      filter beacon by RSSIPowerReference
      Parameters:
      beacon -
      zFilterRSSIPowerReference -
      Returns:
      if (beacon filter by RSSIPowerReference)? true: false - default true if no RSSI power reference added
    • filterByBatteryPercentage

      public boolean filterByBatteryPercentage(ZebraBeacon beacon, HashMap<String,Integer> zFilterBatteryPercentage)
      filter beacon by battery percentage if user needs to filter exact battery percentage, Key = BEACON_FILTER_EQUALS if user needs to filter battery percentage in given range; 2 <keys, value> pairs should be send by the hashmap, Keys = BEACON_FILTER_TO,BEACON_FILTER_FROM if user needs to filter battery percentage grater than some value, key = BEACON_FILTER_FROM if user needs to filter battery percentage less than some value, key = BEACON_FILTER_TO
      Parameters:
      beacon -
      zFilterBatteryPercentage -
      Returns:
      if (Beacon filtered by BatteryPercentage)? true: false - default true if no battery percentage added
    • filterByBatteryChargeStatus

      public boolean filterByBatteryChargeStatus(ZebraBeacon beacon, String zFilterBatteryStatus)
      filter beacon by battery change status
      Parameters:
      beacon -
      zFilterBatteryStatus - - BEACON_FILTER_ON/ BEACON_FILTER_OFF/ default : BEACON_FILTER_ALL
      Returns:
      if (Beacon filtered by BatteryChargeStatus)? true: false - default true if no battery change status added
    • filterByInMotion

      public boolean filterByInMotion(ZebraBeacon beacon, String zFilterInMotion)
      filter beacon by InMotion
      Parameters:
      beacon -
      zFilterInMotion - - BEACON_FILTER_YES/ BEACON_FILTER_NO/ default : BEACON_FILTER_ALL
      Returns:
      if (Beacon filtered by InMotion)? true: false - default true if no In motion
    • filterByInCradle

      public boolean filterByInCradle(ZebraBeacon beacon, String zFilterInCradle)
      filter beacon by InCradle
      Parameters:
      beacon -
      zFilterInCradle - - BEACON_FILTER_YES/ BEACON_FILTER_NO/ default : BEACON_FILTER_ALL
      Returns:
      if (Beacon filtered by InCradle)? true: false - default true if no In cradle
    • filterByIsConnected

      public boolean filterByIsConnected(ZebraBeacon beacon, String zFilterIsConnected)
      filter beacon by IsConnected
      Parameters:
      beacon -
      zFilterIsConnected - - BEACON_FILTER_YES/ BEACON_FILTER_NO/ default : BEACON_FILTER_ALL
      Returns:
      if (Beacon filtered by IsConnected)? true: false - default true if no Is connected
    • filterByVirtualTetherAlarm

      public boolean filterByVirtualTetherAlarm(ZebraBeacon beacon, String zFilterVirtualTetherAlarm)
      filter beacon by VirtualTetherAlarm
      Parameters:
      beacon -
      zFilterVirtualTetherAlarm - - BEACON_FILTER_ON/ BEACON_FILTER_OFF/ default : BEACON_FILTER_ALL
      Returns:
      if (Beacon filtered by VirtualTetherAlarm)? true: false - default true if no virtual tether
    • filterByProductReleaseName

      public boolean filterByProductReleaseName(ZebraBeacon beacon, String zFilterProductReleaseName)
      filter beacon by ProductReleaseName
      Parameters:
      beacon -
      zFilterProductReleaseName -
      Returns:
      if (Beacon filtered by ProductReleaseName)? true: false - default true if no release name added
    • filterByConfigFileName

      public boolean filterByConfigFileName(ZebraBeacon beacon, String zFilterConfigFileName)
      filter beacon by ConfigFileName
      Parameters:
      beacon -
      zFilterConfigFileName -
      Returns:
      if (Beacon filtered by ConfigFileName)? true: false - default true if no config file name added
    • filterByDateOfManufacture

      public boolean filterByDateOfManufacture(ZebraBeacon beacon, HashMap<String,String> zFilterDateOfManufacture)
      filter beacon by DateOfManufacture if user needs to filter exact date, Key = BEACON_FILTER_EQUALS if user needs to filter date in between given 2 dates; 2 <key, value> pairs should be send by the hashmap, Keys = BEACON_FILTER_TO,BEACON_FILTER_FROM if user needs to filter date after some date, key = BEACON_FILTER_FROM if user needs to filter date before some date, key = BEACON_FILTER_TO
      Parameters:
      beacon -
      zFilterDateOfManufacture -
      Returns:
      if (Beacon filtered by DateOfManufacture)? true: false - default true if no date added