diff options
39 files changed, 2074 insertions, 0 deletions
diff --git a/.DS_Store b/.DS_Store Binary files differnew file mode 100755 index 0000000..3d14e70 --- /dev/null +++ b/.DS_Store @@ -0,0 +1,277 @@ +// +// Brsp.h +// ios_brsp_lib +// +// Created by Michael Testa on 11/1/12. +// Copyright (c) 2012 BlueRadios, Inc. All rights reserved. +// + +//The BRSP service UUID. Use this in a CBCentralManager scan to filter +#define BRSP_SERVICE_UUID @"DA2B84F1-6279-48DE-BDC0-AFBEA0226079" + +#import <Foundation/Foundation.h> +#import <CoreBluetooth/CoreBluetooth.h> + +@class Brsp; + +enum { + BrspModeIdle = 0, + BrspModeData = 1, + BrspModeRemoteCommand = 2, + BrspModeFirmwareUpdate = 4, //Not implemented yet +}; +typedef NSUInteger BrspMode; + +@protocol BrspDelegate <NSObject> + +@required +/** + Called when the open status has changed after a call to either open or close. + No writes etc will work until this method is called with an isOpen status of YES. + @param brsp The Brsp object generating this event + @param isOpen YES == Open + */ +- (void)brsp:(Brsp*)brsp OpenStatusChanged:(BOOL)isOpen; +/** + Called when the isSending changes + @param brsp The Brsp object generating this event + @param isSending YES == Sending + @see Brsp.isSending + */ +- (void)brsp:(Brsp*)brsp SendingStatusChanged:(BOOL)isSending; + +@optional +/** + Called when data is received from the peripheral. (inputBuffer written to) + All data can be retreived from the input buffer via read functions. + @param brsp The Brsp object generating this event + */ +- (void)brspDataReceived:(Brsp*)brsp; + +/** + Used to pass on CBPeripheral errors that may occur + @param brsp The Brsp object generating this event + @param error NSError object containing the error + */ +- (void)brsp:(Brsp*)brsp ErrorReceived:(NSError*)error; + +/** + Called when the BRSP mode changes. + @param brsp The Brsp object generating this event + @param mode BrspMode of the Brsp Peripheral + */ +- (void)brspModeChanged:(Brsp*)brsp BRSPMode:(BrspMode)mode; + +@end + +/** + Class used to interact with the BlueRadios BRSP service on a peripheral + */ +@interface Brsp : NSObject <CBPeripheralDelegate> + +/** + The delegate used for BrspDelegate events. + */ +@property (nonatomic, weak) id <BrspDelegate> delegate; +/** + The current BRSP mode of the peripheral. + Default mode is BrspModeData (Even when peripheral is nil or not connected) + */ +@property (nonatomic, readonly) BrspMode brspMode; +/** + A pointer to the CBPeripheral object that is associated with this device. + */ +@property (nonatomic, readonly) CBPeripheral *peripheral; +/** + An integer indicating the level of security enforced by the BRSP service on the opened port + 0 == None, 1 == Unauthenticated Pairing With Encryption, 2 == Authenticated Pairing With Encryption, 99 = Unknown + */ +@property (nonatomic, readonly) NSUInteger securityLevel; +/** + BRSP open/closed status + YES = Open + */ +@property (nonatomic, readonly) BOOL isOpen; +/** + YES if output buffer is not empty. + @note Operations such as changing the BRSP mode can only be done when not sending + */ +@property (nonatomic, readonly) BOOL isSending; +/** + Total capacity of the input buffer in bytes + */ +@property (nonatomic, readonly) NSUInteger inputBufferSize; +/** + Total capacity of the output buffer in bytes + */ +@property (nonatomic, readonly) NSUInteger outputBufferSize; +/** + Number of bytes in the input buffer + */ +@property (nonatomic, readonly) NSUInteger inputBufferCount; +/** + Number of bytes in the output buffer + */ +@property (nonatomic, readonly) NSUInteger outputBufferCount; +/** + Number of bytes that can be written to the buffer via write functions + */ +@property (nonatomic, readonly) NSUInteger outputBufferAvailableBytes; + +/** + A Convenience function that returns a CBUUID for the brsp Service + @return CBUUID object for service "DA2B84F1-6279-48DE-BDC0-AFBEA0226079" + */ ++ (CBUUID *) brspServiceUUID; + +/** + Initializer for this class + @param peripheral The CBPeripheral object to be used + @return self + @note Changes peripheral.delegate to self. If peripheral.delegate is set another object, initWithPeripheral and open will have to be called again + to reinitialize. + @note The default input and output buffer sizes are 1024 bytes + */ +- (id)initWithPeripheral:(CBPeripheral*)peripheral; + +/** + An alternate initializer for this class which sets the input and output buffer sizes. + Use this if the default buffer sizes are not adequate + @param peripheral The CBPeripheral object to be used + @param in_size The fixed input buffer size to use + @param out_size The fixed output buffer size to use + @return self + @note Changes peripheral.delegate to self. If peripheral.delegate is set another object, initWithPeripheral and open will have to be called again + to reinitialize. + @note The default input and output buffer sizes are 1024 bytes + */ +- (id)initWithPeripheral:(CBPeripheral*)peripheral InputBufferSize:(NSUInteger)in_size OutputBufferSize:(NSUInteger)out_size; + +/** + Changes BRSP mode. + @param mode An int used to set the mode of a peripheral. + 1 = data mode, 2 = remote command mode + @return An NSError object containing an error caused by an invalid state while attempting to change the mode. + If successful, return will be nil. + */ +- (NSError*)changeBrspMode:(BrspMode)mode; + +/** + Opens a BRSP connection. (Prepares peipheral for using the BRSP service, characteristics, and notifications) + */ +- (void)open; + +/** + Closes a BRSP connection. (Turns off notifications, etc) + */ +- (void)close; + +/** + Discards all unread data from the receive buffer. + */ +- (void)flushInputBuffer; + +/** + Discards unread data from the start of the input buffer by a number of bytes. + This is useful when using the peek functions. + @param byteCount Number of bytes to remove + */ +- (void)flushInputBuffer:(NSUInteger)byteCount; + +/** + Discards all unsent data from the transmit buffer. + */ +- (void)flushOutputBuffer; + +/** + Reads bytes without removing them from the input buffer + @param byteCount Number of bytes to read + @return Bytes requested as NSData + @note If byteCount is greater than the inputBufferCount, function will return all bytes + @note If byteCount is 0 or inputBuffer is empty, function will return nil + @note All reads are performed synchronously + */ +- (NSData *)peekBytes:(NSUInteger)byteCount; + +/** + Reads bytes without removing them from the input buffer + @param byteCount Number of bytes to read + @return Bytes requested as NSString decoded using NSUTF8StringEncoding + @note If byteCount is greater than the inputBufferCount, function will return all bytes + @note If byteCount == 0 or inputBuffer is empty, will return an empty string + @note All reads are performed synchronously + */ +- (NSString *)peekString:(NSUInteger)byteCount; + +/** + Reads all bytes without removing them from the input buffer + @return Bytes requested as NSData + @note If inputBuffer is empty, function will return nil + @see peekBytes: + */ +- (NSData *)peekBytes; + +/** + Reads all bytes without removing them from the input buffer + @return Bytes requested as NSString decoded using NSUTF8StringEncoding + @note If inputBuffer is empty, will return an empty string + @see peekString: + */ +- (NSString *)peekString; + +/** + Reads and removes bytes from the input buffer + @param byteCount Number of bytes to read + @return Bytes requested as NSData + @note If byteCount is greater than the inputBufferCount, function will return all bytes + @note If byteCount is 0 or inputBuffer is empty, will return nil + @note All reads are performed synchronously + */ +- (NSData *)readBytes:(NSUInteger)byteCount; + +/** + Reads and removes bytes from the input buffer + @param byteCount Number of bytes to read + @return Bytes requested as NSString decoded using NSUTF8StringEncoding + @note If byteCount is greater than the inputBufferCount, function will return all bytes + @note If byteCount == 0 or inputBuffer is empty, will return an empty string + @note All reads are performed synchronously + */ +- (NSString *)readString:(NSUInteger)byteCount; + +/** + Reads and removes all bytes from the input buffer + @return Bytes requested as NSData + @note If inputBuffer is empty, function will return nil + @see readBytes: + */ +- (NSData *)readBytes; + +/** + Reads and removes all bytes from the input buffer + @return Bytes requested as NSString decoded using NSUTF8StringEncoding + @note If inputBuffer is empty, will return an empty string + @see readString: + */ +- (NSString *)readString; + +/** + Writes bytes to the output buffer and starts sending them to the brsp peripheral + @param bytes NSData containing the bytes to send + @return An NSError object containing an error caused by an invalid state, not enough buffer space etc. + If successful, return will be nil. + @note All writes to the target peripheral are performed asynchronously. + */ +- (NSError *)writeBytes:(NSData*)bytes; + +/** + Writes a string the output buffer and starts sending to the brsp peripheral + @param str NSString containing the text to send + @return An NSError object containing an error caused by an invalid state, not enough buffer space etc. + If successful, return will be nil. + @note Bytes are encoded using NSUTF8StringEncoding + @note All writes to the target peripheral are performed asynchronously. + */ +- (NSError *)writeString:(NSString*)str; + +@end diff --git a/Default-568h@2x.png b/Default-568h@2x.png Binary files differnew file mode 100644 index 0000000..0891b7a --- /dev/null +++ b/Default-568h@2x.png diff --git a/Default@2x.png b/Default@2x.png Binary files differnew file mode 100755 index 0000000..1a3b4bf --- /dev/null +++ b/Default@2x.png diff --git a/Waydio.h b/Waydio.h new file mode 100644 index 0000000..33dbecc --- /dev/null +++ b/Waydio.h @@ -0,0 +1,136 @@ +// +// Waydio.h +// waydio_comms_demo +// +// Created by Tim Redfern on 01/09/2013. +// +// + +// +// ios_brsp_lib +// Created by Michael Testa on 11/1/12. +// Copyright (c) 2012 BlueRadios, Inc. All rights reserved. +// + +//The BRSP service UUID. Use this in a CBCentralManager scan to filter +#define BRSP_SERVICE_UUID @"DA2B84F1-6279-48DE-BDC0-AFBEA0226079" + +#import <Foundation/Foundation.h> +#import <CoreBluetooth/CoreBluetooth.h> +#import "Brsp.h" + +@class Waydio; + +@protocol WaydioDelegate <NSObject> + +@required +/** + Called when the open status has changed after a call to either open or close. + @param waydio The Waydio object generating this event + @param isOpen YES == Open + */ +- (void)waydio:(Waydio*)waydio OpenStatusChanged:(BOOL)isOpen; +/** + Called when the measured weight changes + @param waydio The Waydio object generating this event + @param weight + */ +- (void)waydio:(Waydio*)waydio WeightChanged:(Float32)weight; +/** + Called when the battery level changes + @param waydio The Waydio object generating this event + @param batteryPercent + */ +- (void)waydio:(Waydio*)waydio BatteryChanged:(Float32)batteryPercent; +/** + Called when the isSending changes + @param waydio The Waydio object generating this event + @param isOpen YES == Pressed + */ +- (void)waydio:(Waydio*)waydio ButtonChanged:(BOOL)isPressed; + +@optional + +/** + Used to pass on CBPeripheral errors that may occur + @param brsp The Brsp object generating this event + @param error NSError object containing the error + */ +- (void)waydio:(Waydio*)waydio ErrorReceived:(NSError*)error; + +@end + +/** + Class used to interact with the Waydio peripheral + */ +@interface Waydio : NSObject <CBPeripheralDelegate> { + + id <WaydioDelegate> delegate; +} + +/** + The delegate used for WaydioDelegate events. + */ +@property (retain) id <WaydioDelegate> delegate; +/** + A pointer to the CBPeripheral object that is associated with this device. + */ +@property (nonatomic, readonly) CBPeripheral *peripheral; +/** + An integer indicating the level of security enforced by the Waydio service on the opened port + 0 == None, 1 == Unauthenticated Pairing With Encryption, 2 == Authenticated Pairing With Encryption, 99 = Unknown + */ +@property (nonatomic, readonly) NSUInteger securityLevel; +/** + Waydio open/closed status + YES = Open + */ +@property (nonatomic, readonly) BOOL isOpen; + +/** + The BRSP object used to communicate with waydio + */ +@property (strong, nonatomic) Brsp *brspObject; + +/** + A Convenience function that returns a CBUUID for the brsp Service + @return CBUUID object for service "DA2B84F1-6279-48DE-BDC0-AFBEA0226079" + */ ++ (CBUUID *) brspServiceUUID; + +/** + Initializer for this class + @param peripheral The CBPeripheral object to be used + @return self + @note Changes peripheral.delegate to self. If peripheral.delegate is set another object, initWithPeripheral and open will have to be called again + to reinitialize. + @note The default input and output buffer sizes are 1024 bytes + */ +- (id)initWithPeripheral:(CBPeripheral*)peripheral; + +/** + An alternate initializer for this class which sets the input and output buffer sizes. + Use this if the default buffer sizes are not adequate + @param peripheral The CBPeripheral object to be used + @param in_size The fixed input buffer size to use + @param out_size The fixed output buffer size to use + @return self + @note Changes peripheral.delegate to self. If peripheral.delegate is set another object, initWithPeripheral and open will have to be called again + to reinitialize. + @note The default input and output buffer sizes are 1024 bytes + */ +- (id)initWithPeripheral:(CBPeripheral*)peripheral InputBufferSize:(NSUInteger)in_size OutputBufferSize:(NSUInteger)out_size; + +/** + Opens a Waydio connection. (Prepares peipheral for using the Waydio service, characteristics, and notifications) + */ +- (void)open; + +/** + Closes a Waydio connection. (Turns off notifications, etc) + */ +- (void)close; + + + +@end diff --git a/Waydio.m b/Waydio.m new file mode 100644 index 0000000..6cb736c --- /dev/null +++ b/Waydio.m @@ -0,0 +1,57 @@ +// +// Waydio.m +// waydio_comms_demo +// +// Created by Tim Redfern on 09/09/2013. +// +// + +#import "Waydio.h" + +@implementation Waydio + + +@synthesize delegate; + +- (id)initWithPeripheral:(CBPeripheral*)peripheral { + return self; +} + +/** + An alternate initializer for this class which sets the input and output buffer sizes. + Use this if the default buffer sizes are not adequate + @param peripheral The CBPeripheral object to be used + @param in_size The fixed input buffer size to use + @param out_size The fixed output buffer size to use + @return self + @note Changes peripheral.delegate to self. If peripheral.delegate is set another object, initWithPeripheral and open will have to be called again + to reinitialize. + @note The default input and output buffer sizes are 1024 bytes + */ +- (id)initWithPeripheral:(CBPeripheral*)peripheral InputBufferSize:(NSUInteger)in_size OutputBufferSize:(NSUInteger)out_size { + // + return self; +} + ++ (CBUUID *) brspServiceUUID{ + return [CBUUID UUIDWithString:BRSP_SERVICE_UUID]; +} + + +/** + Opens a Waydio connection. (Prepares peipheral for using the Waydio service, characteristics, and notifications) + */ +- (void)open { + //[[self delegate] OpenStatusChanged:YES]; + //[NSTimer scheduledTimerWithTimeInterval:5.0 target:self + // selector:@selector(processComplete) userInfo:nil repeats:YES]; +}; + +/** + Closes a Waydio connection. (Turns off notifications, etc) + */ +- (void)close { + +} + +@end
\ No newline at end of file diff --git a/app_store_images/nBlueTerm1024.png b/app_store_images/nBlueTerm1024.png Binary files differnew file mode 100755 index 0000000..7f32ee5 --- /dev/null +++ b/app_store_images/nBlueTerm1024.png diff --git a/app_store_images/nBlueTerm512.png b/app_store_images/nBlueTerm512.png Binary files differnew file mode 100755 index 0000000..779e76e --- /dev/null +++ b/app_store_images/nBlueTerm512.png diff --git a/app_store_images/screenshot1.png b/app_store_images/screenshot1.png Binary files differnew file mode 100755 index 0000000..4725411 --- /dev/null +++ b/app_store_images/screenshot1.png diff --git a/app_store_images/screenshot2.png b/app_store_images/screenshot2.png Binary files differnew file mode 100755 index 0000000..f80f524 --- /dev/null +++ b/app_store_images/screenshot2.png diff --git a/icon.png b/icon.png Binary files differnew file mode 100755 index 0000000..65c845f --- /dev/null +++ b/icon.png diff --git a/libios_brsp.a b/libios_brsp.a Binary files differnew file mode 100644 index 0000000..7db2d73 --- /dev/null +++ b/libios_brsp.a diff --git a/libios_brsp.a_device b/libios_brsp.a_device Binary files differnew file mode 100644 index 0000000..7db2d73 --- /dev/null +++ b/libios_brsp.a_device diff --git a/libios_brsp.a_simulator b/libios_brsp.a_simulator Binary files differnew file mode 100644 index 0000000..a7ed448 --- /dev/null +++ b/libios_brsp.a_simulator diff --git a/sampleclient/.DS_Store b/sampleclient/.DS_Store Binary files differnew file mode 100755 index 0000000..5008ddf --- /dev/null +++ b/sampleclient/.DS_Store diff --git a/sampleclient/AppDelegate.h b/sampleclient/AppDelegate.h new file mode 100755 index 0000000..262717d --- /dev/null +++ b/sampleclient/AppDelegate.h @@ -0,0 +1,21 @@ +// +// AppDelegate.h +// sampleterm +// +// Created by Michael Testa on 11/1/12. +// Copyright (c) Blueradios, Inc. All rights reserved. +// + +#import <UIKit/UIKit.h> +#import <CoreBluetooth/CoreBluetooth.h> + +@interface AppDelegate : UIResponder <UIApplicationDelegate> + +@property (strong, nonatomic) UIWindow *window; +@property (strong, nonatomic) CBCentralManager *cbCentral; +@property (strong, nonatomic) CBPeripheral *activePeripheral; + +//Returns a pointer to the shared AppDelegate ++(AppDelegate*)app; + +@end diff --git a/sampleclient/AppDelegate.m b/sampleclient/AppDelegate.m new file mode 100755 index 0000000..1e46e92 --- /dev/null +++ b/sampleclient/AppDelegate.m @@ -0,0 +1,66 @@ +// +// AppDelegate.m +// sampleterm +// +// Created by Michael Testa on 11/1/12. +// Copyright (c) Blueradios, Inc. All rights reserved. +// + +#import "AppDelegate.h" + +@implementation AppDelegate + +@synthesize window = _window; +@synthesize cbCentral; +@synthesize activePeripheral; + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application +{ + /* + Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. + */ +} + +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + /* + Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. + */ +} + +- (void)applicationWillEnterForeground:(UIApplication *)application +{ + /* + Called as part of the transition from the background to the inactive state; here you can undo many of the changes made on entering the background. + */ +} + +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + /* + Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. + */ +} + +- (void)applicationWillTerminate:(UIApplication *)application +{ + /* + Called when the application is about to terminate. + Save data if appropriate. + See also applicationDidEnterBackground:. + */ +} + ++(AppDelegate*)app { + return (AppDelegate*)[[UIApplication sharedApplication] delegate]; +} + + +@end diff --git a/sampleclient/ConnectionController.h b/sampleclient/ConnectionController.h new file mode 100755 index 0000000..d8a7755 --- /dev/null +++ b/sampleclient/ConnectionController.h @@ -0,0 +1,32 @@ +// +// ConnectionController.h +// sampleterm +// +// Created by Michael Testa on 11/1/12. +// Copyright (c) Blueradios, Inc. All rights reserved. +// + +#import <UIKit/UIKit.h> +#import "AppDelegate.h" +#import "Waydio.h" + +@interface ConnectionController : UIViewController <UITextFieldDelegate, WaydioDelegate, CBCentralManagerDelegate> { + UITextField *_inputText; + NSMutableString *_outputText; //used as string data for textView to make string concatenations more efficient + NSArray *_allCommands; //All commands sent by the get settings button + NSMutableArray *_commandQueue; //An array of commands queued for sending +} + +@property (strong, nonatomic) Waydio *waydioObject; +@property (strong, nonatomic) IBOutlet UITextView *textView; + +@property (strong, nonatomic) IBOutlet UIButton *disconnectButton; + +@property (weak, nonatomic) IBOutlet UILabel *weightLabel; +@property (weak, nonatomic) IBOutlet UILabel *weightReading; +@property (weak, nonatomic) IBOutlet UILabel *batteryLabel; +@property (weak, nonatomic) IBOutlet UILabel *batteryReading; + +@property (weak, nonatomic) IBOutlet UILabel *buttonReading; + +@end diff --git a/sampleclient/ConnectionController.m b/sampleclient/ConnectionController.m new file mode 100755 index 0000000..170b0a0 --- /dev/null +++ b/sampleclient/ConnectionController.m @@ -0,0 +1,180 @@ +// +// ConnectionController.m +// sampleterm +// +// Created by Michael Testa on 11/1/12. +// Copyright (c) Blueradios, Inc. All rights reserved. +// + +#import "ConnectionController.h" + +//Make this number larger or smaller to see more or less output in the textview +#define MAX_TEXT_VIEW_CHARACTERS 800 + +@implementation ConnectionController + +#pragma mark waydioDelegate + +- (void)waydio:(Waydio*)waydio OpenStatusChanged:(BOOL)isOpen { + +} +/** + Called when the measured weight changes + @param waydio The Waydio object generating this event + @param weight + */ +- (void)waydio:(Waydio*)waydio WeightChanged:(Float32)weight { + +} +/** + Called when the battery level changes + @param waydio The Waydio object generating this event + @param batteryPercent + */ +- (void)waydio:(Waydio*)waydio BatteryChanged:(Float32)batteryPercent { + +} +/** + Called when the isSending changes + @param waydio The Waydio object generating this event + @param isOpen YES == Pressed + */ +- (void)waydio:(Waydio*)waydio ButtonChanged:(BOOL)isPressed { + +} + +#pragma mark CBCentralManagerDelegate +- (void)centralManagerDidUpdateState:(CBCentralManager *)central { + +} + +- (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral { + //call the open function to prepare the brsp service + //[self.brspObject open]; +} + +- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error { + //[self.brspObject close]; + [self.navigationController popViewControllerAnimated:YES]; +} + +- (void)viewDidLoad { + [super viewDidLoad]; + self.navigationItem.title = [AppDelegate app].activePeripheral.name; + [_inputText setDelegate:self]; + _allCommands = [NSMutableArray new]; + [self loadCommandArray]; + //_lastMode = BrspModeData; //Default brsp mode +} + +-(void)loadCommandArray { + _allCommands = [NSArray arrayWithObjects: + @"ATMT?", + @"ATV?", + @"ATA?", + @"ATSN?", + @"ATSZ?", + @"ATSFC?", + @"ATSCL?", + @"ATSRM?", + @"ATSDIF?", + @"ATSPL?", + @"ATSUART?", + @"ATSPIO?,0", + @"ATSPIO?,1", + @"ATSPIO?,2", + @"ATSPIO?,3", + @"ATSPIO?,4", + @"ATSPIO?,5", + @"ATSPIO?,6", + @"ATSPIO?,7", + @"ATSPIO?,8", + @"ATSPIO?,9", + @"ATSPIO?,10", + @"ATSPIO?,11", + @"ATSPIO?,12", + @"ATSPIO?,13", + @"ATSPIO?,14", + @"ATSLED?,0", + @"ATSLED?,1", + @"ATSSP?", + @"ATSPK?", + @"ATSDBLE?", + @"ATSBRSP?", + @"ATSDSLE?", + @"ATSDSTLE?", + @"ATSDILE?", + @"ATSDITLE?", + @"ATSDMTLE?", + @"ATSDCP?", + @"ATSPLE?", + //D2 Modules only +// @"ATS?", +// @"ATLCA?", +// @"ATSP?", +// @"ATSCOD?", + nil]; +} + +- (void)viewWillAppear:(BOOL)animated { + [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; + //[self disableButtons]; + [AppDelegate app].cbCentral.delegate = self; + + //init the object with default buffer sizes of 1024 bytes +// self.brspObject = [[Brsp alloc] initWithPeripheral:[AppDelegate app].activePeripheral]; + //init with custom buffer sizes + //self.brspObject = [[Brsp alloc] initWithPeripheral:[AppDelegate app].activePeripheral InputBufferSize:512 OutputBufferSize:512]; + + //It is important to set this delegate before calling [Brsp open] + //self.brspObject.delegate = self; + //Use CBCentral Manager to connect this peripheral + [[AppDelegate app].cbCentral connectPeripheral:[AppDelegate app].activePeripheral options:nil]; + _outputText = [NSMutableString stringWithCapacity:MAX_TEXT_VIEW_CHARACTERS]; + [super viewWillAppear:animated]; + + //_presses=0; +} + +- (void)viewDidUnload { + [super viewDidUnload]; +} + +- (void)viewWillDisappear:(BOOL)animated { + //call close to disable notifications etc (Not required) + //[brspObject close]; + //Use CBCentralManager to close the connection to this peripheral + [[AppDelegate app].cbCentral cancelPeripheralConnection:[AppDelegate app].activePeripheral]; + [super viewWillDisappear:animated]; +} + +- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation { + switch(interfaceOrientation) + { + case UIInterfaceOrientationLandscapeLeft: + return NO; + case UIInterfaceOrientationLandscapeRight: + return NO; + default: + return YES; + } +} + + +#pragma mark - UI +- (IBAction)disconnectButton:(id)sender { + /* + //Save the brsp mode so it can be switched back when this process is complete + _lastMode = self.brspObject.brspMode; + if (brspObject.brspMode != BrspModeData) + [self.brspObject changeBrspMode:BrspModeData]; //change brsp mode to data + for (int i=1; i <= 10; i++) { + //Write numbers 1-10 to the device + NSError *error = [self.brspObject writeString:[NSString stringWithFormat:@"%i\r\n", i%10]]; + if (error) + NSLog(@"%@", error.description); + } + */ +} + +@end diff --git a/sampleclient/MainStoryboard.storyboard b/sampleclient/MainStoryboard.storyboard new file mode 100755 index 0000000..908994a --- /dev/null +++ b/sampleclient/MainStoryboard.storyboard @@ -0,0 +1,195 @@ +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="3084" systemVersion="12D78" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="chw-46-jAo"> + <dependencies> + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="2083"/> + </dependencies> + <scenes> + <!--Scan Controller - Select Device--> + <scene sceneID="IfQ-sd-xu9"> + <objects> + <viewController id="hDM-Al-XXx" customClass="ScanController" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="e7o-wp-2MY"> + <rect key="frame" x="0.0" y="64" width="320" height="416"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="kd5-hv-IOF"> + <rect key="frame" x="0.0" y="0.0" width="320" height="355"/> + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + <prototypes> + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="Reuse Identifier" id="Czi-yq-CF3"> + <rect key="frame" x="0.0" y="22" width="320" height="44"/> + <autoresizingMask key="autoresizingMask"/> + <view key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center"> + <rect key="frame" x="0.0" y="0.0" width="300" height="43"/> + <autoresizingMask key="autoresizingMask"/> + <color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="calibratedWhite"/> + </view> + <connections> + <segue destination="6Co-CY-QOi" kind="push" identifier="cellSegue" id="96p-O4-0cc"/> + </connections> + </tableViewCell> + </prototypes> + <connections> + <outlet property="dataSource" destination="hDM-Al-XXx" id="ZMe-u1-iMV"/> + <outlet property="delegate" destination="hDM-Al-XXx" id="E2h-qb-9lG"/> + </connections> + </tableView> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="NdL-GX-MJW"> + <rect key="frame" x="20" y="368" width="120" height="37"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/> + <state key="normal" title="Scan"> + <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="startScanButton:" destination="hDM-Al-XXx" eventType="touchUpInside" id="cU9-KC-SXC"/> + </connections> + </button> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="dUj-0w-c6F"> + <rect key="frame" x="180" y="368" width="120" height="37"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/> + <state key="normal" title="Stop Scan"> + <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="stopScanButton:" destination="hDM-Al-XXx" eventType="touchUpInside" id="Ppt-sS-SNt"/> + </connections> + </button> + </subviews> + <color key="backgroundColor" cocoaTouchSystemColor="scrollViewTexturedBackgroundColor"/> + </view> + <navigationItem key="navigationItem" title="Select Device" id="3Jc-oH-x5M"/> + <connections> + <outlet property="_deviceTableView" destination="kd5-hv-IOF" id="qJw-EN-Buo"/> + <outlet property="_scanButton" destination="NdL-GX-MJW" id="1AQ-Ik-LGI"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="C8G-bR-zgH" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="492" y="-143"/> + </scene> + <!--Connection Controller--> + <scene sceneID="sXX-xB-gIc"> + <objects> + <viewController id="6Co-CY-QOi" customClass="ConnectionController" sceneMemberID="viewController"> + <view key="view" contentMode="scaleToFill" id="gwo-2B-OZu"> + <rect key="frame" x="0.0" y="64" width="320" height="416"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <subviews> + <button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" id="ecM-M5-w4n"> + <rect key="frame" x="108" y="369" width="105" height="44"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="boldSystem" pointSize="15"/> + <state key="normal" title="Disconnect"> + <color key="titleColor" red="0.19607843459999999" green="0.30980393290000002" blue="0.52156865600000002" alpha="1" colorSpace="calibratedRGB"/> + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/> + </state> + <state key="highlighted"> + <color key="titleColor" white="1" alpha="1" colorSpace="calibratedWhite"/> + </state> + <connections> + <action selector="getSettings:" destination="6Co-CY-QOi" eventType="touchUpInside" id="ul8-L4-zrT"/> + </connections> + </button> + <textView clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" indicatorStyle="black" editable="NO" id="cGV-n4-9ji" userLabel="textView"> + <rect key="frame" x="5" y="5" width="310" height="205"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <color key="backgroundColor" red="1" green="1" blue="1" alpha="1" colorSpace="calibratedRGB"/> + <fontDescription key="fontDescription" type="system" pointSize="14"/> + <textInputTraits key="textInputTraits" autocapitalizationType="sentences"/> + <connections> + <outlet property="delegate" destination="6Co-CY-QOi" id="HUH-im-eDb"/> + </connections> + </textView> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Weight:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="OZ5-9M-I1x" userLabel="label1"> + <rect key="frame" x="20" y="246" width="58" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Battery:" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="5km-Vi-7hx" userLabel="label3"> + <rect key="frame" x="20" y="275" width="59" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="zKS-cw-AQg" userLabel="label2"> + <rect key="frame" x="86" y="246" width="42" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="ydm-ls-dqM" userLabel="label4"> + <rect key="frame" x="86" y="275" width="42" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> + <nil key="highlightedColor"/> + </label> + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="Label" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Ea1-A6-mdk" userLabel="label5"> + <rect key="frame" x="192" y="258" width="42" height="21"/> + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> + <accessibility key="accessibilityConfiguration"> + <accessibilityTraits key="traits" none="YES"/> + </accessibility> + <fontDescription key="fontDescription" type="system" pointSize="17"/> + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/> + <nil key="highlightedColor"/> + </label> + </subviews> + <color key="backgroundColor" cocoaTouchSystemColor="scrollViewTexturedBackgroundColor"/> + <gestureRecognizers/> + </view> + <toolbarItems/> + <navigationItem key="navigationItem" id="uLf-vX-Maj"/> + <simulatedNavigationBarMetrics key="simulatedTopBarMetrics" prompted="NO"/> + <connections> + <outlet property="batteryLabel" destination="5km-Vi-7hx" id="zkS-Uk-m5d"/> + <outlet property="batteryReading" destination="ydm-ls-dqM" id="FbC-49-5sj"/> + <outlet property="buttonGetSettings" destination="ecM-M5-w4n" id="V6s-Cg-nxq"/> + <outlet property="buttonReading" destination="Ea1-A6-mdk" id="vab-Ze-c7Z"/> + <outlet property="disconnectButton" destination="ecM-M5-w4n" id="xbP-mt-QDZ"/> + <outlet property="textView" destination="cGV-n4-9ji" id="7k2-1Y-0W7"/> + <outlet property="weightLabel" destination="OZ5-9M-I1x" id="Mx0-RN-hxL"/> + <outlet property="weightReading" destination="zKS-cw-AQg" id="w9R-mm-pFy"/> + </connections> + </viewController> + <placeholder placeholderIdentifier="IBFirstResponder" id="iyI-Bn-xs0" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="938" y="-143"/> + </scene> + <!--Navigation Controller--> + <scene sceneID="iv5-3O-T2y"> + <objects> + <navigationController definesPresentationContext="YES" id="chw-46-jAo" sceneMemberID="viewController"> + <navigationBar key="navigationBar" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="scaleToFill" id="s8h-iY-QXM"> + <autoresizingMask key="autoresizingMask"/> + </navigationBar> + <connections> + <segue destination="hDM-Al-XXx" kind="relationship" relationship="rootViewController" id="rCK-kI-det"/> + </connections> + </navigationController> + <placeholder placeholderIdentifier="IBFirstResponder" id="d7B-fr-BOp" userLabel="First Responder" sceneMemberID="firstResponder"/> + </objects> + <point key="canvasLocation" x="33" y="-143"/> + </scene> + </scenes> + <simulatedMetricsContainer key="defaultSimulatedMetrics"> + <simulatedStatusBarMetrics key="statusBar"/> + <simulatedOrientationMetrics key="orientation"/> + <simulatedScreenMetrics key="destination"/> + </simulatedMetricsContainer> +</document>
\ No newline at end of file diff --git a/sampleclient/ScanController.h b/sampleclient/ScanController.h new file mode 100755 index 0000000..4d3538b --- /dev/null +++ b/sampleclient/ScanController.h @@ -0,0 +1,27 @@ +// +// ScanController.h +// sampleterm +// +// Created by Michael Testa on 11/1/12. +// Copyright (c) Blueradios, Inc. All rights reserved. +// + +#import <UIKit/UIKit.h> +#import "AppDelegate.h" +#import "ConnectionController.h" +#import "Waydio.h" + +@interface ScanController : UIViewController <UITableViewDelegate, UITableViewDataSource, CBCentralManagerDelegate> { + IBOutlet UITableView *_deviceTableView; + IBOutlet UIButton *_scanButton; + NSMutableArray *_peripherals; +} + +@property (strong, nonatomic) UITableView* deviceTableView; + +//UI Elements +- (IBAction)startScanButton:(id)sender; +- (IBAction)stopScanButton:(id)sender; +- (void)enableButton:(UIButton*)butt; +- (void)disableButton:(UIButton*)butt; +@end diff --git a/sampleclient/ScanController.m b/sampleclient/ScanController.m new file mode 100755 index 0000000..7d59c2e --- /dev/null +++ b/sampleclient/ScanController.m @@ -0,0 +1,158 @@ +// +// ScanController.m +// sampleterm +// +// Created by Michael Testa on 11/1/12. +// Copyright (c) Blueradios, Inc. All rights reserved. +// + +#import "ScanController.h" + +@implementation ScanController + +@synthesize deviceTableView = _deviceTableView; + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; +} + +#pragma mark - View lifecycle + +- (void)viewDidLoad +{ + [super viewDidLoad]; + _peripherals = [NSMutableArray new]; + self.navigationItem.title = @"Select Device"; + [self disableButton:_scanButton]; + [AppDelegate app].cbCentral = [[CBCentralManager alloc] initWithDelegate:self queue:nil]; +} + +- (void)viewDidUnload +{ + [super viewDidUnload]; +} + +- (void)viewWillAppear:(BOOL)animated +{ + [AppDelegate app].cbCentral.delegate = self; + [super viewWillAppear:animated]; +} + +- (void)viewDidAppear:(BOOL)animated +{ + [super viewDidAppear:animated]; +} + +- (void)viewWillDisappear:(BOOL)animated +{ + [super viewWillDisappear:animated]; +} + +- (void)viewDidDisappear:(BOOL)animated +{ + [super viewDidDisappear:animated]; +} + +#pragma mark - Table options + +//********************************************************************************************************************************************************** +//Table Options +//********************************************************************************************************************************************************** +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { + return 1; +} + +- (NSInteger)tableView:(UITableView *)TableView numberOfRowsInSection:(NSInteger)section { + return _peripherals.count; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { + + static NSString *CellIdentifier = @"Cell"; + + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; + if (cell == nil) { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; + } + // Configure the cell. + + CBPeripheral *peripheral = [_peripherals objectAtIndex:indexPath.row]; + + cell.textLabel.text = peripheral.name; + cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator; + + return cell; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { + [self performSegueWithIdentifier:@"cellSegue" sender:self]; +} + +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender{ + if ([[segue identifier] isEqualToString:@"cellSegue"]) { + [self stopScanButton:nil]; + NSIndexPath *indexPath = [self.deviceTableView indexPathForSelectedRow]; + + [AppDelegate app].activePeripheral = [_peripherals objectAtIndex:indexPath.row]; + [self.deviceTableView deselectRowAtIndexPath:indexPath animated:YES]; + } +} +- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {return NO;} + +#pragma mark - UI + +- (void) startScanButton:(id)sender { + [UIApplication sharedApplication].networkActivityIndicatorVisible = YES; + [_peripherals removeAllObjects]; + [self.deviceTableView reloadData]; + [self disableButton:_scanButton]; + [[AppDelegate app].cbCentral scanForPeripheralsWithServices:[NSArray arrayWithObject:[Waydio brspServiceUUID]] options:nil]; +} + +- (void) stopScanButton:(id)sender { + [[AppDelegate app].cbCentral stopScan]; + [self enableButton:_scanButton]; + [UIApplication sharedApplication].networkActivityIndicatorVisible = NO; +} + +- (void)enableButton:(UIButton*)butt { + butt.enabled = YES; + butt.alpha = 1.0; +} + +- (void)disableButton:(UIButton*)butt { + butt.enabled = NO; + butt.alpha = 0.5; +} + +#pragma mark - CBCentralManagerDelegate + +- (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral { +} +- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error { +} +- (void)centralManager:(CBCentralManager *)central didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error { +} +- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI { + if (![_peripherals containsObject:peripheral]) { + [_peripherals addObject:peripheral]; + [self.deviceTableView reloadData]; + } +} +-(void)retrieveConnectedPeripherals { +} + +- (void)centralManager:(CBCentralManager *)central didRetrieveConnectedPeripherals:(NSArray *)peripheralslist { +} + +- (void)centralManager:(CBCentralManager *)central didRetrievePeripherals:(NSArray *)peripherals { +} + +- (void)centralManagerDidUpdateState:(CBCentralManager *)central { + printf("Status of CoreBluetooth central manager changed %d \r\n",central.state); + if (central.state==CBCentralManagerStatePoweredOn) { + [self enableButton:_scanButton]; + } +} +@end diff --git a/sampleclient/en.lproj/InfoPlist.strings b/sampleclient/en.lproj/InfoPlist.strings new file mode 100755 index 0000000..477b28f --- /dev/null +++ b/sampleclient/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/sampleclient/main.m b/sampleclient/main.m new file mode 100755 index 0000000..1f1654c --- /dev/null +++ b/sampleclient/main.m @@ -0,0 +1,15 @@ +// +// main.m +// sampleclient + + +#import <UIKit/UIKit.h> + +#import "AppDelegate.h" + +int main(int argc, char *argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); + } +} diff --git a/sampleclient/waydio_comms_demo-Info.plist b/sampleclient/waydio_comms_demo-Info.plist new file mode 100644 index 0000000..9ad6ac8 --- /dev/null +++ b/sampleclient/waydio_comms_demo-Info.plist @@ -0,0 +1,58 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>CFBundleDevelopmentRegion</key> + <string>en</string> + <key>CFBundleDisplayName</key> + <string>waydio</string> + <key>CFBundleExecutable</key> + <string>${EXECUTABLE_NAME}</string> + <key>CFBundleIconFiles</key> + <array> + <string>icon.png</string> + <string>icon@2x.png</string> + </array> + <key>CFBundleIcons</key> + <dict> + <key>CFBundlePrimaryIcon</key> + <dict> + <key>CFBundleIconFiles</key> + <array> + <string>icon.png</string> + <string>icon@2x.png</string> + </array> + <key>UIPrerenderedIcon</key> + <false/> + </dict> + </dict> + <key>CFBundleIdentifier</key> + <string>${PRODUCT_NAME:rfc1034identifier}</string> + <key>CFBundleInfoDictionaryVersion</key> + <string>6.0</string> + <key>CFBundleName</key> + <string>${PRODUCT_NAME}</string> + <key>CFBundlePackageType</key> + <string>APPL</string> + <key>CFBundleShortVersionString</key> + <string>1.0</string> + <key>CFBundleSignature</key> + <string>????</string> + <key>CFBundleVersion</key> + <string>1.0</string> + <key>LSRequiresIPhoneOS</key> + <true/> + <key>UIMainStoryboardFile</key> + <string>MainStoryboard</string> + <key>UIRequiredDeviceCapabilities</key> + <array> + <string>armv7</string> + <string>bluetooth-le</string> + </array> + <key>UISupportedInterfaceOrientations</key> + <array> + <string>UIInterfaceOrientationPortrait</string> + <string>UIInterfaceOrientationPortraitUpsideDown</string> + </array> +</dict> +</plist> diff --git a/sampleclient/waydio_comms_demo-Prefix.pch b/sampleclient/waydio_comms_demo-Prefix.pch new file mode 100644 index 0000000..e172fd8 --- /dev/null +++ b/sampleclient/waydio_comms_demo-Prefix.pch @@ -0,0 +1,15 @@ +// +// Prefix header for all source files of the 'sampleclient' target in the 'sampleclient' project +// + +#import <Availability.h> + +#ifndef __IPHONE_3_0 +#warning "This project uses features only available in iOS SDK 3.0 and later." +#endif + +#ifdef __OBJC__ + #import <UIKit/UIKit.h> + #import <Foundation/Foundation.h> +#endif + diff --git a/waydio_comms_demo.xcodeproj/project.pbxproj b/waydio_comms_demo.xcodeproj/project.pbxproj new file mode 100755 index 0000000..c237fa4 --- /dev/null +++ b/waydio_comms_demo.xcodeproj/project.pbxproj @@ -0,0 +1,438 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 2218B64517DE1CB2006DA99C /* Waydio.m in Sources */ = {isa = PBXBuildFile; fileRef = 2218B64417DE1CB2006DA99C /* Waydio.m */; }; + DE3FA7FA1513EA120035F986 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DE3FA7F91513EA120035F986 /* Default@2x.png */; }; + DE6953391518032C00ED436E /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = DE6953381518032C00ED436E /* main.m */; }; + DE6953401518036700ED436E /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = DE69533B1518036700ED436E /* AppDelegate.m */; }; + DE6953411518036700ED436E /* ConnectionController.m in Sources */ = {isa = PBXBuildFile; fileRef = DE69533D1518036700ED436E /* ConnectionController.m */; }; + DE6953421518036700ED436E /* ScanController.m in Sources */ = {isa = PBXBuildFile; fileRef = DE69533F1518036700ED436E /* ScanController.m */; }; + DE6953461518037F00ED436E /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DE6953431518037F00ED436E /* MainStoryboard.storyboard */; }; + DE7AC8B616445FB600DDB33F /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DE7AC8B516445FB600DDB33F /* Default-568h@2x.png */; }; + DE83EEDC1720851400D11E2B /* libios_brsp.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DE83EEDB1720851400D11E2B /* libios_brsp.a */; }; + DEB38349152CD2040096E95A /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = DEB38348152CD2040096E95A /* icon.png */; }; + DED1A24814FFE28C002966CD /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DED1A24714FFE28C002966CD /* UIKit.framework */; }; + DED1A24A14FFE28C002966CD /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DED1A24914FFE28C002966CD /* Foundation.framework */; }; + DED1A24C14FFE28C002966CD /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DED1A24B14FFE28C002966CD /* CoreGraphics.framework */; }; + DED1A26F14FFE48F002966CD /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DED1A26E14FFE48F002966CD /* CoreBluetooth.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 2218B64317DE1CB2006DA99C /* Waydio.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = Waydio.h; path = ../Waydio.h; sourceTree = "<group>"; }; + 2218B64417DE1CB2006DA99C /* Waydio.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Waydio.m; path = ../Waydio.m; sourceTree = "<group>"; }; + DE3FA7F91513EA120035F986 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = "<group>"; }; + DE653918165ACC0900F5DE89 /* Brsp.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Brsp.h; sourceTree = "<group>"; }; + DE6953381518032C00ED436E /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = "<group>"; }; + DE69533A1518036700ED436E /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = "<group>"; }; + DE69533B1518036700ED436E /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = "<group>"; }; + DE69533C1518036700ED436E /* ConnectionController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ConnectionController.h; sourceTree = "<group>"; }; + DE69533D1518036700ED436E /* ConnectionController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ConnectionController.m; sourceTree = "<group>"; }; + DE69533E1518036700ED436E /* ScanController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanController.h; sourceTree = "<group>"; }; + DE69533F1518036700ED436E /* ScanController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScanController.m; sourceTree = "<group>"; }; + DE6953431518037F00ED436E /* MainStoryboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = MainStoryboard.storyboard; sourceTree = "<group>"; }; + DE6953441518037F00ED436E /* waydio_comms_demo-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "waydio_comms_demo-Info.plist"; sourceTree = "<group>"; }; + DE6953451518037F00ED436E /* waydio_comms_demo-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "waydio_comms_demo-Prefix.pch"; sourceTree = "<group>"; }; + DE7AC8B516445FB600DDB33F /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; }; + DE83EEDB1720851400D11E2B /* libios_brsp.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libios_brsp.a; sourceTree = "<group>"; }; + DEB38348152CD2040096E95A /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = "<group>"; }; + DED1A24314FFE28C002966CD /* waydio.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = waydio.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DED1A24714FFE28C002966CD /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + DED1A24914FFE28C002966CD /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + DED1A24B14FFE28C002966CD /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + DED1A26E14FFE48F002966CD /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + DED1A24014FFE28C002966CD /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DED1A26F14FFE48F002966CD /* CoreBluetooth.framework in Frameworks */, + DED1A24814FFE28C002966CD /* UIKit.framework in Frameworks */, + DED1A24A14FFE28C002966CD /* Foundation.framework in Frameworks */, + DED1A24C14FFE28C002966CD /* CoreGraphics.framework in Frameworks */, + DE83EEDC1720851400D11E2B /* libios_brsp.a in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + DE8EB5131517ED4A00529C7C /* Supporting FIles */ = { + isa = PBXGroup; + children = ( + DE6953431518037F00ED436E /* MainStoryboard.storyboard */, + DE6953441518037F00ED436E /* waydio_comms_demo-Info.plist */, + DE6953451518037F00ED436E /* waydio_comms_demo-Prefix.pch */, + DE6953381518032C00ED436E /* main.m */, + ); + name = "Supporting FIles"; + sourceTree = "<group>"; + }; + DED1A23814FFE28C002966CD = { + isa = PBXGroup; + children = ( + DE83EEDB1720851400D11E2B /* libios_brsp.a */, + DE653918165ACC0900F5DE89 /* Brsp.h */, + DE7AC8B516445FB600DDB33F /* Default-568h@2x.png */, + DEB38348152CD2040096E95A /* icon.png */, + DE3FA7F91513EA120035F986 /* Default@2x.png */, + DED1A24D14FFE28C002966CD /* demo */, + DED1A24614FFE28C002966CD /* Frameworks */, + DED1A24414FFE28C002966CD /* Products */, + ); + sourceTree = "<group>"; + }; + DED1A24414FFE28C002966CD /* Products */ = { + isa = PBXGroup; + children = ( + DED1A24314FFE28C002966CD /* waydio.app */, + ); + name = Products; + sourceTree = "<group>"; + }; + DED1A24614FFE28C002966CD /* Frameworks */ = { + isa = PBXGroup; + children = ( + DED1A26E14FFE48F002966CD /* CoreBluetooth.framework */, + DED1A24714FFE28C002966CD /* UIKit.framework */, + DED1A24914FFE28C002966CD /* Foundation.framework */, + DED1A24B14FFE28C002966CD /* CoreGraphics.framework */, + ); + name = Frameworks; + sourceTree = "<group>"; + }; + DED1A24D14FFE28C002966CD /* demo */ = { + isa = PBXGroup; + children = ( + 2218B64317DE1CB2006DA99C /* Waydio.h */, + 2218B64417DE1CB2006DA99C /* Waydio.m */, + DE69533A1518036700ED436E /* AppDelegate.h */, + DE69533B1518036700ED436E /* AppDelegate.m */, + DE69533C1518036700ED436E /* ConnectionController.h */, + DE69533D1518036700ED436E /* ConnectionController.m */, + DE69533E1518036700ED436E /* ScanController.h */, + DE69533F1518036700ED436E /* ScanController.m */, + DE8EB5131517ED4A00529C7C /* Supporting FIles */, + ); + name = demo; + path = sampleclient; + sourceTree = "<group>"; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + DED1A24214FFE28C002966CD /* waydio */ = { + isa = PBXNativeTarget; + buildConfigurationList = DED1A25B14FFE28C002966CD /* Build configuration list for PBXNativeTarget "waydio" */; + buildPhases = ( + DED1A23F14FFE28C002966CD /* Sources */, + DED1A24014FFE28C002966CD /* Frameworks */, + DED1A24114FFE28C002966CD /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = waydio; + productName = sampleclient; + productReference = DED1A24314FFE28C002966CD /* waydio.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + DED1A23A14FFE28C002966CD /* Project object */ = { + isa = PBXProject; + attributes = { + LastUpgradeCheck = 0460; + }; + buildConfigurationList = DED1A23D14FFE28C002966CD /* Build configuration list for PBXProject "waydio_comms_demo" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + ); + mainGroup = DED1A23814FFE28C002966CD; + productRefGroup = DED1A24414FFE28C002966CD /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + DED1A24214FFE28C002966CD /* waydio */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + DED1A24114FFE28C002966CD /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE3FA7FA1513EA120035F986 /* Default@2x.png in Resources */, + DE6953461518037F00ED436E /* MainStoryboard.storyboard in Resources */, + DEB38349152CD2040096E95A /* icon.png in Resources */, + DE7AC8B616445FB600DDB33F /* Default-568h@2x.png in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + DED1A23F14FFE28C002966CD /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DE6953391518032C00ED436E /* main.m in Sources */, + DE6953401518036700ED436E /* AppDelegate.m in Sources */, + DE6953411518036700ED436E /* ConnectionController.m in Sources */, + DE6953421518036700ED436E /* ScanController.m in Sources */, + 2218B64517DE1CB2006DA99C /* Waydio.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + DE8FA2C61524F50800FB41C6 /* Ad Hoc */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 2.1.0; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = "Ad Hoc"; + }; + DE8FA2C71524F50800FB41C6 /* Ad Hoc */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer: Tim Redfern (GS9W5PAK57)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Tim Redfern (GS9W5PAK57)"; + CURRENT_PROJECT_VERSION = 2.1.0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "sampleclient/waydio_comms_demo-Prefix.pch"; + INFOPLIST_FILE = "sampleclient/waydio_comms_demo-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)\"", + "\"$(SRCROOT)/Debug-iphonesimulator\"", + ); + PRODUCT_NAME = waydio; + PROVISIONING_PROFILE = "AADF6DA9-42AE-43DD-AAAC-2D51EF9CAFA5"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "AADF6DA9-42AE-43DD-AAAC-2D51EF9CAFA5"; + TARGETED_DEVICE_FAMILY = 2; + VALID_ARCHS = "armv6 armv7 armv7s i386"; + WRAPPER_EXTENSION = app; + }; + name = "Ad Hoc"; + }; + DEC2381D152B8BE200F54BEE /* Distribution */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + CODE_SIGN_IDENTITY = "iPhone Distribution: BlueRadios, Inc."; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: BlueRadios, Inc."; + COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 2.1.0; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Distribution; + }; + DEC2381E152B8BE200F54BEE /* Distribution */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer: Tim Redfern (GS9W5PAK57)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Tim Redfern (GS9W5PAK57)"; + CURRENT_PROJECT_VERSION = 2.1.0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "sampleclient/waydio_comms_demo-Prefix.pch"; + INFOPLIST_FILE = "sampleclient/waydio_comms_demo-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)\"", + "\"$(SRCROOT)/Debug-iphonesimulator\"", + ); + PRODUCT_NAME = waydio; + PROVISIONING_PROFILE = "AADF6DA9-42AE-43DD-AAAC-2D51EF9CAFA5"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "AADF6DA9-42AE-43DD-AAAC-2D51EF9CAFA5"; + TARGETED_DEVICE_FAMILY = 2; + VALID_ARCHS = "armv6 armv7 armv7s i386"; + WRAPPER_EXTENSION = app; + }; + name = Distribution; + }; + DED1A25914FFE28C002966CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = NO; + CURRENT_PROJECT_VERSION = 2.1.0; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_DYNAMIC_NO_PIC = NO; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_SYMBOLS_PRIVATE_EXTERN = NO; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + SDKROOT = iphoneos; + }; + name = Debug; + }; + DED1A25A14FFE28C002966CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + ARCHS = "$(ARCHS_STANDARD_32_BIT)"; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; + COPY_PHASE_STRIP = YES; + CURRENT_PROJECT_VERSION = 2.1.0; + GCC_C_LANGUAGE_STANDARD = gnu99; + GCC_VERSION = com.apple.compilers.llvm.clang.1_0; + GCC_WARN_ABOUT_MISSING_PROTOTYPES = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 5.0; + OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1"; + SDKROOT = iphoneos; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + DED1A25C14FFE28C002966CD /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer: Tim Redfern (GS9W5PAK57)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Tim Redfern (GS9W5PAK57)"; + CURRENT_PROJECT_VERSION = 2.1.0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "sampleclient/waydio_comms_demo-Prefix.pch"; + INFOPLIST_FILE = "sampleclient/waydio_comms_demo-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)\"", + "\"$(SRCROOT)/Debug-iphonesimulator\"", + ); + PRODUCT_NAME = waydio; + PROVISIONING_PROFILE = "AADF6DA9-42AE-43DD-AAAC-2D51EF9CAFA5"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "AADF6DA9-42AE-43DD-AAAC-2D51EF9CAFA5"; + TARGETED_DEVICE_FAMILY = 2; + VALID_ARCHS = "armv6 armv7 armv7s i386"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + DED1A25D14FFE28C002966CD /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_IDENTITY = "iPhone Developer: Tim Redfern (GS9W5PAK57)"; + "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer: Tim Redfern (GS9W5PAK57)"; + CURRENT_PROJECT_VERSION = 2.1.0; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "sampleclient/waydio_comms_demo-Prefix.pch"; + INFOPLIST_FILE = "sampleclient/waydio_comms_demo-Info.plist"; + "INFOPLIST_FILE[sdk=*]" = "sampleclient/sampleterm-Info.plist"; + IPHONEOS_DEPLOYMENT_TARGET = 6.1; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + "\"$(SRCROOT)\"", + "\"$(SRCROOT)/Debug-iphonesimulator\"", + ); + PRODUCT_NAME = waydio; + PROVISIONING_PROFILE = "AADF6DA9-42AE-43DD-AAAC-2D51EF9CAFA5"; + "PROVISIONING_PROFILE[sdk=iphoneos*]" = "AADF6DA9-42AE-43DD-AAAC-2D51EF9CAFA5"; + TARGETED_DEVICE_FAMILY = 2; + VALID_ARCHS = "armv6 armv7 armv7s i386"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + DED1A23D14FFE28C002966CD /* Build configuration list for PBXProject "waydio_comms_demo" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DED1A25914FFE28C002966CD /* Debug */, + DED1A25A14FFE28C002966CD /* Release */, + DEC2381D152B8BE200F54BEE /* Distribution */, + DE8FA2C61524F50800FB41C6 /* Ad Hoc */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DED1A25B14FFE28C002966CD /* Build configuration list for PBXNativeTarget "waydio" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DED1A25C14FFE28C002966CD /* Debug */, + DED1A25D14FFE28C002966CD /* Release */, + DEC2381E152B8BE200F54BEE /* Distribution */, + DE8FA2C71524F50800FB41C6 /* Ad Hoc */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = DED1A23A14FFE28C002966CD /* Project object */; +} diff --git a/waydio_comms_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/waydio_comms_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100755 index 0000000..ccba1c9 --- /dev/null +++ b/waydio_comms_demo.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Workspace + version = "1.0"> + <FileRef + location = "self:waydio_comms_demo.xcodeproj"> + </FileRef> +</Workspace> diff --git a/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/michaeltesta.xcuserdatad/UserInterfaceState.xcuserstate b/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/michaeltesta.xcuserdatad/UserInterfaceState.xcuserstate Binary files differnew file mode 100755 index 0000000..a4526ac --- /dev/null +++ b/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/michaeltesta.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/michaeltesta.xcuserdatad/WorkspaceSettings.xcsettings b/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/michaeltesta.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..659c876 --- /dev/null +++ b/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/michaeltesta.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,10 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges</key> + <true/> + <key>SnapshotAutomaticallyBeforeSignificantChanges</key> + <true/> +</dict> +</plist> diff --git a/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate b/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate Binary files differnew file mode 100644 index 0000000..f46f38f --- /dev/null +++ b/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/UserInterfaceState.xcuserstate diff --git a/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/WorkspaceSettings.xcsettings b/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..28f6741 --- /dev/null +++ b/waydio_comms_demo.xcodeproj/project.xcworkspace/xcuserdata/tim.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>BuildLocationStyle</key> + <string>UseAppPreferences</string> + <key>CustomBuildLocationType</key> + <string>RelativeToDerivedData</string> + <key>DerivedDataLocationStyle</key> + <string>Default</string> + <key>HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges</key> + <true/> + <key>IssueFilterStyle</key> + <string>ShowActiveSchemeOnly</string> + <key>LiveSourceIssuesEnabled</key> + <true/> + <key>SnapshotAutomaticallyBeforeSignificantChanges</key> + <true/> + <key>SnapshotLocationStyle</key> + <string>Default</string> +</dict> +</plist> diff --git a/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist new file mode 100755 index 0000000..c760112 --- /dev/null +++ b/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -0,0 +1,33 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Bucket + type = "1" + version = "1.0"> + <FileBreakpoints> + <FileBreakpoint + shouldBeEnabled = "No" + ignoreCount = "0" + continueAfterRunningActions = "No" + filePath = "../../ios_brsp/ios_brsp/Brsp.m" + timestampString = "375049334.593034" + startingColumnNumber = "9223372036854775807" + endingColumnNumber = "9223372036854775807" + startingLineNumber = "338" + endingLineNumber = "338" + landmarkName = "-writeRequestHasError:" + landmarkType = "5"> + </FileBreakpoint> + <FileBreakpoint + shouldBeEnabled = "No" + ignoreCount = "0" + continueAfterRunningActions = "No" + filePath = "../../ios_brsp/ios_brsp/ElementBuffer.m" + timestampString = "374538843.863057" + startingColumnNumber = "9223372036854775807" + endingColumnNumber = "9223372036854775807" + startingLineNumber = "145" + endingLineNumber = "145" + landmarkName = "-remove:" + landmarkType = "5"> + </FileBreakpoint> + </FileBreakpoints> +</Bucket> diff --git a/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcschemes/Distribution.xcscheme b/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcschemes/Distribution.xcscheme new file mode 100755 index 0000000..8475900 --- /dev/null +++ b/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcschemes/Distribution.xcscheme @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "sampleterm.app" + BlueprintName = "nBlueTerm" + ReferencedContainer = "container:sampleterm.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES" + buildConfiguration = "Debug"> + <Testables> + </Testables> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "sampleterm.app" + BlueprintName = "nBlueTerm" + ReferencedContainer = "container:sampleterm.xcodeproj"> + </BuildableReference> + </MacroExpansion> + </TestAction> + <LaunchAction + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + buildConfiguration = "Release" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + allowLocationSimulation = "YES"> + <BuildableProductRunnable> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "sampleterm.app" + BlueprintName = "nBlueTerm" + ReferencedContainer = "container:sampleterm.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + buildConfiguration = "Release" + debugDocumentVersioning = "YES"> + <BuildableProductRunnable> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "sampleterm.app" + BlueprintName = "nBlueTerm" + ReferencedContainer = "container:sampleterm.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Distribution" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcschemes/Sample Client.xcscheme b/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcschemes/Sample Client.xcscheme new file mode 100755 index 0000000..1dd095c --- /dev/null +++ b/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcschemes/Sample Client.xcscheme @@ -0,0 +1,85 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "sampleterm.app" + BlueprintName = "nBlueTerm" + ReferencedContainer = "container:sampleterm.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES" + buildConfiguration = "Debug"> + <Testables> + </Testables> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "sampleterm.app" + BlueprintName = "nBlueTerm" + ReferencedContainer = "container:sampleterm.xcodeproj"> + </BuildableReference> + </MacroExpansion> + </TestAction> + <LaunchAction + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + buildConfiguration = "Debug" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + allowLocationSimulation = "YES"> + <BuildableProductRunnable> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "sampleterm.app" + BlueprintName = "nBlueTerm" + ReferencedContainer = "container:sampleterm.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + buildConfiguration = "Release" + debugDocumentVersioning = "YES"> + <BuildableProductRunnable> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "sampleterm.app" + BlueprintName = "nBlueTerm" + ReferencedContainer = "container:sampleterm.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Ad Hoc" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcschemes/xcschememanagement.plist b/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100755 index 0000000..2464055 --- /dev/null +++ b/waydio_comms_demo.xcodeproj/xcuserdata/michaeltesta.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,27 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>Distribution.xcscheme</key> + <dict> + <key>orderHint</key> + <integer>1</integer> + </dict> + <key>Sample Client.xcscheme</key> + <dict> + <key>orderHint</key> + <integer>0</integer> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict> + <key>DED1A24214FFE28C002966CD</key> + <dict> + <key>primary</key> + <true/> + </dict> + </dict> +</dict> +</plist> diff --git a/waydio_comms_demo.xcodeproj/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist b/waydio_comms_demo.xcodeproj/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist new file mode 100644 index 0000000..ae3d289 --- /dev/null +++ b/waydio_comms_demo.xcodeproj/xcuserdata/tim.xcuserdatad/xcdebugger/Breakpoints.xcbkptlist @@ -0,0 +1,20 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Bucket + type = "1" + version = "1.0"> + <FileBreakpoints> + <FileBreakpoint + shouldBeEnabled = "Yes" + ignoreCount = "0" + continueAfterRunningActions = "No" + filePath = "sampleclient/ConnectionController.h" + timestampString = "401038340.091834" + startingColumnNumber = "9223372036854775807" + endingColumnNumber = "9223372036854775807" + startingLineNumber = "50" + endingLineNumber = "50" + landmarkName = "@interface ConnectionController" + landmarkType = "2"> + </FileBreakpoint> + </FileBreakpoints> +</Bucket> diff --git a/waydio_comms_demo.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/nBlueTerm.xcscheme b/waydio_comms_demo.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/nBlueTerm.xcscheme new file mode 100644 index 0000000..4d97631 --- /dev/null +++ b/waydio_comms_demo.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/nBlueTerm.xcscheme @@ -0,0 +1,86 @@ +<?xml version="1.0" encoding="UTF-8"?> +<Scheme + LastUpgradeVersion = "0460" + version = "1.3"> + <BuildAction + parallelizeBuildables = "YES" + buildImplicitDependencies = "YES"> + <BuildActionEntries> + <BuildActionEntry + buildForTesting = "YES" + buildForRunning = "YES" + buildForProfiling = "YES" + buildForArchiving = "YES" + buildForAnalyzing = "YES"> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "waydio.app" + BlueprintName = "waydio" + ReferencedContainer = "container:waydio_comms_demo.xcodeproj"> + </BuildableReference> + </BuildActionEntry> + </BuildActionEntries> + </BuildAction> + <TestAction + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + shouldUseLaunchSchemeArgsEnv = "YES" + buildConfiguration = "Debug"> + <Testables> + </Testables> + <MacroExpansion> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "waydio.app" + BlueprintName = "waydio" + ReferencedContainer = "container:waydio_comms_demo.xcodeproj"> + </BuildableReference> + </MacroExpansion> + </TestAction> + <LaunchAction + selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB" + selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB" + launchStyle = "0" + useCustomWorkingDirectory = "NO" + buildConfiguration = "Debug" + ignoresPersistentStateOnLaunch = "NO" + debugDocumentVersioning = "YES" + allowLocationSimulation = "YES"> + <BuildableProductRunnable> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "waydio.app" + BlueprintName = "waydio" + ReferencedContainer = "container:waydio_comms_demo.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + <AdditionalOptions> + </AdditionalOptions> + </LaunchAction> + <ProfileAction + shouldUseLaunchSchemeArgsEnv = "YES" + savedToolIdentifier = "" + useCustomWorkingDirectory = "NO" + buildConfiguration = "Release" + debugDocumentVersioning = "YES"> + <BuildableProductRunnable> + <BuildableReference + BuildableIdentifier = "primary" + BlueprintIdentifier = "DED1A24214FFE28C002966CD" + BuildableName = "waydio.app" + BlueprintName = "waydio" + ReferencedContainer = "container:waydio_comms_demo.xcodeproj"> + </BuildableReference> + </BuildableProductRunnable> + </ProfileAction> + <AnalyzeAction + buildConfiguration = "Debug"> + </AnalyzeAction> + <ArchiveAction + buildConfiguration = "Release" + revealArchiveInOrganizer = "YES"> + </ArchiveAction> +</Scheme> diff --git a/waydio_comms_demo.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist b/waydio_comms_demo.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..19fb8a1 --- /dev/null +++ b/waydio_comms_demo.xcodeproj/xcuserdata/tim.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,22 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> +<plist version="1.0"> +<dict> + <key>SchemeUserState</key> + <dict> + <key>nBlueTerm.xcscheme</key> + <dict> + <key>orderHint</key> + <integer>0</integer> + </dict> + </dict> + <key>SuppressBuildableAutocreation</key> + <dict> + <key>DED1A24214FFE28C002966CD</key> + <dict> + <key>primary</key> + <true/> + </dict> + </dict> +</dict> +</plist> |
