diff --git a/CHANGELOG.md b/CHANGELOG.md index 12d56dcbc..72b09a5a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,11 @@ +## 2.2.0 (November 19, 2014) + +Features: +- Secure UUID rotation added to prevent from hijacking beacons +- Bulk update +- Estimote Analytics +- 8x faster firmware update + ## 2.1.5 (September 26, 2014) Bugfixes: diff --git a/Documents/Classes/ESBeaconUpdateConfig.html b/Documents/Classes/ESBeaconUpdateConfig.html new file mode 100644 index 000000000..c65ce637d --- /dev/null +++ b/Documents/Classes/ESBeaconUpdateConfig.html @@ -0,0 +1,342 @@ + + + + + ESBeaconUpdateConfig Class Reference + + + + + + +
+
+

EstimoteSDK

+ Estimote +
+ + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromNSObject
Conforms toNSCoding
NSCopying
Declared inESBeaconUpdateConfig.h
ESBeaconUpdateConfig.m
+ + + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + +
+ +

Properties

+ +
+ +

advInterval

+ + + +
+

To what advertising interval beacon should be changed.

+
+ + + +
@property (nonatomic, strong) NSNumber *advInterval
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateConfig.h
+
+ + +
+ +
+ +

power

+ + + +
+

To what broadcasting power beacon should be changed.

+
+ + + +
@property (nonatomic, strong) NSNumber *power
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateConfig.h
+
+ + +
+ +
+ + + + + + + + +
+ + +
+
+ + + \ No newline at end of file diff --git a/Documents/Classes/ESBeaconUpdateInfo.html b/Documents/Classes/ESBeaconUpdateInfo.html new file mode 100644 index 000000000..01250b87f --- /dev/null +++ b/Documents/Classes/ESBeaconUpdateInfo.html @@ -0,0 +1,956 @@ + + + + + ESBeaconUpdateInfo Class Reference + + + + + + +
+
+

EstimoteSDK

+ Estimote +
+ + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromNSObject
Conforms toNSCoding
Declared inESBeaconUpdateInfo.h
ESBeaconUpdateInfo.m
+ + + + +
+ +

Overview

+

The ESBeaconUpdateInfo class represents all required data for single Estimote beacon bulk update operation. It should be intialized by particular ESTBeacon that should be updated and ESBeaconUpdateConfig config object that describes how update is going to be performed.

+
+ + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + +
+ +

Properties

+ +
+ +

UUID

+ + + +
+

Proximity UUID of the beacon device that should be updated.

+
+ + + +
@property (nonatomic, strong) NSUUID *UUID
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

beacon

+ + + +
+

Beacon about which this info is for.

+
+ + + +
@property (nonatomic, strong) ESTBeacon *beacon
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

config

+ + + +
+

Configuration based on which update should be performed.

+
+ + + +
@property (nonatomic, strong) ESBeaconUpdateConfig *config
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

delegate

+ + + +
+

Delegate object described with ESBeaconUpdateInfoDelegate protocol.

+
+ + + +
@property (nonatomic, assign) id<ESBeaconUpdateInfoDelegate> delegate
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

error

+ + + +
+

Error object if beacon failed to update.

+
+ + + +
@property (nonatomic, strong) NSError *error
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

macAddress

+ + + +
+

Mac address of the beacon device.

+
+ + + +
@property (nonatomic, strong) NSString *macAddress
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

major

+ + + +
+

Major of the beacon device that should be updated.

+
+ + + +
@property (nonatomic, strong) NSNumber *major
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

minor

+ + + +
+

Minor of the beacon device that should be updated.

+
+ + + +
@property (nonatomic, strong) NSNumber *minor
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

peripheralID

+ + + +
+

Bluetooth Peripheral object related to the beacon.

+
+ + + +
@property (nonatomic, strong) NSString *peripheralID
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

status

+ + + +
+

Current status of beacon update.

+
+ + + +
@property (nonatomic, assign) ESBeaconUpdateInfoStatus status
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ + + + + +
+ +

Instance Methods

+ +
+ +

description

+ + + +
+

Custom description method of Beacon update information.

+
+ + + +
- (NSString *)description
+ + + + + +
+

Return Value

+

description string

+
+ + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

findPeripheral

+ + + +
+

