Package com.zebra.scannercontrol.beacon
Class BeaconManager
java.lang.Object
com.zebra.scannercontrol.beacon.BeaconManager
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 Summary
Fields -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionboolean
compareBeacon
(ZebraBeacon beaconPrimary, ZebraBeacon beaconSecondary) compareBeacon method use to compare 2 beacons attribute by attribute.boolean
filter
(ZebraBeacon beacon) filter beacon according to the user added filter listboolean
filterByBatteryChargeStatus
(ZebraBeacon beacon, String zFilterBatteryStatus) filter beacon by battery change statusboolean
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_TOboolean
filterByConfigFileName
(ZebraBeacon beacon, String zFilterConfigFileName) filter beacon by ConfigFileNameboolean
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_TOboolean
filterByInCradle
(ZebraBeacon beacon, String zFilterInCradle) filter beacon by InCradleboolean
filterByInMotion
(ZebraBeacon beacon, String zFilterInMotion) filter beacon by InMotionboolean
filterByIsConnected
(ZebraBeacon beacon, String zFilterIsConnected) filter beacon by IsConnectedboolean
filterByModelNo
(ZebraBeacon beacon, String zFilterModelNo) filter beacon by model numberboolean
filterByProductReleaseName
(ZebraBeacon beacon, String zFilterProductReleaseName) filter beacon by ProductReleaseNameboolean
filterByRSSIPowerReference
(ZebraBeacon beacon, String zFilterRSSIPowerReference) filter beacon by RSSIPowerReferenceboolean
filterBySerialNo
(ZebraBeacon beacon, String zFilterSerialNo) filter beacon by serial numberboolean
filterByVirtualTetherAlarm
(ZebraBeacon beacon, String zFilterVirtualTetherAlarm) filter beacon by VirtualTetherAlarmString[]
getByteBinaryString
(byte byteToSplit) convert byte to 8 bitsstatic BeaconManager
getInstance
(android.content.Context context, IDcsBeaconEvents iDcsBeaconEvents) mapZConfigFileName
(byte[] scanRecord) process config file namemapZManufactureDate
(byte[] scanRecord) process manufacture datemapZModelNo
(byte[] scanRecord) process Model NumbermapZProductReleaseName
(byte[] scanRecord) process product release namemapZSerialNo
(byte[] scanRecord) process Serial Numbervoid
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.
-
Field Details
-
beaconList
-
ZEBRA_BEACON_CODE
-
BEACON_FILTER_EQUALS
-
BEACON_FILTER_TO
-
BEACON_FILTER_FROM
-
BEACON_FILTER_ALL
-
BEACON_FILTER_ON
-
BEACON_FILTER_OFF
-
BEACON_FILTER_YES
-
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
compareBeacon method use to compare 2 beacons attribute by attribute.- Parameters:
beaconPrimary
-beaconSecondary
-- Returns:
- Boolean
-
getByteBinaryString
convert byte to 8 bits- Parameters:
byteToSplit
-- Returns:
- String[]
-
mapZConfigFileName
process config file name- Parameters:
scanRecord
-- Returns:
- String config file name
-
mapZManufactureDate
process manufacture date- Parameters:
scanRecord
-- Returns:
- String manufacture date
-
mapZProductReleaseName
process product release name- Parameters:
scanRecord
-- Returns:
- String product release name
-
mapZModelNo
process Model Number- Parameters:
scanRecord
-- Returns:
- zModelNumber
-
mapZSerialNo
process Serial Number- Parameters:
scanRecord
-- Returns:
- zSerialNumber
-
filter
filter beacon according to the user added filter list- Parameters:
beacon
-- Returns:
- if(filtered beacon)? true:false
-
filterByModelNo
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
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
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
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
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
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
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
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
filter beacon by ProductReleaseName- Parameters:
beacon
-zFilterProductReleaseName
-- Returns:
- if (Beacon filtered by ProductReleaseName)? true: false - default true if no release name added
-
filterByConfigFileName
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
-