Skip to content

Commit c060a23

Browse files
committed
Rename SKBeacon -> SKiBeaconProximity; Support both Major and Minor
1 parent 3fae2b3 commit c060a23

9 files changed

Lines changed: 68 additions & 46 deletions

File tree

CHANGELOG.md

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,15 @@
11
# Changelog
22

33
### Next
4-
- Renamed Proximity sensor to Beacon.
4+
- Rename Proximity sensor to iBeaconProximity.
5+
- Further improvements in iBeacon Proximity Sensing.
56

67
### 0.1.2
78
- Fix crash with error message “SensorModule is already registered”.
89

910
### 0.1.1
10-
- Support csv format in sensor data
11-
- Fix crash when deregistering multiple sensors modules
11+
- Support csv format in sensor data.
12+
- Fix crash when deregistering multiple sensors modules.
1213

1314
### 0.1.0
14-
- Initial Release
15+
- Initial Release.

SensingKit.xcodeproj/project.pbxproj

Lines changed: 14 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@
6464
CFBB415419B92514002AE1A9 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = CFBB415219B92514002AE1A9 /* InfoPlist.strings */; };
6565
CFBB415619B92514002AE1A9 /* SensingKitTests.m in Sources */ = {isa = PBXBuildFile; fileRef = CFBB415519B92514002AE1A9 /* SensingKitTests.m */; };
6666
CFBB416719B928C2002AE1A9 /* SKBattery.m in Sources */ = {isa = PBXBuildFile; fileRef = CFBB416019B928C2002AE1A9 /* SKBattery.m */; };
67-
CFBB416819B928C2002AE1A9 /* SKBeacon.m in Sources */ = {isa = PBXBuildFile; fileRef = CFBB416219B928C2002AE1A9 /* SKBeacon.m */; };
67+
CFBB416819B928C2002AE1A9 /* SKiBeaconProximity.m in Sources */ = {isa = PBXBuildFile; fileRef = CFBB416219B928C2002AE1A9 /* SKiBeaconProximity.m */; };
6868
CFBB416919B928C2002AE1A9 /* SKLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = CFBB416419B928C2002AE1A9 /* SKLocation.m */; };
6969
/* End PBXBuildFile section */
7070

