CSSensorRequirements Class Reference

Inherits from NSObject
Declared in CSSensorRequirements.h

Overview

Handles requirements. Requirements are a layer on top of settings that help dealing with several incompatible settings. Right now requirements should be used to handle the enabling and disabling of sensors and to set the sample interval and accuracy for a sensor. Whenever two different consumer set different intervals or accuracies, the lowest value is used.

Requirements are organized and stored per consumer. Hence, when setting a requirement one has to provide a unique string that identifies the consumer. This way, it is easy to remove consumer-related requirements later on again.

Here is some example code for setting requirements, enabling four sensors and setting the sample interval and accuracy:

 NSString* consumerName = @"com.consumer.name";
 NSArray* commonRequirements = @[
     @{kCSREQUIREMENT_FIELD_SENSOR_NAME:kCSSENSOR_ACCELERATION, kCSREQUIREMENT_FIELD_SAMPLE_INTERVAL:@35},
     @{kCSREQUIREMENT_FIELD_SENSOR_NAME:kCSSENSOR_ACCELEROMETER_BURST, kCSREQUIREMENT_FIELD_SAMPLE_INTERVAL:@30},
     @{kCSREQUIREMENT_FIELD_SENSOR_NAME:kCSSENSOR_NOISE, kCSREQUIREMENT_FIELD_SAMPLE_INTERVAL:@10},
     @{kCSREQUIREMENT_FIELD_SENSOR_NAME:kCSSENSOR_LOCATION, kCSREQUIREMENT_FIELD_SAMPLE_ACCURACY:@10000}
 ];
 [[CSSensorRequirements sharedRequirements] setRequirements:commonRequirements byConsumer:consumerName];

+ sharedRequirements

Get singleton instance

+ (CSSensorRequirements *)sharedRequirements

Declared In

CSSensorRequirements.h

+ requirementForSensor:

Helper function to create a requirement for a sensor

+ (NSDictionary *)requirementForSensor:(NSString *)sensor

Parameters

sensor

The sensor name for the sensor that should be enabled

Declared In

CSSensorRequirements.h

+ requirementForSensor:withInterval:

Helper function to create a requirement for a sensor with an interval

+ (NSDictionary *)requirementForSensor:(NSString *)sensor withInterval:(NSTimeInterval)interval

Parameters

sensor

The sensor name for the sensor that should be enabled with a certain interval

interval

Time interval describing the frequency with which the sensor should poll new data

Declared In

CSSensorRequirements.h

– setRequirements:byConsumer:

Set requirements for a specific consumer. Overwrites previous requirement for the consumer

- (void)setRequirements:(NSArray *)requirements byConsumer:(NSString *)consumer

Parameters

requirements

Array of requirements to set for that consumer. See the example above for an example of the format

consumer

Unique identifier for the consumer setting the requirement (e.g. app identifier or library identifier)

Declared In

CSSensorRequirements.h

– clearRequirementsForConsumer:

Clear the requirements of a consumer

- (void)clearRequirementsForConsumer:(NSString *)consumer

Parameters

consumer

Identifier of the consumer for which the requirements should be cleared.

Declared In

CSSensorRequirements.h

  isEnabled

Whether the requirements are enabled or disabled. They are enabled by default. If disabled, changing a requirement will not affect the settings

@property (nonatomic) BOOL isEnabled

Declared In

CSSensorRequirements.h