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