BLUSEncryptedBeacon Class Reference

Inherits from BLUConfigurableBeacon : BLUBluetoothBeacon : BLUBeacon : NSObject
Declared in BLUSEncryptedBeacon.h

Overview

BLUSEncryptedBeacon objects represent beacons that have been identified as Bluvision encrypted sBeacons.

Encrypted sBeacon objects hold the telemetry data and identifiers included in encrypted sBeacon advertisements. The encrypted information is spread over multiple advertisements. The decoding of the received information will begin after a sufficient number of single advertisements has been received and only if all required security keys have been set. The actual telemetry data of the beacon will therefore not be immediately available.

In addition an encrypted sBeacon will change its Bluetooth address on every rotation . Once that happens its current BLUSEncryptedBeacon representation may become invalid and a new instance may be found by the BLUBeaconManager.

If the change of the Bluetooth address could be recognized internally the appropriate BLUSEncryptedBeaconDelegate delegate method will be invoked and no new instance of BLUSEncryptedBeacon will be created. This is usually possible if the beacon was successfully decoded at least once.

Properties

  identifier

The beacon’s 64 bit numeric identifier. Available once decoding has finished.

@property (nonatomic, readonly) NSNumber *identifier

Discussion

The beacon’s 64 bit numeric identifier. Available once decoding has finished.

Declared In

BLUSEncryptedBeacon.h

  device

The device that is broadcasting the advertisements associated with this beacon.

@property (nonatomic, readonly) BLUDevice *device

Discussion

The device that is broadcasting the advertisements associated with this beacon.

See Also

Declared In

BLUSEncryptedBeacon.h

  battery

The battery that is associated with this beacon. Available once decoding has finished.

@property (nonatomic, readonly) BLUBattery *battery

Discussion

The battery that is associated with this beacon. Available once decoding has finished.

See Also

Declared In

BLUSEncryptedBeacon.h

  temperature

The ambient temperature currently measured by this beacon. Available once decoding has finished.

@property (nonatomic, readonly) BLUTemperature *temperature

Discussion

The ambient temperature currently measured by this beacon. Available once decoding has finished.

See Also

Declared In

BLUSEncryptedBeacon.h

Encryption properties

  encryptionDelegate

The delegate object you want to receive BLUSEncryptedBeacon events.

@property (nonatomic, weak) id<BLUSEncryptedBeaconDelegate> encryptionDelegate

Discussion

The delegate object you want to receive BLUSEncryptedBeacon events.

Declared In

BLUSEncryptedBeacon.h

  privateKey

NSData containing the 256bit ECC secp256k1 private key associated with the public key that the beacon has been setup with. This key is required for the beacon’s decoding process to begin.

@property (nonatomic, copy) NSData *privateKey

Discussion

NSData containing the 256bit ECC secp256k1 private key associated with the public key that the beacon has been setup with. This key is required for the beacon’s decoding process to begin.

Declared In

BLUSEncryptedBeacon.h

  rotationKey

NSData containing the 128bit AES CFB key used for the beacon’s identifier rotation. This key is required for the beacon’s decoding process to begin.

@property (nonatomic, copy) NSData *rotationKey

Discussion

NSData containing the 128bit AES CFB key used for the beacon’s identifier rotation. This key is required for the beacon’s decoding process to begin.

Declared In

BLUSEncryptedBeacon.h

  checksumKey

NSData containing the 128bit AES CFB key used for the beacon’s checksum verification. This key is required for the beacon’s decoding process to begin.

@property (nonatomic, copy) NSData *checksumKey

Discussion

NSData containing the 128bit AES CFB key used for the beacon’s checksum verification. This key is required for the beacon’s decoding process to begin.

Declared In

BLUSEncryptedBeacon.h

  rotationInterval

NSNumber containing the rotation interval for the beacon’s encryption. This value is required for the beacon’s decoding process to begin.

@property (nonatomic, strong) NSNumber *rotationInterval

Discussion