Scans for peripheral related with the beacon.

+
+ + + +
- (void)findPeripheral
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

initWithBeacon:config:

+ + + +
+

Initialize object with beacon that is going to be updated and proper +config file containing description how update should be performed.

+
+ + + +
- (instancetype)initWithBeacon:(ESTBeacon *)beacon config:(ESBeaconUpdateConfig *)config
+ + + +
+

Parameters

+ +
+
beacon
+

beacon object

+
+ +
+
config
+

config description for update

+
+ +
+ + + +
+

Return Value

+

initialized instance of this class

+
+ + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ +

updateWithConfig:

+ + + +
+

Allows to update config for the related beacon. Overrides previous +Power and Adv interval values.

+
+ + + +
- (void)updateWithConfig:(ESBeaconUpdateConfig *)config
+ + + +
+

Parameters

+ +
+
config
+

new config object

+
+ +
+ + + + + + + + + + + + + +
+

Declared In

+ ESBeaconUpdateInfo.h
+
+ + +
+ +
+ + + + +
+ + +
+
+ + + \ No newline at end of file diff --git a/Documents/Classes/ESBulkUpdater.html b/Documents/Classes/ESBulkUpdater.html new file mode 100644 index 000000000..9f316f4ab --- /dev/null +++ b/Documents/Classes/ESBulkUpdater.html @@ -0,0 +1,772 @@ + + + + + ESBulkUpdater Class Reference + + + + + + +
+
+

EstimoteSDK

+ Estimote +
+ + + +
+ +
+
+ + + +
+ +
+ + + + + + + +
Inherits fromNSObject
Declared inESBulkUpdater.h
ESBulkUpdater.m
+ + + + +
+ +

Overview

+

Main class of the bulk updater that performs all update operations + handled by objects of ESBulkUpdaterSingleOperation class. Updates are performed + in the concurent queue and can work both in foreground and background. + + To star bulk update you need to prepare array of ESBeaconUpdateInfo objects containg beacons + and update configuration. Then just invoke startWithBeaconInfos:timeout: method of this class + to start update procedure. This class defines notifications that can be used to get progress + of update procedure state.

+
+ + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + +
+ +

Properties

+ +
+ +

beaconInfos

+ + + +
+

Array with information about beacons update status. Contains objects of ESBeaconUpdateInfo.

+
+ + + +
@property (nonatomic, strong) NSArray *beaconInfos
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBulkUpdater.h
+
+ + +
+ +
+ +

mode

+ + + +
+

Indicating what mode is bulk updater currently running.

+
+ + + +
@property (nonatomic, readonly) ESTBulkUpdaterMode mode
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBulkUpdater.h
+
+ + +
+ +
+ +

status

+ + + +
+

Status of bulk updater.

+
+ + + +
@property (nonatomic, readonly) ESBulkUpdaterStatus status
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBulkUpdater.h
+
+ + +
+ +
+ + + +
+ +

Class Methods

+ +
+ +

sharedInstance

+ + + +
+

ESBulkUpdater

+
+ + + +
+ (ESBulkUpdater *)sharedInstance
+ + + + + +
+

Return Value

+

Returns singleton instance of bulk updater.

+
+ + + + + + + + + + + +
+

Declared In

+ ESBulkUpdater.h
+
+ + +
+ +
+ + + +
+ +

Instance Methods

+ +
+ +

cancel

+ + + +
+

Cancels update process. Note that currently updating beacon will finish.

+
+ + + +
- (void)cancel
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBulkUpdater.h
+
+ + +
+ +
+ +

getBeaconUpdateInfosForBeacon:

+ + + +
+

Get all possible infos for particular beacon

+
+ + + +
- (NSArray *)getBeaconUpdateInfosForBeacon:(ESTBeacon *)beacon
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBulkUpdater.h
+
+ + +
+ +
+ +

getTimeLeftToTimeout

+ + + +
+

Returns time left to bulk update timeout

+
+ + + +
- (NSTimeInterval)getTimeLeftToTimeout
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBulkUpdater.h
+
+ + +
+ +
+ +

isBeaconWaitingForUpdate:

+ + + +
+

Verify if beacon is currently waiting for update

+
+ + + +
- (BOOL)isBeaconWaitingForUpdate:(ESTBeacon *)beacon
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBulkUpdater.h
+
+ + +
+ +
+ +

