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 TypeMethodDescriptionbooleancompareBeacon(ZebraBeacon beaconPrimary, ZebraBeacon beaconSecondary) compareBeacon method use to compare 2 beacons attribute by attribute.booleanfilter(ZebraBeacon beacon) filter beacon according to the user added filter listbooleanfilterByBatteryChargeStatus(ZebraBeacon beacon, String zFilterBatteryStatus) filter beacon by battery change statusbooleanfilterByBatteryPercentage(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_TObooleanfilterByConfigFileName(ZebraBeacon beacon, String zFilterConfigFileName) filter beacon by ConfigFileNamebooleanfilterByDateOfManufacture(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_TObooleanfilterByInCradle(ZebraBeacon beacon, String zFilterInCradle) filter beacon by InCradlebooleanfilterByInMotion(ZebraBeacon beacon, String zFilterInMotion) filter beacon by InMotionbooleanfilterByIsConnected(ZebraBeacon beacon, String zFilterIsConnected) filter beacon by IsConnectedbooleanfilterByModelNo(ZebraBeacon beacon, String zFilterModelNo) filter beacon by model numberbooleanfilterByProductReleaseName(ZebraBeacon beacon, String zFilterProductReleaseName) filter beacon by ProductReleaseNamebooleanfilterByRSSIPowerReference(ZebraBeacon beacon, String zFilterRSSIPowerReference) filter beacon by RSSIPowerReferencebooleanfilterBySerialNo(ZebraBeacon beacon, String zFilterSerialNo) filter beacon by serial numberbooleanfilterByVirtualTetherAlarm(ZebraBeacon beacon, String zFilterVirtualTetherAlarm) filter beacon by VirtualTetherAlarmString[]getByteBinaryString(byte byteToSplit) convert byte to 8 bitsstatic BeaconManagergetInstance(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 NumbervoidprocessBeaconData(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
-