NSNumber containing the rotation interval for the beacon’s encryption. This value is required for the beacon’s decoding process to begin.

Declared In

BLUSEncryptedBeacon.h

  decoding

A boolean specifying whether the beacon is currently processing incoming advertisements. If this is set to NO then the decoding process has either finished or at least one of the beacon’s required security keys is missing.

@property (nonatomic, readonly, getter=isDecoding) BOOL decoding

Discussion

A boolean specifying whether the beacon is currently processing incoming advertisements. If this is set to NO then the decoding process has either finished or at least one of the beacon’s required security keys is missing.

Declared In

BLUSEncryptedBeacon.h

  decoded

A boolean specifying whether the beacon has finished decoding the beacon’s encrypted advertisement data at least once. Once this is set to YES the beacon’s properties will be valid. If this does not get set to YES at all then the specified security keys may not be valid.

@property (nonatomic, readonly, getter=isDecoded) BOOL decoded

Discussion

A boolean specifying whether the beacon has finished decoding the beacon’s encrypted advertisement data at least once. Once this is set to YES the beacon’s properties will be valid. If this does not get set to YES at all then the specified security keys may not be valid.

Declared In

BLUSEncryptedBeacon.h

Beacon settings

– setBeaconSleepTimeout:completion:

Sets up the beacon to enter deep sleep mode after the specified time interval. In deep sleep, the beacon will not send any broadcasts until it is physically woken up - e.g. via button tap. After being woken up the beacon will go back to sleep once the specified time interval has passed again. The beacon needs to be connected in order to execute this. This operation is only supported by certain beacon types and will return an error if sent to an unsupported device.

- (void)setBeaconSleepTimeout:(NSTimeInterval)timeInterval completion:(nullable void ( ^ ) ( NSError *__nullable error ))completion

Parameters

timeInterval

Time interval after which the beacon will go to sleep.

completion

The completion block that will be executed once the operation has finished.

Discussion

Sets up the beacon to enter deep sleep mode after the specified time interval. In deep sleep, the beacon will not send any broadcasts until it is physically woken up - e.g. via button tap. After being woken up the beacon will go back to sleep once the specified time interval has passed again. The beacon needs to be connected in order to execute this. This operation is only supported by certain beacon types and will return an error if sent to an unsupported device.

Declared In

BLUSEncryptedBeacon.h

– enableBeaconSleepMode:completion:

Immediately enables or disables deep sleep mode on the beacon. If enabled, the beacon will enter sleep mode only once. It won’t go back to sleep again after it has been woken up. If disabled, the beacon will permanently stay awake. This operation is only supported by certain beacon types and will return an error if sent to an unsupported device.

- (void)enableBeaconSleepMode:(BOOL)enable completion:(nullable void ( ^ ) ( NSError *__nullable error ))completion

Parameters

enable

YES to put the beacon to sleep. NO wake it up permanently.

completion

The completion block that will be executed once the operation has finished.

Discussion

Immediately enables or disables deep sleep mode on the beacon. If enabled, the beacon will enter sleep mode only once. It won’t go back to sleep again after it has been woken up. If disabled, the beacon will permanently stay awake. This operation is only supported by certain beacon types and will return an error if sent to an unsupported device.

Declared In

BLUSEncryptedBeacon.h

– setDeviceTime:completion:

Sets the beacon’s internal timer. This timer will increment every second and reset when the beacon reboots. The timer can be used to represent the current time by setting it to an appropriate Unix timestamp.

- (void)setDeviceTime:(NSTimeInterval)timeInterval completion:(void ( ^ ) ( BOOL success , NSError *error ))completion

Parameters

timeInterval

The time interval in seconds that the beacon’s timer will be set to.

completion

The completion block that will be executed once the operation has finished.

Discussion

Sets the beacon’s internal timer. This timer will increment every second and reset when the beacon reboots. The timer can be used to represent the current time by setting it to an appropriate Unix timestamp.

Declared In

BLUSEncryptedBeacon.h