isUpdateInProgressForBeacon:

+ + + +
+

Verify if beacon is currently in update process

+
+ + + +
- (BOOL)isUpdateInProgressForBeacon:(ESTBeacon *)beacon
+ + + + + + + + + + + + + + + +
+

Declared In

+ ESBulkUpdater.h
+
+ + +
+ +
+ +

startWithBeaconInfos:timeout:

+ + + +
+

Starts update process for given beacons and updates them accordingly to given config.

+
+ + + +
- (void)startWithBeaconInfos:(NSArray *)beacons timeout:(NSTimeInterval)timeout
+ + + +
+

Parameters

+ +
+
beacons
+

Array with beacons to update.

+
+ +
+
timeout
+

Timeout for bulk update operation in seconds. 0 means no timeout.

+
+ +
+ + + + + + + + + + + + + +
+

Declared In

+ ESBulkUpdater.h
+
+ + +
+ +
+ + + + +
+ + +
+
+ + + \ No newline at end of file diff --git a/Documents/Classes/ESBulkUpdaterSingleOperation.html b/Documents/Classes/ESBulkUpdaterSingleOperation.html new file mode 100644 index 000000000..36341f3ed --- /dev/null +++ b/Documents/Classes/ESBulkUpdaterSingleOperation.html @@ -0,0 +1,384 @@ + + + + + ESBulkUpdaterSingleOperation Class Reference + + + + + + +
+
+

EstimoteSDK

+ Estimote +
+ + + +
+ +
+
+ + + +
+ +
+ + + + + + + +
Inherits fromESConcurrentOperation
Declared inESBulkUpdaterSingleOperation.h
ESBulkUpdaterSingleOperation.m
+ + + + +
+ +

Overview

+

Operation that updates single beacon. It is intended to be executed on NSOperationQueue. If you want to executed it manually, read “Executing Operations Manually” chapter from Apple’s Concurrency Programming Guide.

+ +

Flow of execution: +- connects to a beacon +- updates beacon’s properties as defined in given config object +- disconnects from a beacon

+ +

In order to get notified when operation finishes, set completionBlock on it.

+
+ + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

initWithBeaconInfo:

+ + + +
+

Initialize object with ESBeaconUpdateInfo that describe all the details +for update procedure including beacon and config.

+
+ + + +
- (instancetype)initWithBeaconInfo:(ESBeaconUpdateInfo *)beacon
+ + + +
+

Parameters

+ +
+
beacon
+

Beacon information

+
+ +
+ + + +
+

Return Value

+

instance of operation object

+
+ + + + + + + + + + + +
+

Declared In

+ ESBulkUpdaterSingleOperation.h
+
+ + +
+ +
+ +

startOperation

+ + + +
+

Method used to perform opeartion outside of operation queue

+
+ + + +
- (void)startOperation
+ + + +
+

Parameters

+ +
+
completion
+

completion block containing reference to operation (self)

+
+ +
+ + + + + + + + + + + + + +
+

Declared In

+ ESBulkUpdaterSingleOperation.h
+
+ + +
+ +
+ + + + +
+ + +
+
+ + + \ No newline at end of file diff --git a/Documents/Classes/ESTBeacon.html b/Documents/Classes/ESTBeacon.html index 1fda2cc1a..de0160eda 100644 --- a/Documents/Classes/ESTBeacon.html +++ b/Documents/Classes/ESTBeacon.html @@ -57,6 +57,8 @@

ESTBeacon Class Reference

+ + @@ -71,6 +73,8 @@

ESTBeacon Class Reference

+ + @@ -118,6 +122,8 @@

ESTBeacon Class Reference

+ + @@ -132,6 +138,8 @@

ESTBeacon Class Reference

+ + @@ -208,6 +216,8 @@