@@ -161,8 +161,8 @@
161161
CFBB415519B92514002AE1A9 /* SensingKitTests.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SensingKitTests.m; sourceTree = "<group>"; };
162162
CFBB415F19B928C2002AE1A9 /* SKBattery.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKBattery.h; sourceTree = "<group>"; };
163163
CFBB416019B928C2002AE1A9 /* SKBattery.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKBattery.m; sourceTree = "<group>"; };
164-
CFBB416119B928C2002AE1A9 /* SKBeacon.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKBeacon.h; sourceTree = "<group>"; };
165-
CFBB416219B928C2002AE1A9 /* SKBeacon.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKBeacon.m; sourceTree = "<group>"; };
164+
CFBB416119B928C2002AE1A9 /* SKiBeaconProximity.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKiBeaconProximity.h; sourceTree = "<group>"; };
165+
CFBB416219B928C2002AE1A9 /* SKiBeaconProximity.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKiBeaconProximity.m; sourceTree = "<group>"; };
166166
CFBB416319B928C2002AE1A9 /* SKLocation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SKLocation.h; sourceTree = "<group>"; };
167167
CFBB416419B928C2002AE1A9 /* SKLocation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SKLocation.m; sourceTree = "<group>"; };
168168
/* End PBXFileReference section */
@@ -313,8 +313,8 @@
313313
CFBB416019B928C2002AE1A9 /* SKBattery.m */,
314314
CFBB416319B928C2002AE1A9 /* SKLocation.h */,
315315
CFBB416419B928C2002AE1A9 /* SKLocation.m */,
316-
CFBB416119B928C2002AE1A9 /* SKBeacon.h */,
317-
CFBB416219B928C2002AE1A9 /* SKBeacon.m */,
316+
CFBB416119B928C2002AE1A9 /* SKiBeaconProximity.h */,
317+
CFBB416219B928C2002AE1A9 /* SKiBeaconProximity.m */,
318318
);
319319
name = SensorModules;
320320
sourceTree = "<group>";
@@ -446,7 +446,7 @@
446446
CFB0D9491B5268FC00A7982B /* SKGyroscopeData.m in Sources */,
447447
CFBB416919B928C2002AE1A9 /* SKLocation.m in Sources */,
448448
CFB0D93D1B4FFA1D00A7982B /* SKGyroscope.m in Sources */,
449-
CFBB416819B928C2002AE1A9 /* SKBeacon.m in Sources */,
449+
CFBB416819B928C2002AE1A9 /* SKiBeaconProximity.m in Sources */,
450450
CF8E9BD01B3200E7005AC2FC /* SKBeaconData.m in Sources */,
451451
CFB0D94C1B52690500A7982B /* SKMagnetometerData.m in Sources */,
452452
CFB0D94F1B52698C00A7982B /* SKDeviceMotionData.m in Sources */,
@@ -586,6 +586,10 @@
586586
buildSettings = {
587587
DEAD_CODE_STRIPPING = NO;
588588
DSTROOT = /tmp/SensingKit.dst;
589+
FRAMEWORK_SEARCH_PATHS = (
590+
"$(inherited)",
591+
"$(PROJECT_DIR)",
592+
);
589593
GCC_PRECOMPILE_PREFIX_HEADER = YES;
590594
GCC_PREFIX_HEADER = "SensingKit/SensingKit-Prefix.pch";
591595
OTHER_LDFLAGS = "-ObjC";
@@ -602,6 +606,10 @@
602606
COPY_PHASE_STRIP = NO;
603607
DEAD_CODE_STRIPPING = NO;
604608
DSTROOT = /tmp/SensingKit.dst;
609+
FRAMEWORK_SEARCH_PATHS = (
610+
"$(inherited)",
611+
"$(PROJECT_DIR)",
612+
);
605613
GCC_PRECOMPILE_PREFIX_HEADER = YES;
606614
GCC_PREFIX_HEADER = "SensingKit/SensingKit-Prefix.pch";
607615
OTHER_LDFLAGS = "-ObjC";

SensingKit/SKBeaconData.h

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -28,15 +28,17 @@
2828

2929
@interface SKBeaconData : SKSensorData
3030

31-
@property (nonatomic, strong, readonly) NSString *identifier;
31+
@property (nonatomic, readonly) NSUInteger major;
32+
@property (nonatomic, readonly) NSUInteger minor;
3233
@property (nonatomic, readonly) CLLocationAccuracy accuracy;
3334
@property (nonatomic, readonly) CLProximity proximity;
3435
@property (nonatomic, readonly) NSInteger rssi;
3536

36-
- (instancetype)initWithIdentifier:(NSString *)identifier
37-
withAccuracy:(CLLocationAccuracy)accuracy
38-
withProximity:(CLProximity)proximity
39-
withRssi:(NSInteger)rssi;
37+
- (instancetype)initWithMajor:(NSUInteger)major
38+
withMinor:(NSUInteger)minor
39+
withAccuracy:(CLLocationAccuracy)accuracy
40+
withProximity:(CLProximity)proximity
41+
withRssi:(NSInteger)rssi;
4042

4143
- (NSString *)proximityString;
4244

SensingKit/SKBeaconData.m

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,16 @@
2626

2727
@implementation SKBeaconData
2828

29-
- (instancetype)initWithIdentifier:(NSString *)identifier
30-
withAccuracy:(CLLocationAccuracy)accuracy
31-
withProximity:(CLProximity)proximity
32-
withRssi:(NSInteger)rssi
29+
- (instancetype)initWithMajor:(NSUInteger)major
30+
withMinor:(NSUInteger)minor
31+
withAccuracy:(CLLocationAccuracy)accuracy
32+
withProximity:(CLProximity)proximity
33+
withRssi:(NSInteger)rssi
3334
{
3435
if (self = [super init])
3536
{
36-
_identifier = identifier;
37+
_major = major;
38+
_minor = minor;
3739
_accuracy = accuracy;
3840
_proximity = proximity;
3941
_rssi = rssi;
@@ -64,9 +66,10 @@ - (NSString *)proximityString
6466

6567
- (NSString *)csvString
6668
{
67-
return [NSString stringWithFormat:@"%f,%@,%f,%@,%ld",
69+
return [NSString stringWithFormat:@"%f,%lu,%lu,%f,%@,%ld",
6870
[self timestampEpoch],
69-
_identifier,
71+
(unsigned long)_major,
72+
(unsigned long)_minor,
7073
_accuracy,
7174
[self proximityString],
7275
(long)_rssi];

SensingKit/SKSensorModuleManager.m

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
// SensorModules
2929
#import "SKBattery.h"
3030
#import "SKLocation.h"
31-
#import "SKBeacon.h"
31+
#import "SKiBeaconProximity.h"
3232
#import "SKAccelerometer.h"
3333
#import "SKGyroscope.h"
3434
#import "SKMagnetometer.h"
@@ -209,9 +209,10 @@ - (SKAbstractSensorModule *)createSensorModule:(SKSensorModuleType)moduleType
209209
sensorModule = [[SKLocation alloc] init];
210210
break;
211211

212-
case Beacon:
213-
sensorModule = [[SKBeacon alloc] initWithUUID:[[NSUUID alloc] initWithUUIDString:@"d45a1046-15b0-11e5-b60b-1697f925ec7b"]
214-
withDeviceId:arc4random_uniform(65535)]; // Random id
212+
case iBeaconProximity:
213+
sensorModule = [[SKiBeaconProximity alloc] initWithUUID:[[NSUUID alloc] initWithUUIDString:@"d45a1046-15b0-11e5-b60b-1697f925ec7b"]
214+
withMajor:arc4random_uniform(65535) // Random Major
215+
withMinor:arc4random_uniform(65535)]; // Random Minor
215216
break;
216217

217218
// Don't forget to break!
@@ -249,8 +250,8 @@ - (NSString *)getSensorModuleInString:(SKSensorModuleType)moduleType
249250
case Location:
250251
return @"Location";
251252

252-
case Beacon:
253-
return @"Beacon";
253+
case iBeaconProximity:
254+
return @"iBeaconProximity";
254255

255256
default:
256257
return [NSString stringWithFormat:@"Unknown SensorModule: %li", (long)moduleType];

SensingKit/SKSensorModuleType.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,5 +30,5 @@ typedef NS_ENUM(NSInteger, SKSensorModuleType) {
3030
Activity,
3131
Battery,
3232
Location,
33-
Beacon
33+
iBeaconProximity
3434
};
Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//
2-
// SKBeacon.h
2+
// SKiBeaconProximity.h
33
// SensingKit
44
//
55
// Copyright (c) 2014. Queen Mary University of London
@@ -28,9 +28,10 @@
2828
@import CoreBluetooth;
2929
@import CoreLocation;
3030

31-
@interface SKBeacon : SKAbstractSensorModule<CBPeripheralManagerDelegate, CLLocationManagerDelegate>
31+
@interface SKiBeaconProximity : SKAbstractSensorModule<CBPeripheralManagerDelegate, CLLocationManagerDelegate>
3232

3333
- (instancetype)initWithUUID:(NSUUID *)UUID
34-
withDeviceId:(NSUInteger)device_id;
34+
withMajor:(NSUInteger)major
35+
withMinor:(NSUInteger)minor;
3536

3637
@end
Lines changed: 18 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
//
2-
// SKBeacon.m
2+
// SKiBeaconProximity.m
33
// SensingKit
44
//
55
// Copyright (c) 2014. Queen Mary University of London
@@ -22,10 +22,10 @@
2222
// along with SensingKit-iOS. If not, see <http://www.gnu.org/licenses/>.
2323
//
2424

25-
#import "SKBeacon.h"
25+
#import "SKiBeaconProximity.h"
2626
#import "SKBeaconData.h"
2727

28-
@interface SKBeacon()
28+
@interface SKiBeaconProximity()
2929

3030
@property (strong, nonatomic) CLBeaconRegion *broadcast_beaconRegion;
3131
@property (strong, nonatomic) CLBeaconRegion *scan_beaconRegion;
@@ -34,27 +34,32 @@ @interface SKBeacon()
3434

3535
@end
3636

37-
@implementation SKBeacon
37+
@implementation SKiBeaconProximity
3838

3939
- (instancetype)initWithUUID:(NSUUID *)UUID
40-
withDeviceId:(NSUInteger)device_id
40+
withMajor:(NSUInteger)major
41+
withMinor:(NSUInteger)minor
4142
{
4243
if (self = [super init])
4344
{
4445
// init iBeacon managers
45-
[self initBeaconSensingWithUUID:UUID withDeviceId:device_id];
46+
[self initBeaconSensingWithUUID:UUID
47+
withMajor:major
48+
withMinor:minor];
4649
}
4750
return self;
4851
}
4952

5053
- (void)initBeaconSensingWithUUID:(NSUUID *)UUID
51-
withDeviceId:(NSUInteger)device_id
54+
withMajor:(NSUInteger)major
55+
withMinor:(NSUInteger)minor
5256
{
5357
// Get a unique identifier for the device
5458
NSString *identifier = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
5559

5660
self.broadcast_beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:UUID
57-
major:device_id
61+
major:major
62+
minor:minor
5863
identifier:identifier];
5964

6065
self.scan_beaconRegion = [[CLBeaconRegion alloc] initWithProximityUUID:UUID
@@ -146,10 +151,11 @@ - (void)locationManager:(CLLocationManager *)manager didRangeBeacons:(NSArray *)
146151
{
147152
if (beacon)
148153
{
149-
SKBeaconData *data = [[SKBeaconData alloc] initWithIdentifier:beacon.major.stringValue
150-
withAccuracy:beacon.accuracy
151-
withProximity:beacon.proximity
152-
withRssi:beacon.rssi];
154+
SKBeaconData *data = [[SKBeaconData alloc] initWithMajor:beacon.major.unsignedIntegerValue
155+
withMinor:beacon.minor.unsignedIntegerValue
156+
withAccuracy:beacon.accuracy
157+
withProximity:beacon.proximity
158+
withRssi:beacon.rssi];
153159

154160
[self submitSensorData:data];
155161
}

SensingKitTests/SensingKitTests.m

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ - (void)testSensorRegistrationDeregistration
8888
[self.sensingKit registerSensorModule:Activity];
8989
[self.sensingKit registerSensorModule:Battery];
9090
[self.sensingKit registerSensorModule:Location];
91-
[self.sensingKit registerSensorModule:Beacon];
91+
[self.sensingKit registerSensorModule:iBeaconProximity];
9292

9393
// test deregistration
9494
[self.sensingKit deregisterSensorModule:Accelerometer];
@@ -98,7 +98,7 @@ - (void)testSensorRegistrationDeregistration
9898
[self.sensingKit deregisterSensorModule:Activity];
9999
[self.sensingKit deregisterSensorModule:Battery];
100100
[self.sensingKit deregisterSensorModule:Location];
101-
[self.sensingKit deregisterSensorModule:Beacon];
101+
[self.sensingKit deregisterSensorModule:iBeaconProximity];
102102
}
103103

104104
@end

0 commit comments

Comments
 (0)