ESTBeacon Class Reference

  • distance
  • +
  • estimoteSecureUUID
  • +
  • firmwareState
  • firmwareUpdateInfo
  • @@ -222,6 +232,8 @@

    ESTBeacon Class Reference

  • isMoving
  • +
  • isSecured
  • +
  • macAddress
  • major
  • @@ -270,6 +282,8 @@

    ESTBeacon Class Reference

  • enableBasicPowerMode:completion:
  • +
  • enableEstimoteSecureUUID:completion:
  • +
  • enableSmartPowerMode:completion:
  • isEqualToBeacon:
  • @@ -284,6 +298,8 @@

    ESTBeacon Class Reference

  • updateFirmwareWithProgress:completion:
  • +
  • valueObject
  • +
  • writeAdvInterval:completion:
  • writeMajor:completion:
  • @@ -323,6 +339,9 @@

    ESTBeacon Class Reference

    Inherits from NSObject + + Conforms to + NSCoding
    NSCopying Declared in ESTBeacon.h
    ESTBeacon.m @@ -539,6 +558,12 @@

    Properties Available After Connecting

    property +
  • + +   isSecured + + property +
  •   isAccelerometerAvailable @@ -569,6 +594,12 @@

    Properties Available After Connecting

    property +
  • + +   estimoteSecureUUID + + property +
  • @@ -701,6 +732,12 @@

    Modifying Configuration Settings (must be con +
  • + + – enableEstimoteSecureUUID:completion: + + +
  • @@ -735,6 +772,12 @@

    Comparing Beacons for Equality

    +
  • + + – valueObject + + +
  • @@ -1152,6 +1195,56 @@

    Discussion

    +
    +

    Declared In

    + ESTBeacon.h
    +
    + + + + +
    + +

    estimoteSecureUUID

    + + + +
    +

    A flag indicating status of Estimote Secure UUID.

    +
    + + + +
    @property (readonly, nonatomic) ESTBeaconEstimoteSecureUUID estimoteSecureUUID
    + + + + + + + +
    +

    Availability

    +

    Estimote OS 2.2

    +
    + + + + + + + +
    +

    See Also

    + +
    + + +

    Declared In

    ESTBeacon.h
    @@ -1488,6 +1581,47 @@

    See Also

    +
    +

    Declared In

    + ESTBeacon.h
    +
    + + +
    + +
    + +

    isSecured

    + + + +
    +

    A flag indicating if the beacon has UUID rotation turned on.

    +
    + + + +
    @property (readonly, nonatomic) BOOL isSecured
    + + + + + + + +
    +

    Availability

    +

    Estimote OS A2.2

    +
    + + + + + + + + +

    Declared In

    ESTBeacon.h
    @@ -1698,7 +1832,7 @@

    Discussion

  • When ranging beacons - if the beacon is in motion, the proximityUUID property will be equal to the motionProximityUUID. Note that the motionProximityUUID property is not available unless connected to the beacon, so you need to know its value in advance.

  • When monitoring regions - you can have two separate regions, one with the regular proximityUUID and one with the motionProximityUUID. Enter and exit notifications will then correspond to the beacon starting and stopping to move.

  • - +

    Warning: This feature is disabled by default. The option to enable it will be made available in an upcoming update to the SDK.

    @@ -2488,6 +2622,57 @@

    Parameters

    +
    +

    Declared In

    + ESTBeacon.h
    +
    + + +
    + +
    + +

    enableEstimoteSecureUUID:completion:

    + + + +
    +

    Enables Estimote Secure UUID.

    +
    + + + +
    - (void)enableEstimoteSecureUUID:(BOOL)enable completion:(ESTBoolCompletionBlock)completion
    + + + +
    +

    Parameters

    + +
    +
    enable
    +

    Yes to enable, No to disable Estimote Secure UUID.

    +
    + +
    +
    completion
    +

    Block with operation result.

    +
    + +
    + + + + + + + + + + + + +

    Declared In

    ESTBeacon.h
    @@ -2886,6 +3071,42 @@

    Parameters

    +
    +

    Declared In

    + ESTBeacon.h
    +
    + + +
    + +
    + +

    valueObject

    + + + +
    +

    Returns ESTBeaconVO object from ESTBeacon, so it would be easier to compare beacons with already fetched from the cloud.

    +
    + + + +
    - (ESTBeaconVO *)valueObject
    + + + + + + + + + + + + + + +

    Declared In

    ESTBeacon.h
    @@ -3121,6 +3342,11 @@

    Availability

    +
    +

    Discussion

    +

    Warning: The motionProximityUUID feature is disabled by default. The option to enable it will be made available in an upcoming update to the SDK.

    +
    + @@ -3332,7 +3558,7 @@

    Declared In