diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..496ee2c
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1 @@
+.DS_Store
\ No newline at end of file
diff --git a/4up image.jpg b/4up image.jpg
old mode 100755
new mode 100644
diff --git a/CHANGELOG b/CHANGELOG
index b8b7d64..3611110 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,5 +1,128 @@
CHANGELOG
+v 2.3.3
+ - Enable C++11 support (thanks focalintent)
+ - Fix Print::printf("%f") with correct digits (thanks ShenggaoZhu)
+ - Added radioActive check to flashPageErase
+
+v 2.3.2
+ - Fixes required to support Arduino 1.6.6
+ - Updated to the latest RFDLoaders
+ - Use the RFDLoaders in the RFduino directory (instead of installing seperately in tools)
+
+v 2.3.1
+ - RFduino linux native support (test install on Ubuntu 14.04 32bit & 64bit, Fedora 21,
+ OpenSUSE 13.2)
+ - Created http://github.com/RFduino/RFduinoApps repository for separate installation
+ of projects/previews/demos. Separate installation should make finding them easier.
+ - Moved iPhone Apps folder to RFduinoApps repository.
+ - Added Raspberry PI folder to RFduinoApps to demonstrate Raspberry PI & RFduino
+ integration.
+
+v 2.3
+ - Fixes required to support Arduino 1.6.3
+ (NOTE: Arduino 1.6.3 or higher is now required for RFduino 2.3 or above).
+ - Include explicit information about Java 6 (thanks gortok)
+ - fixing analogRead freeze problem + fixing indentation (thanks OrenLederman)
+ - Removing deprecated field in iOS framework and sample projects (thanks SensiBots)
+ - make these virtual (thanks tripzero)
+ - Remove dependence on UIKit; fix use of deprecated UUID attribute (thanks aeberbach)
+
+v 2.2.4
+ - Reduce compile times with Arduino 1.6 on second and subsequent compiles.
+
+v 2.2.3
+ - GZLL baseAddress enhancement (thanks waynek/jetty840)
+ - Check base address msb is not 0x55 or 0xaa
+ - Updated libRFduinoGZLL keywords.txt
+ - Added DeviceToHostSettings example GZLL sketch
+
+v 2.2.2
+ - Resolved race condition issue with analogRead.
+
+v 2.2.1
+ - Resolved power consumption issues with ULP and analogRead/GZLL.
+ - Update documentation with better specifics as to where you put folder
+ (thanks Helen Holmes).
+
+v 2.2
+ - Support for nonconnectable advertisement
+ - Corrected temperature comments (thanks DasBasti).
+
+v 2.1.2
+ - Support for MIDI BaudRate of 31250 (thanks tolson)
+ - Fix so Servo can be moved from TIMER2 to TIMER1 for use with RFduinoGZLL
+
+v 2.1.1
+ - Fix an issue with RFduinoBLE.begin() not starting in an isolated case.
+ - Fix to case of include directory in boards.txt (thanks jrobeson).
+
+v 2.1
+ - Fixes required to support Arduino 1.5.7
+ (NOTE: Arduino 1.5.7 or higher is now required for RFduino 2.1 or above).
+ - Updated gcc compiler now generates smaller code sizes
+ - Sketch size information now includes RAM usage.
+
+v 2.0.3
+ - Added printf() support to Serial (see RFduinoNonBLE/Printf sketch)
+ - Fixed issue with Serial.flush()/Serial.end() when switching TX/RX pins
+
+v 2.0.2
+ - Added connection interval update support
+ - Added missing copyright notices to sketches
+
+v 2.0.1
+ - RFduinoGZLL enhancement for channel selection policy
+ - allow build.bat "run as administrator"
+
+v 2.0
+ - 128-bit custom UUID enhancement
+ - raw advertisement packet access
+ - RFduinoBLE.begin() now truncates (instead of failing) if the advertisement
+ packet length is exceeded. No more counting deviceName/advertisementData.
+
+v 1.9
+ - i2c enhancements
+ - UART TX buffering
+ - Changed examples comment to indicate that Advertisement length and
+ deviceName length must be <= 15 bytes
+ - Added header to WString.h to so F() always available
+
+v 1.8.2
+ - Added support for modifying the iBeacon measured power level at 1 meter
+ - Fix for analogWrite and RFduinoGZLL (thanks tolson)
+
+v 1.8.1
+ - Fixed conflict between Analog to Digital Conversion and UART
+ - Cleaned up SPI library
+
+v 1.8
+ - iBeacon Enhancement
+
+v 1.7.2
+ - Enhancement to PPI channel selection to eliminate potential conflicts
+ - Added the ability to select I2C speed to Wire Library (100, 250 or 400 kbps)
+
+v 1.7.1
+ - Fix for the UART stops receiving bytes after some time with BLE enabled
+
+v 1.7
+ - Added RFduino to RFduino wireless communication support
+ - Added pgmspace.h / PROGMEM support
+ - Added __RFduino__ constant
+ - Provided a 32-bit RFDLoader for 32-bit OSX support
+ - Cleaned up startup code and dependencies
+
+v 1.6.1
+ - Fixed issue with not being able to call RFduinoBLE.end() /
+ RFduino_systemReset() from pinWakeCallback
+ - corrected return types from uint32_t to void for rfduino_ functions
+ - Corrected maximum sketch size. The last 4 flash pages are reserved,
+
+v 1.6
+ - Added getDeviceId() to return the unique id for each device
+ (see DeviceInfo sketch)
+
v 1.5.1
- Added support for OSX (contributed by nitsky)
- RFDLoader now supports 32-bit and 64-bit osx snow leopard through mavericks
diff --git a/README.md b/README.md
old mode 100755
new mode 100644
index 040745f..6964b68
--- a/README.md
+++ b/README.md
@@ -1,54 +1,69 @@
-### RFduino: Shrunk down an Arduino to the size of a finger-tip and made it Wireless!
+# RFduino: An Arduino shrunk to the size of a finger-tip and made wireless!
-
+
[Video](http://www.youtube.com/watch?v=arWBdGwCJcM)
-### Installation
+## Communicating with us
-* Get the hardware here: [http://RFduino.com](http://RFduino.com)
+The best way to communiate with us is on the [RFduino Forum](http://forum.RFduino.com).
-* Download Arduino 1.5 here: [http://arduino.cc](http://arduino.cc/en/Main/Software)
- (on osx remember to open arduino first to make gatekeeper perform its magic)
+## Installation
-* Copy the RFduino directory from this repository in Arduino
- (on Windows, C:\arduino-1.5.4\hardware\arduino)
- (on OSX, /Applications/Arduino.app/Contents/Resources/Java/hardware/arduino)
- or "git clone https://github.com/RFduino/RFduino" in the directory indicated
+* Get the [RFduino hardware](http://RFduino.com).
-* Install the FTDI drivers from here: [http://ftdichip.com](http://www.ftdichip.com/Drivers/VCP.htm)
+* Install the [FTDI drivers](http://www.ftdichip.com/Drivers/VCP.htm).
-Your ready to go!
+* Download [Arduino 1.6.6](http://arduino.cc/en/Main/Software) or newer.
+ * _Mac OS X_: Requires Java 6 to be installed. Available [here](https://support.apple.com/kb/DL1572?locale=en_US).
+ * Note: The default Package in Ubuntu 16.04 is to old 1.5.3 and does not support adding hardware support.
-Detailed instructions are available here: [Quick Start Guide](http://files.rfdigital.com/rfduino.quick.start.guide.pdf)
+* Open Arduino
+ * Edit Preferences, and add ```http://rfduino.com/package_rfduino166_index.json``` to Additional Board Manager URLs and save.
+ 
+ * Open the Boards Manager under ```Tools->Board``` menu.
+ * Select the RFduino package at the end of the list, and click Install to install it.
+ * Your new board will now show up in the ```Tools->Board``` menu.
-### Getting Started
+Select the board and port, and you're ready to go!
-* Attach the USB shield
+Note: Arduino may not start properly if another version has been previously installed and the Preferences are incompatible. You can reset the Preferences by deleting the following directory:
+* _Windows_: %appdata%/Arduino15 (open File Explorer, enter %appdata% into the Address Bar and press Enter)
+* _Mac OS X_: ~/Library/Arduino15 (open Finder, and ```Go->Go to Folder```)
+* _Linux_: ~/.arduino15
+
+## Linux
-* Select RFduino from the Tools/Board menu
+```
+// FTDI drivers are not needed (they are built into the kernel)
-* Select the port from the Tools/Port menu
+wget http://downloads.arduino.cc/arduino-1.6.6-linux64.tar.xz
+tar -xf arduino-1.6.6-linux64.tar.xz
-* Select an example from the Files/Examples/RFduinoNonBLE or Files/Examples/RFduinoBLE directory
+Ubuntu: sudo apt-get install default-jre
+Fedora: sudo yum install jre
+OpenSUSE: sudo zypper install jre
-* Select Upload to compile, upload and execute the sketch
+// otherwise the com port open will fail with permission denied (you must logout/login for change to take effect)
+sudo usermod -aG dialout
+```
-* Down the iPhone example apps from the iPhone App Store (search for "RFduino").
+## Getting Started
-Detailed instructions for the Temperature app are available here: [Temperature App](http://files.rfdigital.com/rfduino.temperature.guide.pdf)
-Detailed instructions for the ColorWheel app are available here: [ColorWheel App](http://files.rfdigital.com/rfduino.rgb.colorwheel.guide.pdf)
+* Attach the USB shield
-### Communicating with us
+* Select RFduino from the ```Tools->Board``` menu
-The best way to communiate with us is here: [RFduino Forum](http://forum.RFduino.com).
+* Select the port from the ```Tools->Port``` menu
-### A Lot More Coming!
+* Select an example from the ```File->Examples->RFduinoNonBLE``` or ```File->Examples-?RFduinoBLE``` directory
-We are working on documentation as fast as we can. Until then, the best source for documentation is the sketch examples.
+* Select ```Upload``` to compile, upload and execute the sketch
-This project has been a huge success, and we have many exciting things planned that we want to share with the community. At the same time, we are unbelievable busy, with a ton going on and lots of small items to clean up. We are just a small team working on this project ... please bear with us!
+* Download the iPhone example apps from the iPhone App Store (search for ```RFduino```).
+ * Detailed instructions for the Temperature app are available [here](http://files.rfdigital.com/rfduino.temperature.guide.pdf).
+ * Detailed instructions for the ColorWheel app are available [here](http://files.rfdigital.com/rfduino.rgb.colorwheel.guide.pdf).
-We hope you enjoy creating stuff with your RFduino as much as we do!
+## RFduinoApps
-The RFduino team.
+Check out the [RFduinoApps](http://github.com/RFduino/RFduinoApps) repository for iPhone App source code & RFduino to Raspberry Pi integration projects.
diff --git a/RFDLoader b/RFDLoader
deleted file mode 100755
index 992224a..0000000
Binary files a/RFDLoader and /dev/null differ
diff --git a/RFDLoader.exe b/RFDLoader.exe
old mode 100755
new mode 100644
index b22d8d3..39fd02e
Binary files a/RFDLoader.exe and b/RFDLoader.exe differ
diff --git a/RFDLoader32_linux b/RFDLoader32_linux
new file mode 100755
index 0000000..71553f9
Binary files /dev/null and b/RFDLoader32_linux differ
diff --git a/RFDLoader32_osx b/RFDLoader32_osx
new file mode 100755
index 0000000..bbca309
Binary files /dev/null and b/RFDLoader32_osx differ
diff --git a/RFDLoader_linux b/RFDLoader_linux
new file mode 100755
index 0000000..c5113a3
Binary files /dev/null and b/RFDLoader_linux differ
diff --git a/RFDLoader_osx b/RFDLoader_osx
new file mode 100755
index 0000000..8cb0c26
Binary files /dev/null and b/RFDLoader_osx differ
diff --git a/RFDLoader_pi b/RFDLoader_pi
new file mode 100755
index 0000000..f656b43
Binary files /dev/null and b/RFDLoader_pi differ
diff --git a/boards.txt b/boards.txt
old mode 100755
new mode 100644
index 8161997..55c95ac
--- a/boards.txt
+++ b/boards.txt
@@ -1,12 +1,13 @@
RFduino.name=RFduino
+RFduino.build.board=RFduino
RFduino.build.mcu=cortex-m0
RFduino.build.f_cpu=16000000
RFduino.build.core=arduino
-RFduino.build.extra_flags=-mthumb
+RFduino.build.extra_flags=-mthumb -D__RFduino__
RFduino.build.ldscript=linker_scripts/gcc/RFduino.ld
RFduino.build.variant=RFduino
-RFduino.build.variant_system_include="-I{build.system.path}/RFduino" "-I{build.system.path}/RFduino/Include" "-I{build.system.path}/CMSIS/CMSIS/Include"
+RFduino.build.variant_system_include="-I{build.system.path}/RFduino" "-I{build.system.path}/RFduino/include" "-I{build.system.path}/CMSIS/CMSIS/Include"
RFduino.build.variant_system_lib=libRFduinoSystem.a
#RFduino.build.extra_flags=-DUSB_PID={build.pid} -DUSB_VID={build.vid} -DUSBCON
#RFduino.build.vid=0x2341
@@ -18,5 +19,5 @@ RFduino.upload.tool=RFDLoader
RFduino.upload.protocol=
# sizer will not run if this is not defined
-# 132KB
-RFduino.upload.maximum_size=135168
+# 128KB
+RFduino.upload.maximum_size=131072
diff --git a/cores/arduino/Arduino.h b/cores/arduino/Arduino.h
old mode 100755
new mode 100644
index e06dac0..f12facb
--- a/cores/arduino/Arduino.h
+++ b/cores/arduino/Arduino.h
@@ -47,6 +47,7 @@
#include
#include
+#include
#include
#include
diff --git a/cores/arduino/HardwareSerial.h b/cores/arduino/HardwareSerial.h
old mode 100755
new mode 100644
index 83fcffe..906d7eb
--- a/cores/arduino/HardwareSerial.h
+++ b/cores/arduino/HardwareSerial.h
@@ -52,9 +52,9 @@
class HardwareSerial : public Stream
{
public:
- void begin( const uint32_t dwBaudRate ) ;
- void begin( const uint32_t dwBaudRate, uint8_t rx_pin, uint8_t tx_pin ) ;
- void end();
+ virtual void begin( const uint32_t dwBaudRate ) = 0;
+ virtual void begin( const uint32_t dwBaudRate, uint8_t rx_pin, uint8_t tx_pin ) = 0;
+ virtual void end() = 0;
virtual int available(void) = 0;
virtual int peek(void) = 0;
virtual int read(void) = 0;
diff --git a/cores/arduino/Memory.c b/cores/arduino/Memory.c
old mode 100755
new mode 100644
index 3325acc..462f2a5
--- a/cores/arduino/Memory.c
+++ b/cores/arduino/Memory.c
@@ -48,6 +48,10 @@ int flashPageErase( uint8_t page )
if (page <= PAGE_FROM_ADDRESS(&_etextrelocate))
return 2;
+ // do not erase flash if the BLE radio is active
+ while (RFduinoBLE_radioActive)
+ ;
+
// enable flash page erase
NRF_NVMC->CONFIG = (NVMC_CONFIG_WEN_Een << NVMC_CONFIG_WEN_Pos);
while (NRF_NVMC->READY == NVMC_READY_READY_Busy)
@@ -79,7 +83,7 @@ int flashWrite( uint32_t *address, uint32_t value )
if (page <= PAGE_FROM_ADDRESS(&_etextrelocate))
return 2;
- // do not write to flash in the BLE radio is active
+ // do not write to flash if the BLE radio is active
while (RFduinoBLE_radioActive)
;
diff --git a/cores/arduino/Memory.h b/cores/arduino/Memory.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/Print.cpp b/cores/arduino/Print.cpp
old mode 100755
new mode 100644
index d554fa2..eb65413
--- a/cores/arduino/Print.cpp
+++ b/cores/arduino/Print.cpp
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -47,6 +47,7 @@
#include
#include
+#include
#include
#include
#include "Arduino.h"
@@ -285,3 +286,79 @@ size_t Print::printFloat(double number, uint8_t digits)
return n;
}
+
+size_t Print::printf(const char *format, ...)
+{
+ va_list vl;
+ size_t n = 0;
+
+ va_start(vl, format);
+
+ while (*format)
+ {
+ if (*format == '%')
+ {
+ format++;
+
+ char ch = *format;
+ if (! ch)
+ break;
+ else if (ch == '%')
+ n += print(*format);
+ else if (ch == 'b')
+ {
+ unsigned u = va_arg(vl, unsigned);
+ n += print(u, BIN);
+ }
+ else if (ch == 'c')
+ {
+ int ch = va_arg(vl, int);
+ n += print((char)ch);
+ }
+ else if (ch == 'd')
+ {
+ int i = va_arg(vl, int);
+ n += print(i);
+ }
+ else if (ch == 'u')
+ {
+ unsigned u = va_arg(vl, unsigned);
+ n += print(u);
+ }
+ else if (ch == 'x')
+ {
+ unsigned x = va_arg(vl, unsigned);
+ n += print(x, HEX);
+ }
+ else if (ch == 's')
+ {
+ char *s = va_arg(vl, char *);
+ n += print(s);
+ }
+ else if (ch == 'f')
+ {
+ double d = va_arg(vl, double);
+ long l = d;
+ n += print(l);
+ n += print('.');
+ d *= 100;
+ l = d;
+ if (l < 1)
+ l = -l;
+ l %= 100;
+ if(l < 10){
+ n += print(0);
+ }
+ n += print(l);
+ }
+ }
+ else
+ n += print(*format);
+
+ format++;
+ }
+
+ va_end(vl);
+
+ return n;
+}
diff --git a/cores/arduino/Print.h b/cores/arduino/Print.h
old mode 100755
new mode 100644
index 9f12a33..539d7f6
--- a/cores/arduino/Print.h
+++ b/cores/arduino/Print.h
@@ -1,5 +1,5 @@
/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
@@ -102,6 +102,9 @@ class Print
size_t println(double, int = 2);
size_t println(const Printable&);
size_t println(void);
+
+ // supports c,d,u,x,s,f,b
+ size_t printf(const char *, ...);
};
#endif
diff --git a/cores/arduino/Printable.h b/cores/arduino/Printable.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/RingBuffer.cpp b/cores/arduino/RingBuffer.cpp
old mode 100755
new mode 100644
diff --git a/cores/arduino/RingBuffer.h b/cores/arduino/RingBuffer.h
old mode 100755
new mode 100644
index 3db184a..4dbbc98
--- a/cores/arduino/RingBuffer.h
+++ b/cores/arduino/RingBuffer.h
@@ -57,8 +57,8 @@ class RingBuffer
{
public:
uint8_t _aucBuffer[SERIAL_BUFFER_SIZE] ;
- int _iHead ;
- int _iTail ;
+ volatile int _iHead ;
+ volatile int _iTail ;
public:
RingBuffer( void ) ;
diff --git a/cores/arduino/Stream.cpp b/cores/arduino/Stream.cpp
old mode 100755
new mode 100644
diff --git a/cores/arduino/Stream.h b/cores/arduino/Stream.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/Tone.cpp b/cores/arduino/Tone.cpp
old mode 100755
new mode 100644
diff --git a/cores/arduino/Tone.h b/cores/arduino/Tone.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/UARTClass.cpp b/cores/arduino/UARTClass.cpp
old mode 100755
new mode 100644
index d243fcc..ea73f64
--- a/cores/arduino/UARTClass.cpp
+++ b/cores/arduino/UARTClass.cpp
@@ -51,9 +51,10 @@
// Constructors
-UARTClass::UARTClass( RingBuffer* pRx_buffer )
+UARTClass::UARTClass( RingBuffer* pRx_buffer, RingBuffer* pTx_buffer )
{
_rx_buffer = pRx_buffer ;
+ _tx_buffer = pTx_buffer ;
}
// Public Methods
@@ -65,6 +66,7 @@ void UARTClass::begin( const uint32_t dwBaudRate )
void UARTClass::begin( const uint32_t dwBaudRate, uint8_t rx_pin, uint8_t tx_pin )
{
+ transmitting = false;
UART0_Start( dwBaudRate, rx_pin, tx_pin );
}
@@ -103,24 +105,64 @@ int UARTClass::read( void )
void UARTClass::flush( void )
{
- UART0_FlushTX();
+ // Wait for any outstanding data to be sent
+ while (transmitting)
+ ;
+}
+
+void UARTClass::tx( void )
+{
+ if ( _tx_buffer->_iHead == _tx_buffer->_iTail )
+ {
+ transmitting = false;
+ return;
+ }
+
+ transmitting = true;
+
+ uint8_t uc = _tx_buffer->_aucBuffer[_tx_buffer->_iTail] ;
+ _tx_buffer->_iTail = (unsigned int)(_tx_buffer->_iTail + 1) % SERIAL_BUFFER_SIZE ;
+
+ UART0_TXD(uc);
}
size_t UARTClass::write( const uint8_t uc_data )
{
- UART0_TX( uc_data );
+ // silently discard data if Serial.begin() hasn't been called
+ if (UART0_State == UART0_State_NotStarted)
+ return 1;
+
+ // Wait if tx_buffer space is not available
+ while ((_tx_buffer->_iHead + 1) % SERIAL_BUFFER_SIZE == _tx_buffer->_iTail)
+ ;
+
+ _tx_buffer->store_char(uc_data);
+
+ if (! transmitting)
+ tx();
return 1;
}
void UARTClass::IrqHandler( void )
{
+ if (UART0_TXReady())
+ {
+ UART0_TXReset();
+ tx();
+ }
+
// did we receive data
if (UART0_RXReady())
{
- _rx_buffer->store_char(UART0_RXData());
+ UART0_RXReset();
+
+ uint8_t ch = UART0_RXData();
+
+ if (UART0_RXErrorReset())
+ return;
- UART0_RXReset( true );
+ _rx_buffer->store_char(ch);
if (serialEvent)
serialEvent();
diff --git a/cores/arduino/UARTClass.h b/cores/arduino/UARTClass.h
old mode 100755
new mode 100644
index 3c61e8a..43ce0ea
--- a/cores/arduino/UARTClass.h
+++ b/cores/arduino/UARTClass.h
@@ -49,21 +49,20 @@
#include "RingBuffer.h"
//#include "variant.h"
-// Includes Atmel CMSIS
-#include
-
typedef void Uart;
class UARTClass : public HardwareSerial
{
protected:
- RingBuffer *_rx_buffer ;
+ RingBuffer *_rx_buffer, *_tx_buffer ;
+ volatile bool transmitting;
+ void tx( void );
public:
- UARTClass( RingBuffer* pRx_buffer ) ;
+ UARTClass( RingBuffer* pRx_buffer, RingBuffer* pTx_Buffer ) ;
void begin( const uint32_t dwBaudRate ) ;
- void begin( const uint32_t dwBaudRate, uint8_t rx_pin, uint8_t tx_pin ) ;
+ void begin( const uint32_t dwBaudRate, uint8_t rx_pin, uint8_t tx_pin ) ;
void end( void ) ;
int available( void ) ;
int peek( void ) ;
diff --git a/cores/arduino/USARTClass.h b/cores/arduino/USARTClass.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/WCharacter.h b/cores/arduino/WCharacter.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/WInterrupts.c b/cores/arduino/WInterrupts.c
old mode 100755
new mode 100644
index 095b3d0..6ee0946
--- a/cores/arduino/WInterrupts.c
+++ b/cores/arduino/WInterrupts.c
@@ -44,69 +44,16 @@
#include "WInterrupts.h"
-static callback_t callbacks[32];
-
-// -15 Reset_Handler
-// -14 NMI_Handler
-// -13 HardFault_Handler
-// -12 reserved
-// -11 reserved
-// -10 reserved
-// -9 reserved
-// -8 reserved
-// -7 reserved
-// -6 reserved
-// -5 SVC_Handler
-// -4 DebugMonitor_Handler
-// -3 reserved
-// -2 PendSV_Handler
-// -1 SysTick_Handler
-
-// configurable interrupts
-void POWER_CLOCK_IRQHandler() { callbacks[POWER_CLOCK_IRQn](); } // 0 Power Clock
-void RADIO_IRQHandler() { callbacks[RADIO_IRQn](); } // 1 Radio
-void UART0_IRQHandler() { callbacks[UART0_IRQn](); } // 2 UART 0
-void SPI0_TWI0_IRQHandler() { callbacks[SPI0_TWI0_IRQn](); } // 3 SPI0 and TWI0
-void SPI1_TWI1_IRQHandler() { callbacks[SPI1_TWI1_IRQn](); } // 4 SPI1 and TWI1
-// reserved // 5 reserved
-void GPIOTE_IRQHandler() { callbacks[GPIOTE_IRQn](); } // 6 General Purpose IO Tasks and Events
-void ADC_IRQHandler() { callbacks[ADC_IRQn](); } // 7 Analog to Digital Converter
-void TIMER0_IRQHandler() { callbacks[TIMER0_IRQn](); } // 8 Timer 0
-void TIMER1_IRQHandler() { callbacks[TIMER1_IRQn](); } // 9 Timer 1
-void TIMER2_IRQHandler() { callbacks[TIMER2_IRQn](); } // 10 Timer 2
-void RTC0_IRQHandler() { callbacks[RTC0_IRQn](); } // 11 Real Time Clock 0
-void TEMP_IRQHandler() { callbacks[TEMP_IRQn](); } // 12 Temperature
-void RNG_IRQHandler() { callbacks[RNG_IRQn](); } // 13 Random Number Generator
-void ECB_IRQHandler() { callbacks[ECB_IRQn](); } // 14 ECB
-void CCM_AAR_IRQHandler() { callbacks[CCM_AAR_IRQn](); } // 15 CCM AAR
-void WDT_IRQHandler() { callbacks[WDT_IRQn](); } // 16 Watchdog Timer
-void RTC1_IRQHandler() { callbacks[RTC1_IRQn](); } // 17 Real Time Clock 1
-void QDEC_IRQHandler() { callbacks[QDEC_IRQn](); } // 18 QDEC
-void WUCOMP_IRQHandler() { callbacks[WUCOMP_COMP_IRQn](); } // 19 WUCOMP
-//the blestack uses these (multiply defined)
-//void SWI0_IRQHandler() { callbacks[SWI0_IRQn](); } // 20 Software Interrupt 0
-//void SWI1_IRQHandler() { callbacks[SWI1_IRQn](); } // 21 Software Interrupt 0
-//void SWI2_IRQHandler() { callbacks[SWI2_IRQn](); } // 22 Software Interrupt 0
-//void SWI3_IRQHandler() { callbacks[SWI3_IRQn](); } // 23 Software Interrupt 0
-//void SWI4_IRQHandler() { callbacks[SWI4_IRQn](); } // 24 Software Interrupt 0
-//void SWI5_IRQHandler() { callbacks[SWI5_IRQn](); } // 25 Software Interrupt 0
-// reserved // 26 reserved
-// reserved // 27 reserved
-// reserved // 28 reserved
-// reserved // 29 reserved
-// reserved // 30 reserved
-// reserved // 31 reserved
-
void attachInterrupt(uint8_t IRQn, callback_t callback)
{
- callbacks[IRQn] = callback;
+ dynamic_handlers[IRQn] = callback;
rfduino_nvic_enableirq(IRQn);
}
void detachInterrupt(uint8_t IRQn)
{
rfduino_nvic_disableirq(IRQn);
- callbacks[IRQn] = NULL;
+ dynamic_handlers[IRQn] = NULL;
}
void attachPinInterrupt(uint32_t pin, pin_callback_t callback, uint32_t mode)
diff --git a/cores/arduino/WInterrupts.h b/cores/arduino/WInterrupts.h
old mode 100755
new mode 100644
index 7f74087..8d599a5
--- a/cores/arduino/WInterrupts.h
+++ b/cores/arduino/WInterrupts.h
@@ -51,7 +51,7 @@
extern "C" {
#endif
-typedef void (*callback_t)(void);
+typedef dynamic_handler_t callback_t;
void attachInterrupt(uint8_t IRQn, callback_t callback);
void detachInterrupt(uint8_t IRQn);
diff --git a/cores/arduino/WMath.cpp b/cores/arduino/WMath.cpp
old mode 100755
new mode 100644
diff --git a/cores/arduino/WMath.h b/cores/arduino/WMath.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/WString.cpp b/cores/arduino/WString.cpp
old mode 100755
new mode 100644
diff --git a/cores/arduino/WString.h b/cores/arduino/WString.h
old mode 100755
new mode 100644
index 0ac2039..44117fb
--- a/cores/arduino/WString.h
+++ b/cores/arduino/WString.h
@@ -52,6 +52,7 @@
#include
#include
#include
+#include
// When compiling programs with this class, the following gcc parameters
// dramatically increase performance and memory (RAM) efficiency, typically
@@ -194,6 +195,8 @@ class String
// parsing/conversion
long toInt(void) const;
+
+ const char *cstr() const { return buffer; }
protected:
char *buffer; // the actual char array
diff --git a/cores/arduino/avr/pgmspace.h b/cores/arduino/avr/pgmspace.h
new file mode 100644
index 0000000..9b344c9
--- /dev/null
+++ b/cores/arduino/avr/pgmspace.h
@@ -0,0 +1,44 @@
+#ifndef __PGMSPACE_H_
+#define __PGMSPACE_H_ 1
+
+#include
+
+#define PROGMEM
+#define PGM_P const char *
+#define PSTR(str) (str)
+
+#define _SFR_BYTE(n) (n)
+
+typedef void prog_void;
+typedef char prog_char;
+typedef unsigned char prog_uchar;
+typedef int8_t prog_int8_t;
+typedef uint8_t prog_uint8_t;
+typedef int16_t prog_int16_t;
+typedef uint16_t prog_uint16_t;
+typedef int32_t prog_int32_t;
+typedef uint32_t prog_uint32_t;
+
+#define memcpy_P(dest, src, num) memcpy((dest), (src), (num))
+#define strcpy_P(dest, src) strcpy((dest), (src))
+#define strcat_P(dest, src) strcat((dest), (src))
+#define strcmp_P(a, b) strcmp((a), (b))
+#define strstr_P(a, b) strstr((a), (b))
+#define strlen_P(a) strlen((a))
+#define sprintf_P(s, f, ...) sprintf((s), (f), __VA_ARGS__)
+
+#define pgm_read_byte(addr) (*(const unsigned char *)(addr))
+#define pgm_read_word(addr) (*(const unsigned short *)(addr))
+#define pgm_read_dword(addr) (*(const unsigned long *)(addr))
+#define pgm_read_float(addr) (*(const float *)(addr))
+
+#define pgm_read_byte_near(addr) pgm_read_byte(addr)
+#define pgm_read_word_near(addr) pgm_read_word(addr)
+#define pgm_read_dword_near(addr) pgm_read_dword(addr)
+#define pgm_read_float_near(addr) pgm_read_float(addr)
+#define pgm_read_byte_far(addr) pgm_read_byte(addr)
+#define pgm_read_word_far(addr) pgm_read_word(addr)
+#define pgm_read_dword_far(addr) pgm_read_dword(addr)
+#define pgm_read_float_far(addr) pgm_read_float(addr)
+
+#endif
diff --git a/cores/arduino/binary.h b/cores/arduino/binary.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/hooks.c b/cores/arduino/hooks.c
old mode 100755
new mode 100644
diff --git a/cores/arduino/itoa.c b/cores/arduino/itoa.c
old mode 100755
new mode 100644
diff --git a/cores/arduino/itoa.h b/cores/arduino/itoa.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/main.cpp b/cores/arduino/main.cpp
old mode 100755
new mode 100644
diff --git a/cores/arduino/syscalls.c b/cores/arduino/syscalls.c
old mode 100755
new mode 100644
index fb0cee9..32a63fd
--- a/cores/arduino/syscalls.c
+++ b/cores/arduino/syscalls.c
@@ -58,7 +58,7 @@
#include
#include
-#include "nrf51.h"
+#include
#if defined ( __GNUC__ ) /* GCC CS3 */
#include
#include
diff --git a/cores/arduino/syscalls.h b/cores/arduino/syscalls.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/wiring.c b/cores/arduino/wiring.c
old mode 100755
new mode 100644
diff --git a/cores/arduino/wiring.h b/cores/arduino/wiring.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/wiring_analog.c b/cores/arduino/wiring_analog.c
old mode 100755
new mode 100644
index 2ccc52e..0f58d53
--- a/cores/arduino/wiring_analog.c
+++ b/cores/arduino/wiring_analog.c
@@ -97,19 +97,28 @@ uint32_t analogRead(uint32_t ulPin)
if ((ulPin > 0) && (ulPin < PINS_COUNT)) // Only pins 1-6 is avaliable for using as ADC inputs
{
pselValue = (1 << (ulPin + 1)); // Calculate PSEL value
- NRF_ADC->CONFIG = (ADC_CONFIG_RES_10bit << ADC_CONFIG_RES_Pos)| // 10bit ADC resolution
+ if (analog_reference == ADC_CONFIG_REFSEL_External)
+ NRF_ADC->CONFIG = (ADC_CONFIG_RES_10bit << ADC_CONFIG_RES_Pos)| // 10bit ADC resolution
(adc_input_selection << ADC_CONFIG_INPSEL_Pos)| // DEFAULT: Analog input specified by PSEL with 1/3 prescaling used as input for the conversion
- (analog_reference << ADC_CONFIG_REFSEL_Pos)| // DEFAULT: Use supply voltage with 1/3 prescaling as reference for conversion. Only usable when supply voltage is between 2.5V and 3.6V
+ (ADC_CONFIG_REFSEL_External << ADC_CONFIG_REFSEL_Pos)|
(pselValue << ADC_CONFIG_PSEL_Pos)| // Select ADC input
(external_reference << ADC_CONFIG_EXTREFSEL_Pos); // DEFAULT: Use analog reference 0 as reference if selected external reference
- NRF_ADC->INTENCLR = 0xFFFFFFFF;
- NRF_ADC->ENABLE = (ADC_ENABLE_ENABLE_Enabled << ADC_ENABLE_ENABLE_Pos); // Enable ADC
- NRF_ADC->TASKS_START = 1; // Start A-D conversion
- while ((NRF_ADC->BUSY & ADC_BUSY_BUSY_Msk) == (ADC_BUSY_BUSY_Busy << ADC_BUSY_BUSY_Pos)) // Wait for end of conversion
- ;
+ else
+ NRF_ADC->CONFIG = (ADC_CONFIG_RES_10bit << ADC_CONFIG_RES_Pos)| // 10bit ADC resolution
+ (adc_input_selection << ADC_CONFIG_INPSEL_Pos)| // DEFAULT: Analog input specified by PSEL with 1/3 prescaling used as input for the conversion
+ (analog_reference << ADC_CONFIG_REFSEL_Pos)| // DEFAULT: Use supply voltage with 1/3 prescaling as reference for conversion. Only usable when supply voltage is between 2.5V and 3.6V
+ (pselValue << ADC_CONFIG_PSEL_Pos)| // Select ADC input
+ (ADC_CONFIG_EXTREFSEL_None << ADC_CONFIG_EXTREFSEL_Pos);
+ NRF_ADC->INTENCLR = 0xFFFFFFFF;
+ NRF_ADC->ENABLE = (ADC_ENABLE_ENABLE_Enabled << ADC_ENABLE_ENABLE_Pos); // Enable ADC
+ NRF_ADC->EVENTS_END = 0; // Reset end flag
+ NRF_ADC->TASKS_START = 1; // Start A-D conversion
+ while (! NRF_ADC->EVENTS_END) // Wait for end of conversion
+ ;
ulValue = NRF_ADC->RESULT; // Read the value
ulValue = mapResolution(ulValue, ADC_RESOLUTION, _readResolution);
NRF_ADC->ENABLE = (ADC_ENABLE_ENABLE_Disabled << ADC_ENABLE_ENABLE_Pos); // Disable ADC
+ NRF_ADC->TASKS_STOP = 1;
// GPIOs release regarding PAN028
NRF_ADC->CONFIG = (ADC_CONFIG_RES_8bit << ADC_CONFIG_RES_Pos) |
(ADC_CONFIG_INPSEL_SupplyTwoThirdsPrescaling << ADC_CONFIG_INPSEL_Pos) |
@@ -120,30 +129,35 @@ uint32_t analogRead(uint32_t ulPin)
return ulValue;
}
+int find_free_PPI_channel(int exclude_channel)
+{
+ // For BLE / NonBLE, find first free PPI Channel in the range 0-7. Note the channels 8-15 is occupied by SoftDevice. Maximum 4 PPI pairs.
+ // For GZLL only, find first free PPI Channel in the range 3-8. Note the channels 0-2 and TIMER2 are used by Gazell. Maximum 3 PPI pairs.
+ // For GZLL and BLE, find first free PPI Channel in the range 3-7. Maximum 2 PPI pairs.
+ int start = 0;
+ int end = 8;
+
+ int i;
+
+ if (RFduinoGZLL_used)
+ start = 3;
+
+ if (! RFduinoBLE_used)
+ end = 16;
+
+ for (i = start; i < end; i++)
+ if (! (NRF_PPI->CHEN & (1 << i)))
+ if (i != exclude_channel)
+ return i;
+
+ return 255;
+}
+
void turn_On_PPI_to_GPIO_for_PWM(uint32_t ulPin, uint32_t gpiote_channel, NRF_TIMER_Type* Timer, uint32_t CC_channel)
{
- uint32_t i;
- uint8_t chan_0 = 255;
- uint8_t chan_1 = 255;
- // Initialize Programmable Peripheral Interconnect
- // Find first free PPI Channel in the range 0-7. Note the channels 8-15 is occupied by SoftDevice
- for (i = 0; i < 8; i++)
- {
- if (!(NRF_PPI->CHEN & (1 << i)))
- {
- chan_0 = i;
- // Find second free PPI Channel in the range 0-7. Note the channels 8-15 is occupied by SoftDevice
- for (i = (chan_0 + 1); i < 8; i++)
- {
- if (!(NRF_PPI->CHEN & (1 << i)))
- {
- chan_1 = i;
- break;
- }
- }
- break;
- }
- }
+ // Initialize Programmable Peripheral Interconnect
+ int chan_0 = find_free_PPI_channel(255);
+ int chan_1 = find_free_PPI_channel(chan_0);
if ((chan_0 != 255) && (chan_1 != 255))
{
@@ -383,7 +397,7 @@ void analogWrite(uint32_t ulPin, uint32_t ulValue) {
else
{
// All channels of Timer1 is occupied, need to use Timer2
- if (Timer2_Compare_Unit_Occupied_by_Pin[0] == 255)
+ if (!RFduinoGZLL_used && Timer2_Compare_Unit_Occupied_by_Pin[0] == 255)
{
// Timer2 is not used: need to initialize it
diff --git a/cores/arduino/wiring_analog.h b/cores/arduino/wiring_analog.h
old mode 100755
new mode 100644
index b854cd8..ca87c63
--- a/cores/arduino/wiring_analog.h
+++ b/cores/arduino/wiring_analog.h
@@ -102,6 +102,7 @@ extern void analogReadResolution(int res);
*/
extern void analogWriteResolution(int res);
+extern int find_free_PPI_channel(int exclude_channel);
extern void turn_Off_GPIOTE_PPI_from_GPIO(uint32_t ulPin);
#ifdef __cplusplus
diff --git a/cores/arduino/wiring_constants.h b/cores/arduino/wiring_constants.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/wiring_digital.c b/cores/arduino/wiring_digital.c
old mode 100755
new mode 100644
diff --git a/cores/arduino/wiring_digital.h b/cores/arduino/wiring_digital.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/wiring_pulse.cpp b/cores/arduino/wiring_pulse.cpp
old mode 100755
new mode 100644
diff --git a/cores/arduino/wiring_pulse.h b/cores/arduino/wiring_pulse.h
old mode 100755
new mode 100644
diff --git a/cores/arduino/wiring_shift.c b/cores/arduino/wiring_shift.c
old mode 100755
new mode 100644
diff --git a/cores/arduino/wiring_shift.h b/cores/arduino/wiring_shift.h
old mode 100755
new mode 100644
diff --git a/iPhone Apps/rfduino/AppDelegate.h b/iPhone Apps/rfduino/AppDelegate.h
deleted file mode 100755
index 42bfb28..0000000
--- a/iPhone Apps/rfduino/AppDelegate.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-@interface AppDelegate : UIResponder
-
-@property (strong, nonatomic) UIWindow *window;
-
-@end
diff --git a/iPhone Apps/rfduino/AppDelegate.m b/iPhone Apps/rfduino/AppDelegate.m
deleted file mode 100755
index 5f68204..0000000
--- a/iPhone Apps/rfduino/AppDelegate.m
+++ /dev/null
@@ -1,102 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import "AppDelegate.h"
-
-#import "ScanViewController.h"
-#import "RFduinoManager.h"
-
-@interface AppDelegate()
-{
- RFduinoManager *rfduinoManager;
- bool wasScanning;
-}
-@end
-
-@implementation AppDelegate
-
-- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
-{
- self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
-
- rfduinoManager = RFduinoManager.sharedRFduinoManager;
-
- ScanViewController *viewController = [[ScanViewController alloc] init];
-
- UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController];
- [self.window setRootViewController:navController];
-
- navController.navigationBar.tintColor = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
-
- self.window.backgroundColor = [UIColor whiteColor];
- [self.window makeKeyAndVisible];
- return YES;
-}
-
-- (void)applicationWillResignActive:(UIApplication *)application
-{
- NSLog(@"applicationWillResignActive");
-
- // 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.
-
- wasScanning = false;
-
- if (rfduinoManager.isScanning) {
- wasScanning = true;
- [rfduinoManager stopScan];
- }
-}
-
-- (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
-{
- NSLog(@"applicationDidBecomeActive");
-
- // 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.
-
- if (wasScanning) {
- [rfduinoManager startScan];
- wasScanning = false;
- }
-}
-
-- (void)applicationWillTerminate:(UIApplication *)application
-{
- // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
-}
-
-@end
diff --git a/iPhone Apps/rfduino/CustomCellBackground.h b/iPhone Apps/rfduino/CustomCellBackground.h
deleted file mode 100755
index a3e14fa..0000000
--- a/iPhone Apps/rfduino/CustomCellBackground.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-@interface CustomCellBackground : UIView
-{
-}
-
-@property (nonatomic, strong) UIColor *startColor;
-@property (nonatomic, strong) UIColor *stopColor;
-
-@end
diff --git a/iPhone Apps/rfduino/CustomCellBackground.m b/iPhone Apps/rfduino/CustomCellBackground.m
deleted file mode 100755
index 4f92e3b..0000000
--- a/iPhone Apps/rfduino/CustomCellBackground.m
+++ /dev/null
@@ -1,81 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import "CustomCellBackground.h"
-
-@implementation CustomCellBackground
-
-@synthesize startColor;
-@synthesize stopColor;
-
-// http://www.raywenderlich.com/32283/core-graphics-tutorial-lines-rectangles-and-gradients
-
-void drawLinearGradient(CGContextRef context, CGRect rect, CGColorRef startColor, CGColorRef endColor)
-{
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
- CGFloat locations[] = { 0.0, 1.0 };
-
- NSArray *colors = @[(__bridge id) startColor, (__bridge id) endColor];
-
- CGGradientRef gradient = CGGradientCreateWithColors(colorSpace, (__bridge CFArrayRef) colors, locations);
-
- CGPoint startPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMinY(rect));
- CGPoint endPoint = CGPointMake(CGRectGetMidX(rect), CGRectGetMaxY(rect));
-
- CGContextSaveGState(context);
- CGContextAddRect(context, rect);
- CGContextClip(context);
- CGContextDrawLinearGradient(context, gradient, startPoint, endPoint, 0);
- CGContextRestoreGState(context);
-
- CGGradientRelease(gradient);
- CGColorSpaceRelease(colorSpace);
-}
-
-- (id)initWithFrame:(CGRect)frame
-{
- self = [super initWithFrame:frame];
- if (self) {
- // Initialization code
- }
- return self;
-}
-
-// Only override drawRect: if you perform custom drawing.
-// An empty implementation adversely affects performance during animation.
-- (void)drawRect:(CGRect)rect
-{
- CGContextRef context = UIGraphicsGetCurrentContext();
-
- CGRect frameRect = self.bounds;
-
- // CGContextSetFillColorWithColor(context, redColor.CGColor);
- // CGContextFillRect(context, self.bounds);
-
- drawLinearGradient(context, frameRect, startColor.CGColor, stopColor.CGColor);
-}
-
-@end
diff --git a/iPhone Apps/rfduino/RFduino.m b/iPhone Apps/rfduino/RFduino.m
deleted file mode 100755
index 0f340cf..0000000
--- a/iPhone Apps/rfduino/RFduino.m
+++ /dev/null
@@ -1,187 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import "RFduino.h"
-
-#import "RFduinoManager.h"
-
-static const int max_data = 12;
-
-static CBUUID *service_uuid;
-static CBUUID *send_uuid;
-static CBUUID *receive_uuid;
-static CBUUID *disconnect_uuid;
-
-char data(NSData *data)
-{
- return (char)dataByte(data);
-}
-
-uint8_t dataByte(NSData *data)
-{
- uint8_t *p = (uint8_t*)[data bytes];
- NSUInteger len = [data length];
- return (len ? *p : 0);
-}
-
-int dataInt(NSData *data)
-{
- uint8_t *p = (uint8_t*)[data bytes];
- NSUInteger len = [data length];
- return (sizeof(int) <= len ? *(int*)p : 0);
-}
-
-float dataFloat(NSData *data)
-{
- uint8_t *p = (uint8_t*)[data bytes];
- NSUInteger len = [data length];
- return (sizeof(float) <= len ? *(float*)p : 0);
-}
-
-@interface RFduino()
-{
- CBCharacteristic *send_characteristic;
- CBCharacteristic *disconnect_characteristic;
- bool loadedService;
-}
-@end
-
-@implementation RFduino
-
-@synthesize delegate;
-@synthesize rfduinoManager;
-@synthesize peripheral;
-
-@synthesize name;
-@synthesize UUID;
-@synthesize advertisementData;
-@synthesize advertisementRSSI;
-@synthesize advertisementPackets;
-@synthesize outOfRange;
-
-- (id)init
-{
- NSLog(@"rfduino init");
-
- self = [super init];
- if (self) {
- }
-
- return self;
-}
-
-- (void)connected
-{
- NSLog(@"rfduino connected");
-
- service_uuid = [CBUUID UUIDWithString:@"2220"];
- send_uuid = [CBUUID UUIDWithString:@"2222"];
- receive_uuid = [CBUUID UUIDWithString:@"2221"];
- disconnect_uuid = [CBUUID UUIDWithString:@"2223"];
-
- peripheral.delegate = self;
-
- [peripheral discoverServices:[NSArray arrayWithObject:service_uuid]];
-}
-
-#pragma mark - CBPeripheralDelegate methods
-
-- (void)peripheral:(CBPeripheral *)_peripheral didDiscoverServices:(NSError *)error
-{
- NSLog(@"didDiscoverServices");
-
- for (CBService *service in peripheral.services) {
- if ([service.UUID isEqual:service_uuid])
- {
- NSArray *characteristics = [NSArray arrayWithObjects:receive_uuid, send_uuid, disconnect_uuid, nil];
- [peripheral discoverCharacteristics:characteristics forService:service];
- }
- }
-}
-
-- (void)peripheral:(CBPeripheral *)_peripheral didDiscoverCharacteristicsForService:(CBService *)service error:(NSError *)error
-{
- NSLog(@"didDiscoverCharacteristicsForService");
- for (CBService *service in peripheral.services) {
- if ([service.UUID isEqual:service_uuid]) {
- for (CBCharacteristic *characteristic in service.characteristics) {
- if ([characteristic.UUID isEqual:receive_uuid]) {
- [peripheral setNotifyValue:YES forCharacteristic:characteristic];
- } else if ([characteristic.UUID isEqual:send_uuid]) {
- send_characteristic = characteristic;
- } else if ([characteristic.UUID isEqual:disconnect_uuid]) {
- disconnect_characteristic = characteristic;
- }
- }
-
- loadedService = true;
- [rfduinoManager loadedServiceRFduino:self];
- }
- }
-}
-
-- (void)peripheral:(CBPeripheral *)aPeripheral didUpdateValueForCharacteristic:(CBCharacteristic *)characteristic error:(NSError *)error
-{
- NSLog(@"didUpdateValueForCharacteristic");
- if ([characteristic.UUID isEqual:receive_uuid]) {
- SEL didReceive = @selector(didReceive:);
- if ([delegate respondsToSelector:didReceive]) {
- [delegate didReceive:characteristic.value];
- }
- }
-}
-
-#pragma mark - RFduino methods
-
-- (void)send:(NSData *)data
-{
- if (! loadedService) {
- @throw [NSException exceptionWithName:@"sendData" reason:@"please wait for ready callback" userInfo:nil];
- }
-
- if ([data length] > max_data) {
- @throw [NSException exceptionWithName:@"sendData" reason:@"max data size exceeded" userInfo:nil];
- }
-
- [peripheral writeValue:data forCharacteristic:send_characteristic type:CBCharacteristicWriteWithoutResponse];
-}
-
-- (void)disconnect
-{
- NSLog(@"rfduino disconnect");
-
- if (loadedService) {
- NSLog(@"writing to disconnect characteristic");
- // fix for iOS SDK 7.0 - at least one byte must now be transferred
- uint8_t flag = 1;
- NSData *data = [NSData dataWithBytes:(void*)&flag length:1];
- [peripheral writeValue:data forCharacteristic:disconnect_characteristic type:CBCharacteristicWriteWithoutResponse];
- }
-
- [rfduinoManager disconnectRFduino:self];
-}
-
-@end
diff --git a/iPhone Apps/rfduino/RFduinoDelegate.h b/iPhone Apps/rfduino/RFduinoDelegate.h
deleted file mode 100755
index b91b720..0000000
--- a/iPhone Apps/rfduino/RFduinoDelegate.h
+++ /dev/null
@@ -1,35 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-@protocol RFduinoDelegate
-
-@optional
-
-- (void)didReceive:(NSData *)data;
-
-@end
diff --git a/iPhone Apps/rfduino/RFduinoManagerDelegate.h b/iPhone Apps/rfduino/RFduinoManagerDelegate.h
deleted file mode 100755
index 50f750c..0000000
--- a/iPhone Apps/rfduino/RFduinoManagerDelegate.h
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-@class RFduino;
-
-@protocol RFduinoManagerDelegate
-
-- (void)didDiscoverRFduino:(RFduino *)rfduino;
-
-@optional
-
-- (void)didUpdateDiscoveredRFduino:(RFduino *)rfduino;
-
-- (void)didConnectRFduino:(RFduino *)rfduino;
-- (void)didLoadServiceRFduino:(RFduino *)rfduino;
-- (void)didDisconnectRFduino:(RFduino *)rfduino;
-
-@end
diff --git a/iPhone Apps/rfduino/RfduinoManager.m b/iPhone Apps/rfduino/RfduinoManager.m
deleted file mode 100755
index 69aa481..0000000
--- a/iPhone Apps/rfduino/RfduinoManager.m
+++ /dev/null
@@ -1,391 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#include
-
-#import "RFduinoManager.h"
-
-#import "RFduino.h"
-
-static CBUUID *service_uuid;
-
-@interface RFduinoManager()
-{
- NSTimer *rangeTimer;
- int rangeTimerCount;
- bool didUpdateDiscoveredRFduinoFlag;
- void (^cancelBlock)(void);
- bool isScanning;
-}
-@end
-
-@implementation RFduinoManager
-
-@synthesize delegate;
-@synthesize rfduinos;
-
-+ (RFduinoManager *)sharedRFduinoManager
-{
- static RFduinoManager *rfduinoManager;
- if (! rfduinoManager) {
- rfduinoManager = [[RFduinoManager alloc] init];
- }
- return rfduinoManager;
-}
-
-- (id)init
-{
- NSLog(@"init");
-
- self = [super init];
-
- if (self) {
- service_uuid = [CBUUID UUIDWithString:@"2220"];
-
- rfduinos = [[NSMutableArray alloc] init];
-
- central = [[CBCentralManager alloc] initWithDelegate:self queue:nil];
- }
-
- return self;
-}
-
-- (bool)isBluetoothLESupported
-{
- if ([central state] == CBCentralManagerStatePoweredOn)
- return YES;
-
- NSString *message;
-
- switch ([central state])
- {
- case CBCentralManagerStateUnsupported:
- message = @"This hardware doesn't support Bluetooth Low Energy.";
- break;
- case CBCentralManagerStateUnauthorized:
- message = @"This app is not authorized to use Bluetooth Low Energy.";
- break;
- case CBCentralManagerStatePoweredOff:
- message = @"Bluetooth is currently powered off.";
- break;
- case CBCentralManagerStateUnknown:
- // fall through
- default:
- message = @"Bluetooth state is unknown.";
-
- }
-
-#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
-
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Bluetooth LE Support"
- message:message
- delegate:nil
- cancelButtonTitle:@"OK"
- otherButtonTitles:nil];
- [alert show];
-
-#endif
-
- return NO;
-}
-
-- (void)startRangeTimer
-{
- rangeTimerCount = 0;
-
- rangeTimer = [NSTimer scheduledTimerWithTimeInterval:1.0
- target:self
- selector:@selector(rangeTick:)
- userInfo:nil
- repeats:YES];
-
-}
-
-- (void)stopRangeTimer
-{
- [rangeTimer invalidate];
-}
-
-- (void) rangeTick:(NSTimer*)timer
-{
- bool update = false;
-
- rangeTimerCount++;
- if ((rangeTimerCount % 60) == 0) {
- // NSLog(@"restarting scanning");
-
- [central stopScan];
-
- NSDictionary *options = nil;
- options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
- forKey:CBCentralManagerScanOptionAllowDuplicatesKey];
- [central scanForPeripheralsWithServices:[NSArray arrayWithObject:service_uuid] options:options];
- }
-
-
- NSDate *date = [NSDate date];
- for (RFduino *rfduino in rfduinos) {
- if (!rfduino.outOfRange
- && rfduino.lastAdvertisement != NULL
- && [date timeIntervalSinceDate:rfduino.lastAdvertisement] > 2)
- {
- rfduino.outOfRange = true;
- update = true;
- }
- }
-
- if (update) {
- if (didUpdateDiscoveredRFduinoFlag) {
- [delegate didUpdateDiscoveredRFduino:nil];
- }
- }
-}
-
-#pragma mark - CentralManagerDelegate methods
-
-- (void)centralManager:(CBCentralManager *)central didConnectPeripheral:(CBPeripheral *)peripheral
-{
- NSLog(@"didConnectPeripheral");
-
- RFduino *rfduino = [self rfduinoForPeripheral:peripheral];
- if (rfduino) {
- [rfduino connected];
- [delegate didConnectRFduino:rfduino];
- }
-}
-
-- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error
-{
- NSLog(@"didDisconnectPeripheral");
-
- void (^block)(void) = ^{
- if ([delegate respondsToSelector:@selector(didDisconnectRFduino:)]) {
- RFduino *rfduino = [self rfduinoForPeripheral:peripheral];
- if (rfduino) {
- [delegate didDisconnectRFduino:rfduino];
- }
- }
- };
-
- if (error.code) {
- cancelBlock = block;
-
-#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
-
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Peripheral Disconnected with Error"
- message:error.description
- delegate:self
- cancelButtonTitle:@"OK"
- otherButtonTitles:nil];
- [alert show];
-
-#endif
-
- }
- else
- block();
-
- if (peripheral) {
- [peripheral setDelegate:nil];
- peripheral = nil;
- }
-}
-
-- (RFduino *)rfduinoForPeripheral:(CBPeripheral *)peripheral
-{
- for (RFduino *rfduino in rfduinos) {
- if ([peripheral isEqual:rfduino.peripheral]) {
- return rfduino;
- }
- }
- return nil;
-}
-
-- (void)centralManager:(CBCentralManager *)central didDiscoverPeripheral:(CBPeripheral *)peripheral advertisementData:(NSDictionary *)advertisementData RSSI:(NSNumber *)RSSI
-{
- // NSLog(@"didDiscoverPeripheral");
-
- NSString *uuid = NULL;
- if (peripheral.UUID) {
- // only returned if you have connected to the device before
- uuid = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, peripheral.UUID);
- } else {
- uuid = @"";
- }
-
- bool added = false;
-
- RFduino *rfduino = [self rfduinoForPeripheral:peripheral];
- if (! rfduino) {
- rfduino = [[RFduino alloc] init];
-
- rfduino.rfduinoManager = self;
-
- rfduino.name = peripheral.name;
- rfduino.UUID = uuid;
-
- rfduino.peripheral = peripheral;
-
- added = true;
-
- [rfduinos addObject:rfduino];
- }
-
- rfduino.advertisementData = nil;
-
- id manufacturerData = [advertisementData objectForKey:CBAdvertisementDataManufacturerDataKey];
- if (manufacturerData) {
- const uint8_t *bytes = [manufacturerData bytes];
- int len = [manufacturerData length];
- // skip manufacturer uuid
- NSData *data = [NSData dataWithBytes:bytes+2 length:len-2];
- rfduino.advertisementData = data;
- }
-
- rfduino.advertisementRSSI = RSSI;
- rfduino.advertisementPackets++;
- rfduino.lastAdvertisement = [NSDate date];
- rfduino.outOfRange = false;
-
- if (added) {
- [delegate didDiscoverRFduino:rfduino];
- } else {
- if (didUpdateDiscoveredRFduinoFlag) {
- [delegate didUpdateDiscoveredRFduino:rfduino];
- }
- }
-}
-
-- (void)centralManager:(CBCentralManager *)central didFailToConnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error
-{
- NSLog(@"didFailToConnectPeripheral");
-
-#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
-
- UIAlertView *alert = [[UIAlertView alloc] initWithTitle:@"Connect Failed"
- message:error.description
- delegate:nil
- cancelButtonTitle:@"OK"
- otherButtonTitles:nil];
- [alert show];
-
-#endif
-
-}
-
-- (void)centralManager:(CBCentralManager *)central didRetrieveConnectedPeripherals:(NSArray *)peripherals
-{
-}
-
-- (void)centralManagerDidUpdateState:(CBCentralManager *)aCentral
-{
- NSLog(@"central manager state = %d", [central state]);
-
- bool success = [self isBluetoothLESupported];
- if (success) {
- [self startScan];
- }
-}
-
-#pragma mark - UIAlertViewDelegate methods
-
-#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
-
-- (void)alertView:(UIAlertView *)alertView didDismissWithButtonIndex:(NSInteger) buttonIndex
-{
- if (buttonIndex == 0) {
- cancelBlock();
- }
-}
-
-#endif
-
-#pragma mark - Rfduino methods
-
-- (bool)isScanning
-{
- return isScanning;
-}
-
-- (void)startScan
-{
- NSLog(@"startScan");
-
- isScanning = true;
-
- NSDictionary *options = nil;
-
- didUpdateDiscoveredRFduinoFlag = [delegate respondsToSelector:@selector(didUpdateDiscoveredRFduino:)];
-
- if (didUpdateDiscoveredRFduinoFlag) {
- options = [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
- forKey:CBCentralManagerScanOptionAllowDuplicatesKey];
- }
-
- [rfduinos removeAllObjects];
-
- [central scanForPeripheralsWithServices:[NSArray arrayWithObject:service_uuid] options:options];
-
- if (didUpdateDiscoveredRFduinoFlag) {
- [self startRangeTimer];
- }
-}
-
-- (void)stopScan
-{
- NSLog(@"stopScan");
-
- if (didUpdateDiscoveredRFduinoFlag) {
- [self stopRangeTimer];
- }
-
- [central stopScan];
-
- isScanning = false;
-}
-
-- (void)connectRFduino:(RFduino *)rfduino
-{
- NSLog(@"connectRFduino");
-
- [central connectPeripheral:[rfduino peripheral] options:nil];
-}
-
-- (void)disconnectRFduino:(RFduino *)rfduino
-{
- NSLog(@"rfduinoManager disconnectPeripheral");
-
- [central cancelPeripheralConnection:rfduino.peripheral];
-}
-
-- (void)loadedServiceRFduino:(id)rfduino
-{
- if ([delegate respondsToSelector:@selector(didLoadServiceRFduino:)]) {
- [delegate didLoadServiceRFduino:rfduino];
- }
-}
-
-@end
diff --git a/iPhone Apps/rfduino/ScanViewController.h b/iPhone Apps/rfduino/ScanViewController.h
deleted file mode 100755
index 2da947f..0000000
--- a/iPhone Apps/rfduino/ScanViewController.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-#import "RFduinoManagerDelegate.h"
-
-@class RFduinoManager;
-@class RFduino;
-
-@interface ScanViewController : UITableViewController
-{
- RFduinoManager *rfduinoManager;
-}
-
-@end
diff --git a/iPhone Apps/rfduino/ScanViewController.m b/iPhone Apps/rfduino/ScanViewController.m
deleted file mode 100755
index 44d9846..0000000
--- a/iPhone Apps/rfduino/ScanViewController.m
+++ /dev/null
@@ -1,320 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-#import "ScanViewController.h"
-
-#import "RFduinoManager.h"
-#import "RFduino.h"
-
-#import "AppViewController.h"
-
-#import "CustomCellBackground.h"
-
-@interface ScanViewController()
-{
- bool editingRow;
- bool loadService;
-}
-@end
-
-@implementation ScanViewController
-
-- (id)initWithStyle:(UITableViewStyle)style
-{
- self = [super initWithStyle:style];
- if (self) {
- UINavigationItem *navItem = [self navigationItem];
- [navItem setTitle:@"Found RFduinos"];
-
- rfduinoManager = [RFduinoManager sharedRFduinoManager];
- }
- return self;
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
-
- // Uncomment the following line to preserve selection between presentations.
- // self.clearsSelectionOnViewWillAppear = NO;
-
- // Uncomment the following line to display an Edit button in the navigation bar for this view controller.
- // self.navigationItem.rightBarButtonItem = self.editButtonItem;
-
- rfduinoManager.delegate = self;
-
- int numberOfLines = 3;
- self.tableView.rowHeight = (44.0 + (numberOfLines - 1) * 19.0);
-
- UIColor *start = [UIColor colorWithRed:58/255.0 green:108/255.0 blue:183/255.0 alpha:0.15];
- UIColor *stop = [UIColor colorWithRed:58/255.0 green:108/255.0 blue:183/255.0 alpha:0.45];
-
- CAGradientLayer *gradient = [CAGradientLayer layer];
- // gradient.frame = [self.view bounds];
- gradient.frame = CGRectMake(0.0, 0.0, 1024.0, 1024.0);
- gradient.colors = [NSArray arrayWithObjects:(id)start.CGColor, (id)stop.CGColor, nil];
- [self.tableView.layer insertSublayer:gradient atIndex:0];
-}
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-}
-
-#pragma mark - Table view data source
-
-- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
-{
- return 1;
-}
-
-- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
-{
- return [[rfduinoManager rfduinos] count];
-}
-
-- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
-{
- static NSMutableArray *signalStrength = nil;
- if (! signalStrength) {
- signalStrength = [[NSMutableArray alloc] init];
- }
-
- static NSString *cellIdentifier = @"Cell";
- UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
- if (! cell) {
- cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:cellIdentifier];
-
- cell.textLabel.backgroundColor = [UIColor clearColor];
- cell.detailTextLabel.backgroundColor = [UIColor clearColor];
-
- UIProgressView *view = [[UIProgressView alloc]initWithProgressViewStyle:UIProgressViewStyleBar];
- view.frame = CGRectMake(0.0, 0.0, 150.0, 0.0);
- view.center = CGPointMake(225,14);
- view.progressViewStyle = UIProgressViewStyleDefault;
- view.progressTintColor = [UIColor colorWithRed:0.0 green:0.5 blue:0.0 alpha:1.0];
-
- [cell addSubview:view];
-
- [signalStrength setObject:view atIndexedSubscript:indexPath.row];
- }
-
- RFduino *rfduino = [rfduinoManager.rfduinos objectAtIndex:[indexPath row]];
-
- UIColor *start;
- UIColor *stop;
- if (rfduino.outOfRange) {
- start = [UIColor colorWithRed:160/255.0 green:160/255.0 blue:160/255.0 alpha:0.8];
- stop = [UIColor colorWithRed:160/255.0 green:160/255.0 blue:160/255.0 alpha:0.2];
- } else if (! rfduino.UUID.length) {
- start = [UIColor colorWithRed:224/255.0 green:242/255.0 blue:224/255.0 alpha: 1.0];
- stop = [UIColor colorWithRed:224/255.0 green:242/255.0 blue:224/255.0 alpha: 0.7];
- } else {
- start = [UIColor colorWithRed:253/255.0 green:255/255.0 blue:255/255.0 alpha: 1.0];
- stop = [UIColor colorWithRed:253/255.0 green:255/255.0 blue:255/255.0 alpha: 0.7];
- }
-
- CustomCellBackground *ccb = [[CustomCellBackground alloc] init];
- ccb.startColor = start;
- ccb.stopColor = stop;
- cell.backgroundView = ccb;
-
- NSString *text = [[NSString alloc] initWithFormat:@"%@", rfduino.name];
-
- NSString *uuid = rfduino.UUID;
-
- int rssi = rfduino.advertisementRSSI.intValue;
-
- NSString *advertising = @"";
- if (rfduino.advertisementData) {
- advertising = [[NSString alloc] initWithData:rfduino.advertisementData encoding:NSUTF8StringEncoding];
- }
-
- NSMutableString *detail = [NSMutableString stringWithCapacity:100];
- [detail appendFormat:@"RSSI: %d dBm", rssi];
- while ([detail length] < 25)
- [detail appendString:@" "];
- [detail appendFormat:@"Packets: %d\n", rfduino.advertisementPackets];
- [detail appendFormat:@"Advertising: %@\n", advertising];
- [detail appendFormat:@"%@", uuid];
-
- cell.textLabel.text = text;
- cell.detailTextLabel.text = detail;
- cell.detailTextLabel.numberOfLines = 3;
-
- if (indexPath.row < signalStrength.count) {
- UIProgressView *view = [signalStrength objectAtIndex:indexPath.row];
- if (view) {
- int value = rssi;
-
- // only interested in graphing the rssi range between -75 and -103
- if (value > -75) {
- value = -75;
- }
- if (value < -103) {
- value = -103;
- }
-
- // translate rssi to signal strength between 0 and 28
- value += 103;
-
- // calculate ratio
- float ratio = (float)value / (-75 - -103);
-
- // moving average over 20 samples
- int samples = 20;
- if ([advertising hasPrefix:@"-"]) {
- // device using non-default avertising (switch the instaneous sampling)
- samples = 1;
- }
-
- if (view.progress == 0.0) {
- // use the instantaneous value for the first sample
- view.progress = ratio;
- } else {
- view.progress = (ratio * 1.0/samples) + (view.progress * (samples - 1.0)/samples);
- }
- }
- }
-
- return cell;
-}
-
-// Override to support conditional editing of the table view.
-- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath
-{
- RFduino *rfduino = [rfduinoManager.rfduinos objectAtIndex:[indexPath row]];
- // Return NO if you do not want the specified item to be editable.
- return (rfduino.outOfRange ? YES : NO);
-}
-
-- (void)tableView:(UITableView *)tableView willBeginEditingRowAtIndexPath:(NSIndexPath *)indexPath
-{
- editingRow = true;
-}
-
-- (void)tableView:(UITableView *)tableView didEndEditingRowAtIndexPath:(NSIndexPath *)indexPath
-{
- editingRow = false;
-}
-
-// Override to support editing the table view.
-- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath
-{
- if (editingStyle == UITableViewCellEditingStyleDelete) {
- // Delete the row from the data source
- [rfduinoManager.rfduinos removeObjectAtIndex:[indexPath row]];
- [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
- }
- /*
- else if (editingStyle == UITableViewCellEditingStyleInsert) {
- // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
- }
- */
-}
-
-/*
-// Override to support rearranging the table view.
-- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath
-{
-}
-*/
-
-/*
-// Override to support conditional rearranging of the table view.
-- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath
-{
- // Return NO if you do not want the item to be re-orderable.
- return YES;
-}
-*/
-
-#pragma mark - Table view delegate
-
-- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
-{
- RFduino *rfduino = [[rfduinoManager rfduinos] objectAtIndex:[indexPath row]];
-
- if (! rfduino.outOfRange) {
- [rfduinoManager connectRFduino:rfduino];
- } else {
- [self.tableView deselectRowAtIndexPath:indexPath animated:YES];
- }
-}
-
-#pragma mark - RfduinoDiscoveryDelegate methods
-
-- (void)didDiscoverRFduino:(RFduino *)rfduino
-{
- NSLog(@"didDiscoverRFduino");
- if (! editingRow) {
- NSLog(@"reloadData");
- [self.tableView reloadData];
- }
-}
-
-- (void)didUpdateDiscoveredRFduino:(RFduino *)rfduino
-{
- // NSLog(@"didUpdateRFduino");
- if (! editingRow) {
- [self.tableView reloadData];
- }
-}
-
-- (void)didConnectRFduino:(RFduino *)rfduino
-{
- NSLog(@"didConnectRFduino");
-
- [rfduinoManager stopScan];
-
- loadService = false;
-}
-
-- (void)didLoadServiceRFduino:(RFduino *)rfduino
-{
- AppViewController *viewController = [[AppViewController alloc] init];
- viewController.rfduino = rfduino;
-
- loadService = true;
- [[self navigationController] pushViewController:viewController animated:YES];
-}
-
-- (void)didDisconnectRFduino:(RFduino *)rfduino
-{
- NSLog(@"didDisconnectRFduino");
-
- if (loadService) {
- [[self navigationController] popViewControllerAnimated:YES];
- }
-
- [rfduinoManager startScan];
- [self.tableView reloadData];
-}
-
-@end
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/project.pbxproj b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/project.pbxproj
deleted file mode 100755
index 976758a..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,469 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- AABEB8C6185167E000833990 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AABEB8C5185167E000833990 /* Foundation.framework */; };
- AABEB8C8185167E000833990 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AABEB8C7185167E000833990 /* CoreGraphics.framework */; };
- AABEB8CA185167E000833990 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AABEB8C9185167E000833990 /* UIKit.framework */; };
- AABEB8D0185167E000833990 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AABEB8CE185167E000833990 /* InfoPlist.strings */; };
- AABEB8D2185167E000833990 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AABEB8D1185167E000833990 /* main.m */; };
- AABEB8D8185167E000833990 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AABEB8D7185167E000833990 /* Images.xcassets */; };
- AABEB8DF185167E000833990 /* XCTest.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AABEB8DE185167E000833990 /* XCTest.framework */; };
- AABEB8E0185167E000833990 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AABEB8C5185167E000833990 /* Foundation.framework */; };
- AABEB8E1185167E000833990 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AABEB8C9185167E000833990 /* UIKit.framework */; };
- AABEB901185167EC00833990 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AABEB8F6185167EC00833990 /* AppDelegate.m */; };
- AABEB902185167EC00833990 /* CustomCellBackground.m in Sources */ = {isa = PBXBuildFile; fileRef = AABEB8F8185167EC00833990 /* CustomCellBackground.m */; };
- AABEB903185167EC00833990 /* RFduino.m in Sources */ = {isa = PBXBuildFile; fileRef = AABEB8FA185167EC00833990 /* RFduino.m */; };
- AABEB904185167EC00833990 /* RfduinoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AABEB8FD185167EC00833990 /* RfduinoManager.m */; };
- AABEB905185167EC00833990 /* ScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AABEB900185167EC00833990 /* ScanViewController.m */; };
- AABEB9081851682000833990 /* AppViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AABEB9071851682000833990 /* AppViewController.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXContainerItemProxy section */
- AABEB8E2185167E000833990 /* PBXContainerItemProxy */ = {
- isa = PBXContainerItemProxy;
- containerPortal = AABEB8BA185167E000833990 /* Project object */;
- proxyType = 1;
- remoteGlobalIDString = AABEB8C1185167E000833990;
- remoteInfo = rfduinoBulkDataTransfer;
- };
-/* End PBXContainerItemProxy section */
-
-/* Begin PBXFileReference section */
- AABEB8C2185167E000833990 /* rfduinoBulkDataTransfer.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = rfduinoBulkDataTransfer.app; sourceTree = BUILT_PRODUCTS_DIR; };
- AABEB8C5185167E000833990 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- AABEB8C7185167E000833990 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- AABEB8C9185167E000833990 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- AABEB8CD185167E000833990 /* rfduinoBulkDataTransfer-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "rfduinoBulkDataTransfer-Info.plist"; sourceTree = ""; };
- AABEB8CF185167E000833990 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
- AABEB8D1185167E000833990 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- AABEB8D3185167E000833990 /* rfduinoBulkDataTransfer-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "rfduinoBulkDataTransfer-Prefix.pch"; sourceTree = ""; };
- AABEB8D7185167E000833990 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = ""; };
- AABEB8DD185167E000833990 /* rfduinoBulkDataTransferTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = rfduinoBulkDataTransferTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
- AABEB8DE185167E000833990 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; };
- AABEB8F5185167EC00833990 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
- AABEB8F6185167EC00833990 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
- AABEB8F7185167EC00833990 /* CustomCellBackground.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomCellBackground.h; sourceTree = ""; };
- AABEB8F8185167EC00833990 /* CustomCellBackground.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomCellBackground.m; sourceTree = ""; };
- AABEB8F9185167EC00833990 /* RFduino.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduino.h; sourceTree = ""; };
- AABEB8FA185167EC00833990 /* RFduino.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RFduino.m; sourceTree = ""; };
- AABEB8FB185167EC00833990 /* RFduinoDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduinoDelegate.h; sourceTree = ""; };
- AABEB8FC185167EC00833990 /* RfduinoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RfduinoManager.h; sourceTree = ""; };
- AABEB8FD185167EC00833990 /* RfduinoManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RfduinoManager.m; sourceTree = ""; };
- AABEB8FE185167EC00833990 /* RFduinoManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduinoManagerDelegate.h; sourceTree = ""; };
- AABEB8FF185167EC00833990 /* ScanViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanViewController.h; sourceTree = ""; };
- AABEB900185167EC00833990 /* ScanViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScanViewController.m; sourceTree = ""; };
- AABEB9061851682000833990 /* AppViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppViewController.h; sourceTree = ""; };
- AABEB9071851682000833990 /* AppViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppViewController.m; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- AABEB8BF185167E000833990 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AABEB8C8185167E000833990 /* CoreGraphics.framework in Frameworks */,
- AABEB8CA185167E000833990 /* UIKit.framework in Frameworks */,
- AABEB8C6185167E000833990 /* Foundation.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- AABEB8DA185167E000833990 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AABEB8DF185167E000833990 /* XCTest.framework in Frameworks */,
- AABEB8E1185167E000833990 /* UIKit.framework in Frameworks */,
- AABEB8E0185167E000833990 /* Foundation.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- AABEB8B9185167E000833990 = {
- isa = PBXGroup;
- children = (
- AABEB8F4185167EC00833990 /* rfduino */,
- AABEB8CB185167E000833990 /* rfduinoBulkDataTransfer */,
- AABEB8C4185167E000833990 /* Frameworks */,
- AABEB8C3185167E000833990 /* Products */,
- );
- sourceTree = "";
- };
- AABEB8C3185167E000833990 /* Products */ = {
- isa = PBXGroup;
- children = (
- AABEB8C2185167E000833990 /* rfduinoBulkDataTransfer.app */,
- AABEB8DD185167E000833990 /* rfduinoBulkDataTransferTests.xctest */,
- );
- name = Products;
- sourceTree = "";
- };
- AABEB8C4185167E000833990 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- AABEB8C5185167E000833990 /* Foundation.framework */,
- AABEB8C7185167E000833990 /* CoreGraphics.framework */,
- AABEB8C9185167E000833990 /* UIKit.framework */,
- AABEB8DE185167E000833990 /* XCTest.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- AABEB8CB185167E000833990 /* rfduinoBulkDataTransfer */ = {
- isa = PBXGroup;
- children = (
- AABEB9061851682000833990 /* AppViewController.h */,
- AABEB9071851682000833990 /* AppViewController.m */,
- AABEB8D7185167E000833990 /* Images.xcassets */,
- AABEB8CC185167E000833990 /* Supporting Files */,
- );
- path = rfduinoBulkDataTransfer;
- sourceTree = "";
- };
- AABEB8CC185167E000833990 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- AABEB8CD185167E000833990 /* rfduinoBulkDataTransfer-Info.plist */,
- AABEB8CE185167E000833990 /* InfoPlist.strings */,
- AABEB8D1185167E000833990 /* main.m */,
- AABEB8D3185167E000833990 /* rfduinoBulkDataTransfer-Prefix.pch */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- AABEB8F4185167EC00833990 /* rfduino */ = {
- isa = PBXGroup;
- children = (
- AABEB8F5185167EC00833990 /* AppDelegate.h */,
- AABEB8F6185167EC00833990 /* AppDelegate.m */,
- AABEB8F7185167EC00833990 /* CustomCellBackground.h */,
- AABEB8F8185167EC00833990 /* CustomCellBackground.m */,
- AABEB8F9185167EC00833990 /* RFduino.h */,
- AABEB8FA185167EC00833990 /* RFduino.m */,
- AABEB8FB185167EC00833990 /* RFduinoDelegate.h */,
- AABEB8FC185167EC00833990 /* RfduinoManager.h */,
- AABEB8FD185167EC00833990 /* RfduinoManager.m */,
- AABEB8FE185167EC00833990 /* RFduinoManagerDelegate.h */,
- AABEB8FF185167EC00833990 /* ScanViewController.h */,
- AABEB900185167EC00833990 /* ScanViewController.m */,
- );
- name = rfduino;
- path = ../rfduino;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- AABEB8C1185167E000833990 /* rfduinoBulkDataTransfer */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = AABEB8EE185167E000833990 /* Build configuration list for PBXNativeTarget "rfduinoBulkDataTransfer" */;
- buildPhases = (
- AABEB8BE185167E000833990 /* Sources */,
- AABEB8BF185167E000833990 /* Frameworks */,
- AABEB8C0185167E000833990 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = rfduinoBulkDataTransfer;
- productName = rfduinoBulkDataTransfer;
- productReference = AABEB8C2185167E000833990 /* rfduinoBulkDataTransfer.app */;
- productType = "com.apple.product-type.application";
- };
- AABEB8DC185167E000833990 /* rfduinoBulkDataTransferTests */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = AABEB8F1185167E000833990 /* Build configuration list for PBXNativeTarget "rfduinoBulkDataTransferTests" */;
- buildPhases = (
- AABEB8D9185167E000833990 /* Sources */,
- AABEB8DA185167E000833990 /* Frameworks */,
- AABEB8DB185167E000833990 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- AABEB8E3185167E000833990 /* PBXTargetDependency */,
- );
- name = rfduinoBulkDataTransferTests;
- productName = rfduinoBulkDataTransferTests;
- productReference = AABEB8DD185167E000833990 /* rfduinoBulkDataTransferTests.xctest */;
- productType = "com.apple.product-type.bundle.unit-test";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- AABEB8BA185167E000833990 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0500;
- ORGANIZATIONNAME = RFduino;
- TargetAttributes = {
- AABEB8DC185167E000833990 = {
- TestTargetID = AABEB8C1185167E000833990;
- };
- };
- };
- buildConfigurationList = AABEB8BD185167E000833990 /* Build configuration list for PBXProject "rfduinoBulkDataTransfer" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- );
- mainGroup = AABEB8B9185167E000833990;
- productRefGroup = AABEB8C3185167E000833990 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- AABEB8C1185167E000833990 /* rfduinoBulkDataTransfer */,
- AABEB8DC185167E000833990 /* rfduinoBulkDataTransferTests */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- AABEB8C0185167E000833990 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AABEB8D0185167E000833990 /* InfoPlist.strings in Resources */,
- AABEB8D8185167E000833990 /* Images.xcassets in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- AABEB8DB185167E000833990 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- AABEB8BE185167E000833990 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AABEB902185167EC00833990 /* CustomCellBackground.m in Sources */,
- AABEB904185167EC00833990 /* RfduinoManager.m in Sources */,
- AABEB8D2185167E000833990 /* main.m in Sources */,
- AABEB905185167EC00833990 /* ScanViewController.m in Sources */,
- AABEB901185167EC00833990 /* AppDelegate.m in Sources */,
- AABEB9081851682000833990 /* AppViewController.m in Sources */,
- AABEB903185167EC00833990 /* RFduino.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
- AABEB8D9185167E000833990 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXTargetDependency section */
- AABEB8E3185167E000833990 /* PBXTargetDependency */ = {
- isa = PBXTargetDependency;
- target = AABEB8C1185167E000833990 /* rfduinoBulkDataTransfer */;
- targetProxy = AABEB8E2185167E000833990 /* PBXContainerItemProxy */;
- };
-/* End PBXTargetDependency section */
-
-/* Begin PBXVariantGroup section */
- AABEB8CE185167E000833990 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- AABEB8CF185167E000833990 /* en */,
- );
- name = InfoPlist.strings;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- AABEB8EC185167E000833990 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- 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_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 7.0;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Debug;
- };
- AABEB8ED185167E000833990 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_MODULES = YES;
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_BOOL_CONVERSION = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN_ENUM_CONVERSION = YES;
- CLANG_WARN_INT_CONVERSION = YES;
- CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = YES;
- ENABLE_NS_ASSERTIONS = NO;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
- GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
- GCC_WARN_UNDECLARED_SELECTOR = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_FUNCTION = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 7.0;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- AABEB8EF185167E000833990 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Prefix.pch";
- INFOPLIST_FILE = "rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- PRODUCT_NAME = "$(TARGET_NAME)";
- WRAPPER_EXTENSION = app;
- };
- name = Debug;
- };
- AABEB8F0185167E000833990 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Prefix.pch";
- INFOPLIST_FILE = "rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- PRODUCT_NAME = "$(TARGET_NAME)";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
- AABEB8F2185167E000833990 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
- BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/rfduinoBulkDataTransfer.app/rfduinoBulkDataTransfer";
- FRAMEWORK_SEARCH_PATHS = (
- "$(SDKROOT)/Developer/Library/Frameworks",
- "$(inherited)",
- "$(DEVELOPER_FRAMEWORKS_DIR)",
- );
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Prefix.pch";
- GCC_PREPROCESSOR_DEFINITIONS = (
- "DEBUG=1",
- "$(inherited)",
- );
- INFOPLIST_FILE = "rfduinoBulkDataTransferTests/rfduinoBulkDataTransferTests-Info.plist";
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUNDLE_LOADER)";
- WRAPPER_EXTENSION = xctest;
- };
- name = Debug;
- };
- AABEB8F3185167E000833990 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ARCHS = "$(ARCHS_STANDARD_INCLUDING_64_BIT)";
- BUNDLE_LOADER = "$(BUILT_PRODUCTS_DIR)/rfduinoBulkDataTransfer.app/rfduinoBulkDataTransfer";
- FRAMEWORK_SEARCH_PATHS = (
- "$(SDKROOT)/Developer/Library/Frameworks",
- "$(inherited)",
- "$(DEVELOPER_FRAMEWORKS_DIR)",
- );
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Prefix.pch";
- INFOPLIST_FILE = "rfduinoBulkDataTransferTests/rfduinoBulkDataTransferTests-Info.plist";
- PRODUCT_NAME = "$(TARGET_NAME)";
- TEST_HOST = "$(BUNDLE_LOADER)";
- WRAPPER_EXTENSION = xctest;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- AABEB8BD185167E000833990 /* Build configuration list for PBXProject "rfduinoBulkDataTransfer" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AABEB8EC185167E000833990 /* Debug */,
- AABEB8ED185167E000833990 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- AABEB8EE185167E000833990 /* Build configuration list for PBXNativeTarget "rfduinoBulkDataTransfer" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AABEB8EF185167E000833990 /* Debug */,
- AABEB8F0185167E000833990 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- };
- AABEB8F1185167E000833990 /* Build configuration list for PBXNativeTarget "rfduinoBulkDataTransferTests" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AABEB8F2185167E000833990 /* Debug */,
- AABEB8F3185167E000833990 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- };
-/* End XCConfigurationList section */
- };
- rootObject = AABEB8BA185167E000833990 /* Project object */;
-}
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100755
index 076b6fe..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/project.xcworkspace/xcuserdata/steve.xcuserdatad/UserInterfaceState.xcuserstate b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/project.xcworkspace/xcuserdata/steve.xcuserdatad/UserInterfaceState.xcuserstate
deleted file mode 100755
index 3c6d210..0000000
Binary files a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/project.xcworkspace/xcuserdata/steve.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/rfduinoBulkDataTransfer.xcscheme b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/rfduinoBulkDataTransfer.xcscheme
deleted file mode 100755
index a7efb8a..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/rfduinoBulkDataTransfer.xcscheme
+++ /dev/null
@@ -1,96 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/xcschememanagement.plist b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/xcschememanagement.plist
deleted file mode 100755
index 3c1b9fa..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/xcschememanagement.plist
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
-
-
- SchemeUserState
-
- rfduinoBulkDataTransfer.xcscheme
-
- orderHint
- 0
-
-
- SuppressBuildableAutocreation
-
- AABEB8C1185167E000833990
-
- primary
-
-
- AABEB8DC185167E000833990
-
- primary
-
-
-
-
-
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/AppViewController.m b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/AppViewController.m
deleted file mode 100755
index 3138677..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/AppViewController.m
+++ /dev/null
@@ -1,164 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-/*
-This is the matching iPhone for the bulk data transfer sketch. This
-application has been included for completeness, and to demonstrate
-how you could verify that no data was dropped. Its really for
-educational use only - it's output is to the debug window, and it
-doesn't have a UI.
-
-If you would like to test bulk data transfer with one of the existing
-apps, you can use the ColorWheel application. Open the sketch in
-Arduino, compile and open the Serial Monitor. Open the ColorWheel
-application and connect to the sketch. Once connected, the sketch
-will start transferring the data (The ColorWheel application receives
-the data, but ignores it). After the transfer is complete, the
-Serial Monitor will display the start time, end time, elapsed time,
-and kbps.
-*/
-
-#import
-
-#import "AppViewController.h"
-
-@implementation AppViewController
-{
- int packets;
- char ch;
- int packet;
- double start;
-}
-
-@synthesize rfduino;
-
-- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
-{
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- if (self) {
- // Custom initialization
- UIButton *backButton = [UIButton buttonWithType:101]; // left-pointing shape
- [backButton setTitle:@"Disconnect" forState:UIControlStateNormal];
- [backButton addTarget:self action:@selector(disconnect:) forControlEvents:UIControlEventTouchUpInside];
-
- UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
- [[self navigationItem] setLeftBarButtonItem:backItem];
-
- [[self navigationItem] setTitle:@"RFduino Bulk"];
- }
- return self;
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
- // Do any additional setup after loading the view from its nib.
-
- [rfduino setDelegate:self];
-
- UIColor *start = [UIColor colorWithRed:58/255.0 green:108/255.0 blue:183/255.0 alpha:0.15];
- UIColor *stop = [UIColor colorWithRed:58/255.0 green:108/255.0 blue:183/255.0 alpha:0.45];
-
- CAGradientLayer *gradient = [CAGradientLayer layer];
- gradient.frame = [self.view bounds];
- gradient.colors = [NSArray arrayWithObjects:(id)start.CGColor, (id)stop.CGColor, nil];
- [self.view.layer insertSublayer:gradient atIndex:0];
-
- packets = 500;
- ch = 'A';
- packet = 0;
-}
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-}
-
-- (IBAction)disconnect:(id)sender
-{
- NSLog(@"disconnect pressed");
-
- [rfduino disconnect];
-}
-
-- (void)didReceive:(NSData *)data
-{
- // NSLog(@"RecievedRX");
-
- /*
- uint8_t *p = (uint8_t*)[data bytes];
- NSUInteger len = [data length];
-
- // NSString *s = [[NSString alloc] initWithData:data encoding:NSASCIIStringEncoding];
- // NSLog(@"%d=%@", len, s);
- NSMutableString *s = [[NSMutableString alloc] init];
-
- [s appendFormat:@"%d - ", len];
-
- for (int i = 0; i < len; i++)
- if (isprint(p[i]))
- [s appendFormat:@"%c", p[i]];
- else
- [s appendFormat:@"{%02x}", p[i]];
-
- NSLog(@"%@", s);
- */
-
- if (packet == 0)
- {
- NSLog(@"start");
- start = CACurrentMediaTime();
- }
-
- uint8_t *p = (uint8_t*)[data bytes];
- NSUInteger len = [data length];
-
- if (len != 20)
- NSLog(@"len issue");
- for (int i = 0; i < 20; i++)
- {
- if (p[i] != ch)
- NSLog(@"ch issue");
- ch++;
- if (ch > 'Z')
- ch = 'A';
- }
- packet++;
- if (packet >= packets)
- {
- NSLog(@"end");
- double end = CACurrentMediaTime();
- float secs = (end - start);
- int bps = ((packets * 20) * 8) / secs;
- NSLog(@"start: %f", start);
- NSLog(@"end: %f", end);
- NSLog(@"elapsed: %f", secs);
- NSLog(@"kbps: %f", bps / 1000.0);
- }
-}
-
-@end
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/Images.xcassets/AppIcon.appiconset/Contents.json b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/Images.xcassets/AppIcon.appiconset/Contents.json
deleted file mode 100755
index 91bf9c1..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/Images.xcassets/AppIcon.appiconset/Contents.json
+++ /dev/null
@@ -1,53 +0,0 @@
-{
- "images" : [
- {
- "idiom" : "iphone",
- "size" : "29x29",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "40x40",
- "scale" : "2x"
- },
- {
- "idiom" : "iphone",
- "size" : "60x60",
- "scale" : "2x"
- },
- {
- "idiom" : "ipad",
- "size" : "29x29",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "29x29",
- "scale" : "2x"
- },
- {
- "idiom" : "ipad",
- "size" : "40x40",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "40x40",
- "scale" : "2x"
- },
- {
- "idiom" : "ipad",
- "size" : "76x76",
- "scale" : "1x"
- },
- {
- "idiom" : "ipad",
- "size" : "76x76",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/Images.xcassets/LaunchImage.launchimage/Contents.json b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/Images.xcassets/LaunchImage.launchimage/Contents.json
deleted file mode 100755
index 6f870a4..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/Images.xcassets/LaunchImage.launchimage/Contents.json
+++ /dev/null
@@ -1,51 +0,0 @@
-{
- "images" : [
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "iphone",
- "subtype" : "retina4",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "ipad",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "1x"
- },
- {
- "orientation" : "landscape",
- "idiom" : "ipad",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "1x"
- },
- {
- "orientation" : "portrait",
- "idiom" : "ipad",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- },
- {
- "orientation" : "landscape",
- "idiom" : "ipad",
- "extent" : "full-screen",
- "minimum-system-version" : "7.0",
- "scale" : "2x"
- }
- ],
- "info" : {
- "version" : 1,
- "author" : "xcode"
- }
-}
\ No newline at end of file
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/en.lproj/InfoPlist.strings b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/en.lproj/InfoPlist.strings
deleted file mode 100755
index 477b28f..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Localized versions of Info.plist keys */
-
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/main.m b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/main.m
deleted file mode 100755
index 8cadba0..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/main.m
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// main.m
-// rfduinoBulkDataTransfer
-//
-// Created by Steve on 12/5/13.
-// Copyright (c) 2013 RFduino. All rights reserved.
-//
-
-#import
-
-#import "AppDelegate.h"
-
-int main(int argc, char * argv[])
-{
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Info.plist b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Info.plist
deleted file mode 100755
index 1087eed..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Info.plist
+++ /dev/null
@@ -1,45 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleDisplayName
- ${PRODUCT_NAME}
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIdentifier
- com.RFduino.${PRODUCT_NAME:rfc1034identifier}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${PRODUCT_NAME}
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
- LSRequiresIPhoneOS
-
- UIRequiredDeviceCapabilities
-
- armv7
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
-
-
diff --git a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Prefix.pch b/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Prefix.pch
deleted file mode 100755
index 743435c..0000000
--- a/iPhone Apps/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer/rfduinoBulkDataTransfer-Prefix.pch
+++ /dev/null
@@ -1,16 +0,0 @@
-//
-// Prefix header
-//
-// The contents of this file are implicitly included at the beginning of every source file.
-//
-
-#import
-
-#ifndef __IPHONE_3_0
-#warning "This project uses features only available in iOS SDK 3.0 and later."
-#endif
-
-#ifdef __OBJC__
- #import
- #import
-#endif
diff --git a/iPhone Apps/rfduinoColorWheel/icon-144.png b/iPhone Apps/rfduinoColorWheel/icon-144.png
deleted file mode 100755
index 1b20be2..0000000
Binary files a/iPhone Apps/rfduinoColorWheel/icon-144.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoColorWheel/icon-72.png b/iPhone Apps/rfduinoColorWheel/icon-72.png
deleted file mode 100755
index ae9bae9..0000000
Binary files a/iPhone Apps/rfduinoColorWheel/icon-72.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoColorWheel/icon.png b/iPhone Apps/rfduinoColorWheel/icon.png
deleted file mode 100755
index c8a9146..0000000
Binary files a/iPhone Apps/rfduinoColorWheel/icon.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoColorWheel/icon@2x.png b/iPhone Apps/rfduinoColorWheel/icon@2x.png
deleted file mode 100755
index 82a0b27..0000000
Binary files a/iPhone Apps/rfduinoColorWheel/icon@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel.xcodeproj/project.pbxproj b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel.xcodeproj/project.pbxproj
deleted file mode 100755
index 2152c44..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,367 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- AA07EB7D176BF80500AB755D /* CustomCellBackground.m in Sources */ = {isa = PBXBuildFile; fileRef = AA07EB7C176BF80500AB755D /* CustomCellBackground.m */; };
- AA9B326417B19E7700623C09 /* UIImage+Extras.m in Sources */ = {isa = PBXBuildFile; fileRef = AA9B326317B19E7700623C09 /* UIImage+Extras.m */; };
- AA9B326717B2930C00623C09 /* icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = AA9B326517B2930C00623C09 /* icon-72.png */; };
- AA9B326817B2930C00623C09 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = AA9B326617B2930C00623C09 /* icon.png */; };
- AA9B326A17B2945300623C09 /* icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = AA9B326917B2945300623C09 /* icon-144.png */; };
- AAC4277816C9D86000149784 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC4277716C9D86000149784 /* UIKit.framework */; };
- AAC4277A16C9D86000149784 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC4277916C9D86000149784 /* Foundation.framework */; };
- AAC4277C16C9D86000149784 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC4277B16C9D86000149784 /* CoreGraphics.framework */; };
- AAC4278216C9D86000149784 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AAC4278016C9D86000149784 /* InfoPlist.strings */; };
- AAC4278416C9D86000149784 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC4278316C9D86000149784 /* main.m */; };
- AAC4278A16C9D86000149784 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = AAC4278916C9D86000149784 /* Default.png */; };
- AAC4278C16C9D86000149784 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AAC4278B16C9D86000149784 /* Default@2x.png */; };
- AAC4278E16C9D86000149784 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AAC4278D16C9D86000149784 /* Default-568h@2x.png */; };
- AAC4279F16C9D86C00149784 /* RFduino.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC4279716C9D86C00149784 /* RFduino.m */; };
- AAC427A016C9D86C00149784 /* RfduinoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC4279A16C9D86C00149784 /* RfduinoManager.m */; };
- AAC427A116C9D86C00149784 /* ScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC4279D16C9D86C00149784 /* ScanViewController.m */; };
- AAC427AC16C9D8EB00149784 /* AppViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC427A716C9D8EB00149784 /* AppViewController.m */; };
- AAC427AD16C9D8EB00149784 /* AppViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = AAC427A816C9D8EB00149784 /* AppViewController.xib */; };
- AAC427AF16C9D8EB00149784 /* colorWheel1.png in Resources */ = {isa = PBXBuildFile; fileRef = AAC427AB16C9D8EB00149784 /* colorWheel1.png */; };
- AAC427B116C9DC3E00149784 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC427B016C9DC3E00149784 /* CoreBluetooth.framework */; };
- AAC428C316C9FE3600149784 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC428C216C9FE3600149784 /* AppDelegate.m */; };
- AAE5C88416CDCBA1001005E3 /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AAE5C88316CDCBA1001005E3 /* icon@2x.png */; };
- AAEE69D316D3F572005A5AEA /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAEE69D216D3F572005A5AEA /* QuartzCore.framework */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
- AA07EB7B176BF80500AB755D /* CustomCellBackground.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomCellBackground.h; sourceTree = ""; };
- AA07EB7C176BF80500AB755D /* CustomCellBackground.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomCellBackground.m; sourceTree = ""; };
- AA9B326217B19E7700623C09 /* UIImage+Extras.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIImage+Extras.h"; sourceTree = ""; };
- AA9B326317B19E7700623C09 /* UIImage+Extras.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIImage+Extras.m"; sourceTree = ""; };
- AA9B326517B2930C00623C09 /* icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-72.png"; sourceTree = ""; };
- AA9B326617B2930C00623C09 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = ""; };
- AA9B326917B2945300623C09 /* icon-144.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-144.png"; sourceTree = ""; };
- AAC4277316C9D86000149784 /* rfduinoColorWheel.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = rfduinoColorWheel.app; sourceTree = BUILT_PRODUCTS_DIR; };
- AAC4277716C9D86000149784 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- AAC4277916C9D86000149784 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- AAC4277B16C9D86000149784 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- AAC4277F16C9D86000149784 /* rfduinoColorWheel-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "rfduinoColorWheel-Info.plist"; sourceTree = ""; };
- AAC4278116C9D86000149784 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
- AAC4278316C9D86000149784 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- AAC4278516C9D86000149784 /* rfduinoColorWheel-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "rfduinoColorWheel-Prefix.pch"; sourceTree = ""; };
- AAC4278916C9D86000149784 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; };
- AAC4278B16C9D86000149784 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; };
- AAC4278D16C9D86000149784 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; };
- AAC4279616C9D86C00149784 /* RFduino.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduino.h; sourceTree = ""; };
- AAC4279716C9D86C00149784 /* RFduino.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RFduino.m; sourceTree = ""; };
- AAC4279816C9D86C00149784 /* RFduinoDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduinoDelegate.h; sourceTree = ""; };
- AAC4279916C9D86C00149784 /* RfduinoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RfduinoManager.h; sourceTree = ""; };
- AAC4279A16C9D86C00149784 /* RfduinoManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RfduinoManager.m; sourceTree = ""; };
- AAC4279B16C9D86C00149784 /* RFduinoManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduinoManagerDelegate.h; sourceTree = ""; };
- AAC4279C16C9D86C00149784 /* ScanViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanViewController.h; sourceTree = ""; };
- AAC4279D16C9D86C00149784 /* ScanViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScanViewController.m; sourceTree = ""; };
- AAC427A616C9D8EB00149784 /* AppViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppViewController.h; sourceTree = ""; };
- AAC427A716C9D8EB00149784 /* AppViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppViewController.m; sourceTree = ""; };
- AAC427A816C9D8EB00149784 /* AppViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AppViewController.xib; sourceTree = ""; };
- AAC427AB16C9D8EB00149784 /* colorWheel1.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = colorWheel1.png; sourceTree = ""; };
- AAC427B016C9DC3E00149784 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; };
- AAC428C116C9FE3600149784 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
- AAC428C216C9FE3600149784 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
- AAE5C88316CDCBA1001005E3 /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon@2x.png"; sourceTree = ""; };
- AAEE69D216D3F572005A5AEA /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- AAC4277016C9D86000149784 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AAEE69D316D3F572005A5AEA /* QuartzCore.framework in Frameworks */,
- AAC427B116C9DC3E00149784 /* CoreBluetooth.framework in Frameworks */,
- AAC4277816C9D86000149784 /* UIKit.framework in Frameworks */,
- AAC4277A16C9D86000149784 /* Foundation.framework in Frameworks */,
- AAC4277C16C9D86000149784 /* CoreGraphics.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- AAC4276816C9D86000149784 = {
- isa = PBXGroup;
- children = (
- AA9B326917B2945300623C09 /* icon-144.png */,
- AA9B326517B2930C00623C09 /* icon-72.png */,
- AA9B326617B2930C00623C09 /* icon.png */,
- AAE5C88316CDCBA1001005E3 /* icon@2x.png */,
- AAC4279416C9D86C00149784 /* rfduino */,
- AAC4277D16C9D86000149784 /* rfduinoColorWheel */,
- AAC4277616C9D86000149784 /* Frameworks */,
- AAC4277416C9D86000149784 /* Products */,
- );
- sourceTree = "";
- };
- AAC4277416C9D86000149784 /* Products */ = {
- isa = PBXGroup;
- children = (
- AAC4277316C9D86000149784 /* rfduinoColorWheel.app */,
- );
- name = Products;
- sourceTree = "";
- };
- AAC4277616C9D86000149784 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- AAEE69D216D3F572005A5AEA /* QuartzCore.framework */,
- AAC427B016C9DC3E00149784 /* CoreBluetooth.framework */,
- AAC4277716C9D86000149784 /* UIKit.framework */,
- AAC4277916C9D86000149784 /* Foundation.framework */,
- AAC4277B16C9D86000149784 /* CoreGraphics.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- AAC4277D16C9D86000149784 /* rfduinoColorWheel */ = {
- isa = PBXGroup;
- children = (
- AAC427A616C9D8EB00149784 /* AppViewController.h */,
- AAC427A716C9D8EB00149784 /* AppViewController.m */,
- AAC427A816C9D8EB00149784 /* AppViewController.xib */,
- AA9B326217B19E7700623C09 /* UIImage+Extras.h */,
- AA9B326317B19E7700623C09 /* UIImage+Extras.m */,
- AAC427AB16C9D8EB00149784 /* colorWheel1.png */,
- AAC4277E16C9D86000149784 /* Supporting Files */,
- );
- path = rfduinoColorWheel;
- sourceTree = "";
- };
- AAC4277E16C9D86000149784 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- AAC4277F16C9D86000149784 /* rfduinoColorWheel-Info.plist */,
- AAC4278016C9D86000149784 /* InfoPlist.strings */,
- AAC4278316C9D86000149784 /* main.m */,
- AAC4278516C9D86000149784 /* rfduinoColorWheel-Prefix.pch */,
- AAC4278916C9D86000149784 /* Default.png */,
- AAC4278B16C9D86000149784 /* Default@2x.png */,
- AAC4278D16C9D86000149784 /* Default-568h@2x.png */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- AAC4279416C9D86C00149784 /* rfduino */ = {
- isa = PBXGroup;
- children = (
- AAC428C116C9FE3600149784 /* AppDelegate.h */,
- AAC428C216C9FE3600149784 /* AppDelegate.m */,
- AAC4279616C9D86C00149784 /* RFduino.h */,
- AAC4279716C9D86C00149784 /* RFduino.m */,
- AAC4279816C9D86C00149784 /* RFduinoDelegate.h */,
- AAC4279916C9D86C00149784 /* RfduinoManager.h */,
- AAC4279A16C9D86C00149784 /* RfduinoManager.m */,
- AAC4279B16C9D86C00149784 /* RFduinoManagerDelegate.h */,
- AAC4279C16C9D86C00149784 /* ScanViewController.h */,
- AAC4279D16C9D86C00149784 /* ScanViewController.m */,
- AA07EB7B176BF80500AB755D /* CustomCellBackground.h */,
- AA07EB7C176BF80500AB755D /* CustomCellBackground.m */,
- );
- name = rfduino;
- path = ../rfduino;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- AAC4277216C9D86000149784 /* rfduinoColorWheel */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = AAC4279116C9D86000149784 /* Build configuration list for PBXNativeTarget "rfduinoColorWheel" */;
- buildPhases = (
- AAC4276F16C9D86000149784 /* Sources */,
- AAC4277016C9D86000149784 /* Frameworks */,
- AAC4277116C9D86000149784 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = rfduinoColorWheel;
- productName = rfduinoColorWheel;
- productReference = AAC4277316C9D86000149784 /* rfduinoColorWheel.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- AAC4276A16C9D86000149784 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0450;
- ORGANIZATIONNAME = OpenSourceRF;
- };
- buildConfigurationList = AAC4276D16C9D86000149784 /* Build configuration list for PBXProject "rfduinoColorWheel" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- );
- mainGroup = AAC4276816C9D86000149784;
- productRefGroup = AAC4277416C9D86000149784 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- AAC4277216C9D86000149784 /* rfduinoColorWheel */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- AAC4277116C9D86000149784 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AAC4278216C9D86000149784 /* InfoPlist.strings in Resources */,
- AAC4278A16C9D86000149784 /* Default.png in Resources */,
- AAC4278C16C9D86000149784 /* Default@2x.png in Resources */,
- AAC4278E16C9D86000149784 /* Default-568h@2x.png in Resources */,
- AAC427AD16C9D8EB00149784 /* AppViewController.xib in Resources */,
- AAC427AF16C9D8EB00149784 /* colorWheel1.png in Resources */,
- AAE5C88416CDCBA1001005E3 /* icon@2x.png in Resources */,
- AA9B326717B2930C00623C09 /* icon-72.png in Resources */,
- AA9B326817B2930C00623C09 /* icon.png in Resources */,
- AA9B326A17B2945300623C09 /* icon-144.png in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- AAC4276F16C9D86000149784 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AAC4278416C9D86000149784 /* main.m in Sources */,
- AAC4279F16C9D86C00149784 /* RFduino.m in Sources */,
- AAC427A016C9D86C00149784 /* RfduinoManager.m in Sources */,
- AAC427A116C9D86C00149784 /* ScanViewController.m in Sources */,
- AAC427AC16C9D8EB00149784 /* AppViewController.m in Sources */,
- AAC428C316C9FE3600149784 /* AppDelegate.m in Sources */,
- AA07EB7D176BF80500AB755D /* CustomCellBackground.m in Sources */,
- AA9B326417B19E7700623C09 /* UIImage+Extras.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXVariantGroup section */
- AAC4278016C9D86000149784 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- AAC4278116C9D86000149784 /* en */,
- );
- name = InfoPlist.strings;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- AAC4278F16C9D86000149784 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- 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_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- };
- name = Debug;
- };
- AAC4279016C9D86000149784 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
- SDKROOT = iphoneos;
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- AAC4279216C9D86000149784 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoColorWheel/rfduinoColorWheel-Prefix.pch";
- INFOPLIST_FILE = "rfduinoColorWheel/rfduinoColorWheel-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- PRODUCT_NAME = "$(TARGET_NAME)";
- TARGETED_DEVICE_FAMILY = "1,2";
- WRAPPER_EXTENSION = app;
- };
- name = Debug;
- };
- AAC4279316C9D86000149784 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoColorWheel/rfduinoColorWheel-Prefix.pch";
- INFOPLIST_FILE = "rfduinoColorWheel/rfduinoColorWheel-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- PRODUCT_NAME = "$(TARGET_NAME)";
- TARGETED_DEVICE_FAMILY = "1,2";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- AAC4276D16C9D86000149784 /* Build configuration list for PBXProject "rfduinoColorWheel" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AAC4278F16C9D86000149784 /* Debug */,
- AAC4279016C9D86000149784 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- AAC4279116C9D86000149784 /* Build configuration list for PBXNativeTarget "rfduinoColorWheel" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AAC4279216C9D86000149784 /* Debug */,
- AAC4279316C9D86000149784 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = AAC4276A16C9D86000149784 /* Project object */;
-}
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100755
index e08107d..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/AppViewController.h b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/AppViewController.h
deleted file mode 100755
index 48b805a..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/AppViewController.h
+++ /dev/null
@@ -1,66 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-#import "RFduino.h"
-
-@interface AppViewController : UIViewController
-{
- __weak IBOutlet UIImageView *colorWheel;
-
- __weak IBOutlet UIButton *colorSwatch;
-
- __weak IBOutlet UILabel *rLabel;
- __weak IBOutlet UILabel *gLabel;
- __weak IBOutlet UILabel *bLabel;
-
- __weak IBOutlet UISlider *rSlider;
- __weak IBOutlet UISlider *gSlider;
- __weak IBOutlet UISlider *bSlider;
-
- __weak IBOutlet UITextField *rValue;
- __weak IBOutlet UITextField *gValue;
- __weak IBOutlet UITextField *bValue;
-
- float red;
- float green;
- float blue;
-}
-
-@property(strong, nonatomic) RFduino *rfduino;
-
-- (void) pickedColor:(UIColor*)color;
-
-- (IBAction)rSliderChanged:(id)sender;
-- (IBAction)gSliderChanged:(id)sender;
-- (IBAction)bSliderChanged:(id)sender;
-
-- (IBAction)rEditingDidEnd:(id)sender;
-- (IBAction)gEditingDidEnd:(id)sender;
-- (IBAction)bEditingDidEnd:(id)sender;
-
-@end
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/AppViewController.m b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/AppViewController.m
deleted file mode 100755
index dd77555..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/AppViewController.m
+++ /dev/null
@@ -1,312 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#include
-
-#import "AppViewController.h"
-#import "UIImage+Extras.h"
-
-@implementation AppViewController
-
-@synthesize rfduino;
-
-- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
-{
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- if (self) {
- // Custom initialization
- UIButton *backButton = [UIButton buttonWithType:101]; // left-pointing shape
- [backButton setTitle:@"Disconnect" forState:UIControlStateNormal];
- [backButton addTarget:self action:@selector(disconnect:) forControlEvents:UIControlEventTouchUpInside];
-
- UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
- [[self navigationItem] setLeftBarButtonItem:backItem];
-
- [[self navigationItem] setTitle:@"RFduino ColorWheel"];
- }
- return self;
-}
-
-- (void)manualLayout
-{
- CGRect rect = [[UIScreen mainScreen] bounds];
-
- if (UIDeviceOrientationIsLandscape(self.interfaceOrientation)) {
- if (rect.size.height >= 1024) { // iPad
- colorWheel.frame = CGRectMake(20,50,600,600);
-
- colorSwatch.frame = CGRectMake(667,260,330,16);
-
- rLabel.frame = CGRectMake(667,299,21,21);
- gLabel.frame = CGRectMake(667,347,21,21);
- bLabel.frame = CGRectMake(667,395,21,21);
-
- rSlider.frame = CGRectMake(694,300,242,23);
- gSlider.frame = CGRectMake(694,348,242,23);
- bSlider.frame = CGRectMake(694,396,242,23);
-
- rValue.frame = CGRectMake(950,296,45,30);
- gValue.frame = CGRectMake(950,344,45,30);
- bValue.frame = CGRectMake(950,392,45,30);
- } else if (rect.size.height >= 568) { // iPhone 5
- colorWheel.frame = CGRectMake(7,7,250,250);
-
- colorSwatch.frame = CGRectMake(267,60,280,16);
-
- rLabel.frame = CGRectMake(267,89,21,21);
- gLabel.frame = CGRectMake(267,127,21,21);
- bLabel.frame = CGRectMake(267,165,21,21);
-
- rSlider.frame = CGRectMake(294,90,202,23);
- gSlider.frame = CGRectMake(294,128,202,23);
- bSlider.frame = CGRectMake(294,166,202,23);
-
- rValue.frame = CGRectMake(502,86,45,30);
- gValue.frame = CGRectMake(502,124,45,30);
- bValue.frame = CGRectMake(502,162,45,30);
- } else { // iPhone 4S
- colorWheel.frame = CGRectMake(0,7,250,250);
-
- colorSwatch.frame = CGRectMake(260,60,213,16);
-
- rLabel.frame = CGRectMake(260,89,21,21);
- gLabel.frame = CGRectMake(260,127,21,21);
- bLabel.frame = CGRectMake(260,165,21,21);
-
- rSlider.frame = CGRectMake(287,90,135,23);
- gSlider.frame = CGRectMake(287,128,135,23);
- bSlider.frame = CGRectMake(287,166,135,23);
-
- rValue.frame = CGRectMake(428,86,45,30);
- gValue.frame = CGRectMake(428,124,45,30);
- bValue.frame = CGRectMake(428,162,45,30);
- }
- } else { // UIDeviceOrientationIsPortrait(self.interfaceOrientation)
- if (rect.size.height >= 1024) { // iPad
- colorWheel.frame = CGRectMake(80,50,600,600);
-
- colorSwatch.frame = CGRectMake(40,704,685,16);
-
- rLabel.frame = CGRectMake(40,740,21,21);
- gLabel.frame = CGRectMake(40,788,21,21);
- bLabel.frame = CGRectMake(40,836,21,21);
-
- rSlider.frame = CGRectMake(67,741,602,23);
- gSlider.frame = CGRectMake(67,789,602,23);
- bSlider.frame = CGRectMake(67,837,602,23);
-
- rValue.frame = CGRectMake(680,737,45,30);
- gValue.frame = CGRectMake(680,785,45,30);
- bValue.frame = CGRectMake(680,833,45,30);
- } else if (rect.size.height >= 568) { // iPhone 5
- colorWheel.frame = CGRectMake(35,20,250,250);
-
- colorSwatch.frame = CGRectMake(20,304,280,16);
-
- rLabel.frame = CGRectMake(20,330,21,21);
- gLabel.frame = CGRectMake(20,368,21,21);
- bLabel.frame = CGRectMake(20,406,21,21);
-
- rSlider.frame = CGRectMake(47,331,202,23);
- gSlider.frame = CGRectMake(47,369,202,23);
- bSlider.frame = CGRectMake(47,407,202,23);
-
- rValue.frame = CGRectMake(255,327,45,30);
- gValue.frame = CGRectMake(255,365,45,30);
- bValue.frame = CGRectMake(255,403,45,30);
- } else { // iPhone 4S
- colorWheel.frame = CGRectMake(35,13,250,250);
-
- colorSwatch.frame = CGRectMake(20,274,280,16);
-
- rLabel.frame = CGRectMake(20,300,21,21);
- gLabel.frame = CGRectMake(20,338,21,21);
- bLabel.frame = CGRectMake(20,376,21,21);
-
- rSlider.frame = CGRectMake(47,301,202,23);
- gSlider.frame = CGRectMake(47,339,202,23);
- bSlider.frame = CGRectMake(47,377,202,23);
-
- rValue.frame = CGRectMake(255,297,45,30);
- gValue.frame = CGRectMake(255,335,45,30);
- bValue.frame = CGRectMake(255,373,45,30);
- }
- }
-
- if (colorWheel.frame.size.width != colorWheel.image.size.width) {
- UIImage *image1 = [UIImage imageNamed:@"colorWheel1.png"];
- UIImage *image2 = [image1 imageByScalingProportionallyToSize:colorWheel.frame.size];
- [colorWheel setImage:image2];
- }
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
-
- // Do any additional setup after loading the view from its nib.
-
- [rfduino setDelegate:self];
-
- // delegate needed so UITextField textFieldShouldReturn can dismiss the keyboard when the return key is pressed
- rValue.delegate = self;
- gValue.delegate = self;
- bValue.delegate = self;
-
- UIColor *start = [UIColor colorWithRed:102/255.0 green:102/255.0 blue:102/255.0 alpha:1.0];
- UIColor *stop = [UIColor colorWithRed:0.0 green:0.0 blue:0.0 alpha:1.0];
-
- CAGradientLayer *gradient = [CAGradientLayer layer];
- //gradient.frame = [self.view bounds];
- gradient.frame = CGRectMake(0, 0, 1024, 1024);
- gradient.colors = [NSArray arrayWithObjects:(id)start.CGColor, (id)stop.CGColor, nil];
- [self.view.layer insertSublayer:gradient atIndex:0];
-
- // self.view.backgroundColor=[UIColor colorWithPatternImage:[UIImage imageNamed:@"background.png"]];
-
- [self manualLayout];
-}
-
-- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
-{
- [self manualLayout];
-}
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-}
-
-- (IBAction)disconnect:(id)sender
-{
- NSLog(@"disconnect pressed");
-
- [rfduino disconnect];
-}
-
-- (void)touchesEnded:(NSSet*)touches withEvent:(UIEvent*)event
-{
- UITouch* touch = [touches anyObject];
- CGPoint point = [touch locationInView:colorWheel];
- if (CGRectContainsPoint(colorWheel.frame, point)) {
- UIColor *color = [colorWheel.image pixelColorAt:point];
- [self pickedColor:color];
- }
-}
-
-- (void)setColor
-{
- NSLog(@"colors: RGB %f %f %f", red, green, blue);
-
- UIColor *color = [UIColor colorWithRed:red green:green blue:blue alpha:1.0];
-
- [colorSwatch setHighlighted:YES];
- [colorSwatch setTintColor:color];
-
- uint8_t tx[3] = { red * 255, green * 255, blue * 255 };
- NSData *data = [NSData dataWithBytes:(void*)&tx length:3];
-
- [rfduino send:data];
-}
-
-- (void)pickedColor:(UIColor*)color
-{
- NSLog(@"Picked Color");
-
- const CGFloat *components = CGColorGetComponents([color CGColor]);
-
- red = components[0];
- green = components[1];
- blue = components[2];
-
- rSlider.value = red;
- gSlider.value = green;
- bSlider.value = blue;
-
- rValue.text = [[NSString alloc] initWithFormat:@"%d", (int)(red * 255)];
- gValue.text = [[NSString alloc] initWithFormat:@"%d", (int)(green * 255)];
- bValue.text = [[NSString alloc] initWithFormat:@"%d", (int)(blue * 255)];
-
- [self setColor];
-}
-
-- (IBAction)rSliderChanged:(id)sender
-{
- NSLog(@"rSliderChanged");
- red = [rSlider value];
- rValue.text = [[NSString alloc] initWithFormat:@"%d", (int)(red * 255)];
- [self setColor];
-}
-
-- (IBAction)gSliderChanged:(id)sender
-{
- NSLog(@"gSliderChanged");
- green = [gSlider value];
- gValue.text = [[NSString alloc] initWithFormat:@"%d", (int)(green * 255)];
- [self setColor];
-}
-
-- (IBAction)bSliderChanged:(id)sender
-{
- NSLog(@"bSliderChanged");
- blue = [bSlider value];
- bValue.text = [[NSString alloc] initWithFormat:@"%d", (int)(blue * 255)];
- [self setColor];
-}
-
-- (IBAction)rEditingDidEnd:(id)sender
-{
- NSLog(@"rEditingDidEnd");
- red = rValue.text.intValue / 255.0;
- rSlider.value = red;
- [self setColor];
-}
-
-- (IBAction)gEditingDidEnd:(id)sender
-{
- NSLog(@"gEditingDidEnd");
- green = gValue.text.intValue / 255.0;
- gSlider.value = green;
- [self setColor];
-}
-
-- (IBAction)bEditingDidEnd:(id)sender
-{
- NSLog(@"bEditingDidEnd");
- blue = bValue.text.intValue / 255.0;
- bSlider.value = blue;
- [self setColor];
-}
-
-- (BOOL)textFieldShouldReturn:(UITextField *)textField
-{
- NSLog(@"textFieldShouldReturn");
- [textField resignFirstResponder];
- return YES;
-}
-
-@end
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/AppViewController.xib b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/AppViewController.xib
deleted file mode 100755
index 48cda74..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/AppViewController.xib
+++ /dev/null
@@ -1,717 +0,0 @@
-
-
-
- 1552
- 12E55
- 3084
- 1187.39
- 626.00
-
-
- IBProxyObject
- IBUIButton
- IBUIImageView
- IBUILabel
- IBUISlider
- IBUITextField
- IBUIView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
-
-
-
-
-
-
- view
-
-
-
- 3
-
-
-
- colorWheel
-
-
-
- 51
-
-
-
- colorSwatch
-
-
-
- 52
-
-
-
- rSlider
-
-
-
- 212
-
-
-
- gSlider
-
-
-
- 213
-
-
-
- bSlider
-
-
-
- 214
-
-
-
- rValue
-
-
-
- 215
-
-
-
- gValue
-
-
-
- 216
-
-
-
- bValue
-
-
-
- 217
-
-
-
- rLabel
-
-
-
- 251
-
-
-
- gLabel
-
-
-
- 252
-
-
-
- bLabel
-
-
-
- 253
-
-
-
- rSliderChanged:
-
-
- 7
-
- 250
-
-
-
- gSliderChanged:
-
-
- 7
-
- 249
-
-
-
- bSliderChanged:
-
-
- 7
-
- 248
-
-
-
- rEditingDidEnd:
-
-
- 19
-
- 229
-
-
-
- gEditingDidEnd:
-
-
- 19
-
- 230
-
-
-
- bEditingDidEnd:
-
-
- 19
-
- 231
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 41
-
-
-
-
-
- 42
-
-
-
-
-
- 65
-
-
-
-
-
- 69
-
-
-
-
-
- 73
-
-
-
-
-
- 95
-
-
-
-
-
- 120
-
-
-
-
-
- 130
-
-
-
-
-
- 142
-
-
-
-
-
- 149
-
-
-
-
-
- 157
-
-
-
-
-
-
-
- AppViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 264
-
-
-
-
- AppViewController
- UIViewController
-
- id
- id
- id
- id
- id
- id
- id
-
-
-
- bEditingDidEnd:
- id
-
-
- bSliderChanged:
- id
-
-
- disconnect:
- id
-
-
- gEditingDidEnd:
- id
-
-
- gSliderChanged:
- id
-
-
- rEditingDidEnd:
- id
-
-
- rSliderChanged:
- id
-
-
-
- UILabel
- UISlider
- UITextField
- UIButton
- UIImageView
- UILabel
- UISlider
- UITextField
- UILabel
- UISlider
- UITextField
-
-
-
- bLabel
- UILabel
-
-
- bSlider
- UISlider
-
-
- bValue
- UITextField
-
-
- colorSwatch
- UIButton
-
-
- colorWheel
- UIImageView
-
-
- gLabel
- UILabel
-
-
- gSlider
- UISlider
-
-
- gValue
- UITextField
-
-
- rLabel
- UILabel
-
-
- rSlider
- UISlider
-
-
- rValue
- UITextField
-
-
-
- IBProjectSource
- ./Classes/AppViewController.h
-
-
-
-
- 0
- IBCocoaTouchFramework
- YES
- 3
- 2083
-
-
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/Default-568h@2x.png b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/Default-568h@2x.png
deleted file mode 100755
index 0891b7a..0000000
Binary files a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/Default-568h@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/Default.png b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/Default.png
deleted file mode 100755
index 4c8ca6f..0000000
Binary files a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/Default.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/Default@2x.png b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/Default@2x.png
deleted file mode 100755
index 35b84cf..0000000
Binary files a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/Default@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/UIImage+Extras.h b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/UIImage+Extras.h
deleted file mode 100755
index 93add82..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/UIImage+Extras.h
+++ /dev/null
@@ -1,16 +0,0 @@
-//
-// UIImage+Extras.h
-// BitmapResearch2
-//
-// Created by Steve on 8/6/13.
-// Copyright (c) 2013 Steve. All rights reserved.
-//
-
-#import
-
-@interface UIImage (Extras)
-
-- (UIImage *)imageByScalingProportionallyToSize:(CGSize)targetSize;
-- (UIColor *)pixelColorAt:(CGPoint)point;
-
-@end
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/UIImage+Extras.m b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/UIImage+Extras.m
deleted file mode 100755
index 6ed2a0c..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/UIImage+Extras.m
+++ /dev/null
@@ -1,107 +0,0 @@
-//
-// UIImage+Extras.m
-// BitmapResearch2
-//
-// Created by Steve on 8/6/13.
-// Copyright (c) 2013 Steve. All rights reserved.
-//
-
-#import "UIImage+Extras.h"
-
-@implementation UIImage (Extras)
-
-// http://stackoverflow.com/questions/185652/how-to-scale-a-uiimageview-proportionally
-- (UIImage *)imageByScalingProportionallyToSize:(CGSize)targetSize
-{
- UIImage *sourceImage = self;
- UIImage *newImage = nil;
-
- CGSize imageSize = sourceImage.size;
- CGFloat width = imageSize.width;
- CGFloat height = imageSize.height;
-
- CGFloat targetWidth = targetSize.width;
- CGFloat targetHeight = targetSize.height;
-
- CGFloat scaleFactor = 0.0;
- CGFloat scaledWidth = targetWidth;
- CGFloat scaledHeight = targetHeight;
-
- CGPoint thumbnailPoint = CGPointMake(0.0,0.0);
-
- if (CGSizeEqualToSize(imageSize, targetSize) == NO) {
-
- CGFloat widthFactor = targetWidth / width;
- CGFloat heightFactor = targetHeight / height;
-
- if (widthFactor < heightFactor)
- scaleFactor = widthFactor;
- else
- scaleFactor = heightFactor;
-
- scaledWidth = width * scaleFactor;
- scaledHeight = height * scaleFactor;
-
- // center the image
-
- if (widthFactor < heightFactor) {
- thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5;
- } else if (widthFactor > heightFactor) {
- thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5;
- }
- }
-
-
- // this is actually the interesting part:
-
- UIGraphicsBeginImageContext(targetSize);
-
- CGRect thumbnailRect = CGRectZero;
- thumbnailRect.origin = thumbnailPoint;
- thumbnailRect.size.width = scaledWidth;
- thumbnailRect.size.height = scaledHeight;
-
- [sourceImage drawInRect:thumbnailRect];
-
- newImage = UIGraphicsGetImageFromCurrentImageContext();
- UIGraphicsEndImageContext();
-
- if(newImage == nil) NSLog(@"could not scale image");
-
- return newImage ;
-}
-
-// http://stackoverflow.com/questions/448125/how-to-get-pixel-data-from-a-uiimage-cocoa-touch-or-cgimage-core-graphics
-- (UIColor *)pixelColorAt:(CGPoint)point
-{
- // First get the image into your data buffer
- CGImageRef imageRef = [self CGImage];
- NSUInteger width = CGImageGetWidth(imageRef);
- NSUInteger height = CGImageGetHeight(imageRef);
- CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
- unsigned char *rawData = (unsigned char*) calloc(height * width * 4, sizeof(unsigned char));
- NSUInteger bytesPerPixel = 4;
- NSUInteger bytesPerRow = bytesPerPixel * width;
- NSUInteger bitsPerComponent = 8;
- CGContextRef context = CGBitmapContextCreate(rawData, width, height,
- bitsPerComponent, bytesPerRow, colorSpace,
- kCGImageAlphaPremultipliedLast | kCGBitmapByteOrder32Big);
- CGColorSpaceRelease(colorSpace);
-
- CGContextDrawImage(context, CGRectMake(0, 0, width, height), imageRef);
- CGContextRelease(context);
-
- // rawData in the RGBA8888 pixel format.
- int byteIndex = (bytesPerRow * (int)point.y) + (int)point.x * bytesPerPixel;
-
- unsigned char red = rawData[byteIndex];
- unsigned char green = rawData[byteIndex + 1];
- unsigned char blue = rawData[byteIndex + 2];
- unsigned char alpha = rawData[byteIndex + 3];
-
- free(rawData);
-
- return [UIColor colorWithRed:red/255.0f green:green/255.0f blue:blue/255.0f alpha:alpha/255.0f];
-}
-
-@end
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/colorWheel1.png b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/colorWheel1.png
deleted file mode 100755
index 07a14c1..0000000
Binary files a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/colorWheel1.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/en.lproj/InfoPlist.strings b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/en.lproj/InfoPlist.strings
deleted file mode 100755
index 477b28f..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Localized versions of Info.plist keys */
-
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/main.m b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/main.m
deleted file mode 100755
index 2736a11..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/main.m
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// main.m
-// rfduinoColorWheel
-//
-// Created by Steve on 2/11/13.
-// Copyright (c) 2013 RF Digital. All rights reserved.
-//
-
-#import
-
-#import "AppDelegate.h"
-
-int main(int argc, char *argv[])
-{
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/rfduinoColorWheel-Info.plist b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/rfduinoColorWheel-Info.plist
deleted file mode 100755
index b8d95ff..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/rfduinoColorWheel-Info.plist
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleDisplayName
- RFduino ColorWheel
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIcons
-
- CFBundlePrimaryIcon
-
- CFBundleIconFiles
-
- icon@2x.png
- icon-72.png
- icon.png
- icon-144.png
-
-
-
- CFBundleIdentifier
- com.OpenSourceRF.${PRODUCT_NAME:rfc1034identifier}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${PRODUCT_NAME}
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
- LSRequiresIPhoneOS
-
- UIRequiredDeviceCapabilities
-
- armv7
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
-
-
diff --git a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/rfduinoColorWheel-Prefix.pch b/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/rfduinoColorWheel-Prefix.pch
deleted file mode 100755
index bfe7e8c..0000000
--- a/iPhone Apps/rfduinoColorWheel/rfduinoColorWheel/rfduinoColorWheel-Prefix.pch
+++ /dev/null
@@ -1,14 +0,0 @@
-//
-// Prefix header for all source files of the 'rfduinoColorWheel' target in the 'rfduinoColorWheel' project
-//
-
-#import
-
-#ifndef __IPHONE_3_0
-#warning "This project uses features only available in iOS SDK 3.0 and later."
-#endif
-
-#ifdef __OBJC__
- #import
- #import
-#endif
diff --git a/iPhone Apps/rfduinoLedButton/icon-144.png b/iPhone Apps/rfduinoLedButton/icon-144.png
deleted file mode 100755
index 75bad77..0000000
Binary files a/iPhone Apps/rfduinoLedButton/icon-144.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoLedButton/icon-72.png b/iPhone Apps/rfduinoLedButton/icon-72.png
deleted file mode 100755
index 58f1361..0000000
Binary files a/iPhone Apps/rfduinoLedButton/icon-72.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoLedButton/icon.png b/iPhone Apps/rfduinoLedButton/icon.png
deleted file mode 100755
index 8736538..0000000
Binary files a/iPhone Apps/rfduinoLedButton/icon.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoLedButton/icon@2x.png b/iPhone Apps/rfduinoLedButton/icon@2x.png
deleted file mode 100755
index da24870..0000000
Binary files a/iPhone Apps/rfduinoLedButton/icon@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton.xcodeproj/project.pbxproj b/iPhone Apps/rfduinoLedButton/rfduinoLedButton.xcodeproj/project.pbxproj
deleted file mode 100755
index 75c1456..0000000
--- a/iPhone Apps/rfduinoLedButton/rfduinoLedButton.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,365 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- AA07EB7A176BA47F00AB755D /* CustomCellBackground.m in Sources */ = {isa = PBXBuildFile; fileRef = AA07EB79176BA47F00AB755D /* CustomCellBackground.m */; };
- AA4D789117DFBCF70029ACE0 /* off.jpg in Resources */ = {isa = PBXBuildFile; fileRef = AA4D788F17DFBCF70029ACE0 /* off.jpg */; };
- AA4D789217DFBCF70029ACE0 /* on.jpg in Resources */ = {isa = PBXBuildFile; fileRef = AA4D789017DFBCF70029ACE0 /* on.jpg */; };
- AA4D78A117E0052C0029ACE0 /* icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = AA4D789D17E0052C0029ACE0 /* icon-72.png */; };
- AA4D78A217E0052C0029ACE0 /* icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = AA4D789E17E0052C0029ACE0 /* icon-144.png */; };
- AA4D78A317E0052C0029ACE0 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = AA4D789F17E0052C0029ACE0 /* icon.png */; };
- AA4D78A417E0052C0029ACE0 /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AA4D78A017E0052C0029ACE0 /* icon@2x.png */; };
- AA6DEC4416D561CD00E83C0F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA6DEC4316D561CD00E83C0F /* QuartzCore.framework */; };
- AAC4273716C9D4A500149784 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC4273616C9D4A500149784 /* UIKit.framework */; };
- AAC4273916C9D4A500149784 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC4273816C9D4A500149784 /* Foundation.framework */; };
- AAC4273B16C9D4A500149784 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC4273A16C9D4A500149784 /* CoreGraphics.framework */; };
- AAC4274116C9D4A500149784 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AAC4273F16C9D4A500149784 /* InfoPlist.strings */; };
- AAC4274316C9D4A500149784 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC4274216C9D4A500149784 /* main.m */; };
- AAC4274916C9D4A500149784 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = AAC4274816C9D4A500149784 /* Default.png */; };
- AAC4274B16C9D4A500149784 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AAC4274A16C9D4A500149784 /* Default@2x.png */; };
- AAC4274D16C9D4A500149784 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AAC4274C16C9D4A500149784 /* Default-568h@2x.png */; };
- AAC4276416C9D52700149784 /* AppViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC4276216C9D52700149784 /* AppViewController.m */; };
- AAC4276516C9D52700149784 /* AppViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = AAC4276316C9D52700149784 /* AppViewController.xib */; };
- AAC4276716C9D6B200149784 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC4276616C9D6B200149784 /* CoreBluetooth.framework */; };
- AAC427C216C9DC9B00149784 /* RFduino.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC427BA16C9DC9B00149784 /* RFduino.m */; };
- AAC427C316C9DC9B00149784 /* RfduinoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC427BD16C9DC9B00149784 /* RfduinoManager.m */; };
- AAC427C416C9DC9B00149784 /* ScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC427C016C9DC9B00149784 /* ScanViewController.m */; };
- AAC428BB16C9FE1300149784 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC428BA16C9FE1300149784 /* AppDelegate.m */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
- AA07EB78176BA47F00AB755D /* CustomCellBackground.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomCellBackground.h; sourceTree = ""; };
- AA07EB79176BA47F00AB755D /* CustomCellBackground.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomCellBackground.m; sourceTree = ""; };
- AA4D788F17DFBCF70029ACE0 /* off.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = off.jpg; path = rfduinoLedButton/off.jpg; sourceTree = SOURCE_ROOT; };
- AA4D789017DFBCF70029ACE0 /* on.jpg */ = {isa = PBXFileReference; lastKnownFileType = image.jpeg; name = on.jpg; path = rfduinoLedButton/on.jpg; sourceTree = SOURCE_ROOT; };
- AA4D789D17E0052C0029ACE0 /* icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-72.png"; sourceTree = ""; };
- AA4D789E17E0052C0029ACE0 /* icon-144.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-144.png"; sourceTree = ""; };
- AA4D789F17E0052C0029ACE0 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = ""; };
- AA4D78A017E0052C0029ACE0 /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon@2x.png"; sourceTree = ""; };
- AA6DEC4316D561CD00E83C0F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- AAC4273216C9D4A500149784 /* rfduinoLedButton.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = rfduinoLedButton.app; sourceTree = BUILT_PRODUCTS_DIR; };
- AAC4273616C9D4A500149784 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- AAC4273816C9D4A500149784 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- AAC4273A16C9D4A500149784 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- AAC4273E16C9D4A500149784 /* rfduinoLedButton-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "rfduinoLedButton-Info.plist"; sourceTree = ""; };
- AAC4274016C9D4A500149784 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
- AAC4274216C9D4A500149784 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- AAC4274416C9D4A500149784 /* rfduinoLedButton-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "rfduinoLedButton-Prefix.pch"; sourceTree = ""; };
- AAC4274816C9D4A500149784 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; };
- AAC4274A16C9D4A500149784 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; };
- AAC4274C16C9D4A500149784 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; };
- AAC4276116C9D52700149784 /* AppViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppViewController.h; sourceTree = ""; };
- AAC4276216C9D52700149784 /* AppViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppViewController.m; sourceTree = ""; };
- AAC4276316C9D52700149784 /* AppViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AppViewController.xib; sourceTree = ""; };
- AAC4276616C9D6B200149784 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; };
- AAC427B916C9DC9B00149784 /* RFduino.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduino.h; sourceTree = ""; };
- AAC427BA16C9DC9B00149784 /* RFduino.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RFduino.m; sourceTree = ""; };
- AAC427BB16C9DC9B00149784 /* RFduinoDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduinoDelegate.h; sourceTree = ""; };
- AAC427BC16C9DC9B00149784 /* RfduinoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RfduinoManager.h; sourceTree = ""; };
- AAC427BD16C9DC9B00149784 /* RfduinoManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RfduinoManager.m; sourceTree = ""; };
- AAC427BE16C9DC9B00149784 /* RFduinoManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduinoManagerDelegate.h; sourceTree = ""; };
- AAC427BF16C9DC9B00149784 /* ScanViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanViewController.h; sourceTree = ""; };
- AAC427C016C9DC9B00149784 /* ScanViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScanViewController.m; sourceTree = ""; };
- AAC428B916C9FE1300149784 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
- AAC428BA16C9FE1300149784 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- AAC4272F16C9D4A500149784 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AA6DEC4416D561CD00E83C0F /* QuartzCore.framework in Frameworks */,
- AAC4276716C9D6B200149784 /* CoreBluetooth.framework in Frameworks */,
- AAC4273716C9D4A500149784 /* UIKit.framework in Frameworks */,
- AAC4273916C9D4A500149784 /* Foundation.framework in Frameworks */,
- AAC4273B16C9D4A500149784 /* CoreGraphics.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- AAC4272716C9D4A500149784 = {
- isa = PBXGroup;
- children = (
- AA4D789D17E0052C0029ACE0 /* icon-72.png */,
- AA4D789E17E0052C0029ACE0 /* icon-144.png */,
- AA4D789F17E0052C0029ACE0 /* icon.png */,
- AA4D78A017E0052C0029ACE0 /* icon@2x.png */,
- AA4D789017DFBCF70029ACE0 /* on.jpg */,
- AA4D788F17DFBCF70029ACE0 /* off.jpg */,
- AAC427B716C9DC9B00149784 /* rfduino */,
- AAC4273C16C9D4A500149784 /* rfduinoLedButton */,
- AAC4273516C9D4A500149784 /* Frameworks */,
- AAC4273316C9D4A500149784 /* Products */,
- );
- sourceTree = "";
- };
- AAC4273316C9D4A500149784 /* Products */ = {
- isa = PBXGroup;
- children = (
- AAC4273216C9D4A500149784 /* rfduinoLedButton.app */,
- );
- name = Products;
- sourceTree = "";
- };
- AAC4273516C9D4A500149784 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- AA6DEC4316D561CD00E83C0F /* QuartzCore.framework */,
- AAC4276616C9D6B200149784 /* CoreBluetooth.framework */,
- AAC4273616C9D4A500149784 /* UIKit.framework */,
- AAC4273816C9D4A500149784 /* Foundation.framework */,
- AAC4273A16C9D4A500149784 /* CoreGraphics.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- AAC4273C16C9D4A500149784 /* rfduinoLedButton */ = {
- isa = PBXGroup;
- children = (
- AAC4276116C9D52700149784 /* AppViewController.h */,
- AAC4276216C9D52700149784 /* AppViewController.m */,
- AAC4276316C9D52700149784 /* AppViewController.xib */,
- AAC4273D16C9D4A500149784 /* Supporting Files */,
- );
- path = rfduinoLedButton;
- sourceTree = "";
- };
- AAC4273D16C9D4A500149784 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- AAC4273E16C9D4A500149784 /* rfduinoLedButton-Info.plist */,
- AAC4273F16C9D4A500149784 /* InfoPlist.strings */,
- AAC4274216C9D4A500149784 /* main.m */,
- AAC4274416C9D4A500149784 /* rfduinoLedButton-Prefix.pch */,
- AAC4274816C9D4A500149784 /* Default.png */,
- AAC4274A16C9D4A500149784 /* Default@2x.png */,
- AAC4274C16C9D4A500149784 /* Default-568h@2x.png */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- AAC427B716C9DC9B00149784 /* rfduino */ = {
- isa = PBXGroup;
- children = (
- AAC428B916C9FE1300149784 /* AppDelegate.h */,
- AAC428BA16C9FE1300149784 /* AppDelegate.m */,
- AAC427B916C9DC9B00149784 /* RFduino.h */,
- AAC427BA16C9DC9B00149784 /* RFduino.m */,
- AAC427BB16C9DC9B00149784 /* RFduinoDelegate.h */,
- AAC427BC16C9DC9B00149784 /* RfduinoManager.h */,
- AAC427BD16C9DC9B00149784 /* RfduinoManager.m */,
- AAC427BE16C9DC9B00149784 /* RFduinoManagerDelegate.h */,
- AAC427BF16C9DC9B00149784 /* ScanViewController.h */,
- AAC427C016C9DC9B00149784 /* ScanViewController.m */,
- AA07EB78176BA47F00AB755D /* CustomCellBackground.h */,
- AA07EB79176BA47F00AB755D /* CustomCellBackground.m */,
- );
- name = rfduino;
- path = ../rfduino;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- AAC4273116C9D4A500149784 /* rfduinoLedButton */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = AAC4275016C9D4A500149784 /* Build configuration list for PBXNativeTarget "rfduinoLedButton" */;
- buildPhases = (
- AAC4272E16C9D4A500149784 /* Sources */,
- AAC4272F16C9D4A500149784 /* Frameworks */,
- AAC4273016C9D4A500149784 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = rfduinoLedButton;
- productName = rfduinoLedButton;
- productReference = AAC4273216C9D4A500149784 /* rfduinoLedButton.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- AAC4272916C9D4A500149784 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0450;
- ORGANIZATIONNAME = OpenSourceRF;
- };
- buildConfigurationList = AAC4272C16C9D4A500149784 /* Build configuration list for PBXProject "rfduinoLedButton" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- );
- mainGroup = AAC4272716C9D4A500149784;
- productRefGroup = AAC4273316C9D4A500149784 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- AAC4273116C9D4A500149784 /* rfduinoLedButton */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- AAC4273016C9D4A500149784 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AAC4274116C9D4A500149784 /* InfoPlist.strings in Resources */,
- AAC4274916C9D4A500149784 /* Default.png in Resources */,
- AAC4274B16C9D4A500149784 /* Default@2x.png in Resources */,
- AAC4274D16C9D4A500149784 /* Default-568h@2x.png in Resources */,
- AAC4276516C9D52700149784 /* AppViewController.xib in Resources */,
- AA4D789117DFBCF70029ACE0 /* off.jpg in Resources */,
- AA4D789217DFBCF70029ACE0 /* on.jpg in Resources */,
- AA4D78A117E0052C0029ACE0 /* icon-72.png in Resources */,
- AA4D78A217E0052C0029ACE0 /* icon-144.png in Resources */,
- AA4D78A317E0052C0029ACE0 /* icon.png in Resources */,
- AA4D78A417E0052C0029ACE0 /* icon@2x.png in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- AAC4272E16C9D4A500149784 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AAC4274316C9D4A500149784 /* main.m in Sources */,
- AAC4276416C9D52700149784 /* AppViewController.m in Sources */,
- AAC427C216C9DC9B00149784 /* RFduino.m in Sources */,
- AAC427C316C9DC9B00149784 /* RfduinoManager.m in Sources */,
- AAC427C416C9DC9B00149784 /* ScanViewController.m in Sources */,
- AAC428BB16C9FE1300149784 /* AppDelegate.m in Sources */,
- AA07EB7A176BA47F00AB755D /* CustomCellBackground.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXVariantGroup section */
- AAC4273F16C9D4A500149784 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- AAC4274016C9D4A500149784 /* en */,
- );
- name = InfoPlist.strings;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- AAC4274E16C9D4A500149784 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- 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_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- };
- name = Debug;
- };
- AAC4274F16C9D4A500149784 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
- SDKROOT = iphoneos;
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- AAC4275116C9D4A500149784 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoLedButton/rfduinoLedButton-Prefix.pch";
- INFOPLIST_FILE = "rfduinoLedButton/rfduinoLedButton-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- PRODUCT_NAME = "$(TARGET_NAME)";
- TARGETED_DEVICE_FAMILY = "1,2";
- WRAPPER_EXTENSION = app;
- };
- name = Debug;
- };
- AAC4275216C9D4A500149784 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoLedButton/rfduinoLedButton-Prefix.pch";
- INFOPLIST_FILE = "rfduinoLedButton/rfduinoLedButton-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- PRODUCT_NAME = "$(TARGET_NAME)";
- TARGETED_DEVICE_FAMILY = "1,2";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- AAC4272C16C9D4A500149784 /* Build configuration list for PBXProject "rfduinoLedButton" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AAC4274E16C9D4A500149784 /* Debug */,
- AAC4274F16C9D4A500149784 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- AAC4275016C9D4A500149784 /* Build configuration list for PBXNativeTarget "rfduinoLedButton" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AAC4275116C9D4A500149784 /* Debug */,
- AAC4275216C9D4A500149784 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = AAC4272916C9D4A500149784 /* Project object */;
-}
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iPhone Apps/rfduinoLedButton/rfduinoLedButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100755
index 6ef6d3c..0000000
--- a/iPhone Apps/rfduinoLedButton/rfduinoLedButton.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/AppViewController.m b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/AppViewController.m
deleted file mode 100755
index 2a2365c..0000000
--- a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/AppViewController.m
+++ /dev/null
@@ -1,205 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-#import "AppViewController.h"
-
-@implementation AppViewController
-
-@synthesize rfduino;
-
-- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
-{
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- if (self) {
- // Custom initialization
- UIButton *backButton = [UIButton buttonWithType:101]; // left-pointing shape
- [backButton setTitle:@"Disconnect" forState:UIControlStateNormal];
- [backButton addTarget:self action:@selector(disconnect:) forControlEvents:UIControlEventTouchUpInside];
-
- UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
- [[self navigationItem] setLeftBarButtonItem:backItem];
-
- [[self navigationItem] setTitle:@"RFduino LedBtn"];
- }
- return self;
-}
-
-- (void)iPhone5PortraitLayout
-{
- label1.frame = CGRectMake(51,20,218,84);
- button1.frame = CGRectMake(124,112,73,44);
-
- label2.frame = CGRectMake(51,279,218,84);
- image1.frame = CGRectMake(123,371,75,75);
-}
-
-- (void)iPhone5LandscapeLayout
-{
- label1.frame = CGRectMake(20,65,218,84);
- button1.frame = CGRectMake(93,173,73,44);
-
- label2.frame = CGRectMake(330,65,218,84);
- image1.frame = CGRectMake(402,157,75,75);
-}
-
-- (void)iPhone4SPortraitLayout
-{
- label1.frame = CGRectMake(51,34,218,84);
- button1.frame = CGRectMake(124,126,73,44);
-
- label2.frame = CGRectMake(51,211,218,84);
- image1.frame = CGRectMake(123,303,75,75);
-}
-
-- (void)iPhone4SLandscapeLayout
-{
- label1.frame = CGRectMake(20,45,218,84);
- button1.frame = CGRectMake(93,153,73,44);
-
- label2.frame = CGRectMake(262,45,218,84);
- image1.frame = CGRectMake(334,137,75,75);
-}
-
-- (void)iPadPortraitLayout
-{
- label1.frame = CGRectMake(91,198,587,28);
- button1.frame = CGRectMake(343,242,73,44);
-
- label2.frame = CGRectMake(113,648,543,38);
- image1.frame = CGRectMake(347,694,75,75);
-}
-
-- (void)iPadLandscapeLayout
-{
- label1.frame = CGRectMake(224,144,587,28);
- button1.frame = CGRectMake(476,188,73,44);
-
- label2.frame = CGRectMake(241,462,543,38);
- image1.frame = CGRectMake(475,508,75,75);
-}
-
-- (void)manualLayout
-{
- CGRect rect = [[UIScreen mainScreen] bounds];
-
- if (UIDeviceOrientationIsLandscape(self.interfaceOrientation)) {
- if (rect.size.height >= 1024) {
- [self iPadLandscapeLayout];
- } else if (rect.size.height >= 568) {
- [self iPhone5LandscapeLayout];
- } else {
- [self iPhone4SLandscapeLayout];
- }
- } else {
- if (rect.size.height >= 1024) {
- [self iPadPortraitLayout];
- } else if (rect.size.height >= 568) {
- [self iPhone5PortraitLayout];
- } else {
- [self iPhone4SPortraitLayout];
- }
- }
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
- // Do any additional setup after loading the view from its nib.
-
- [rfduino setDelegate:self];
-
- UIColor *start = [UIColor colorWithRed:58/255.0 green:108/255.0 blue:183/255.0 alpha:0.15];
- UIColor *stop = [UIColor colorWithRed:58/255.0 green:108/255.0 blue:183/255.0 alpha:0.45];
-
- CAGradientLayer *gradient = [CAGradientLayer layer];
- //gradient.frame = [self.view bounds];
- gradient.frame = CGRectMake(0.0, 0.0, 1024.0, 1024.0);
- gradient.colors = [NSArray arrayWithObjects:(id)start.CGColor, (id)stop.CGColor, nil];
- [self.view.layer insertSublayer:gradient atIndex:0];
-
- off = [UIImage imageNamed:@"off.jpg"];
- on = [UIImage imageNamed:@"on.jpg"];
-}
-
-- (void)viewDidLayoutSubviews {
- [self manualLayout];
-}
-
-- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
-{
- [self manualLayout];
-}
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-}
-
-- (IBAction)disconnect:(id)sender
-{
- NSLog(@"disconnect pressed");
-
- [rfduino disconnect];
-}
-
-- (void)sendByte:(uint8_t)byte
-{
- uint8_t tx[1] = { byte };
- NSData *data = [NSData dataWithBytes:(void*)&tx length:1];
- [rfduino send:data];
-}
-
-- (IBAction)buttonTouchDown:(id)sender
-{
- NSLog(@"TouchDown");
- [self sendByte:1];
-}
-
-- (IBAction)buttonTouchUpInside:(id)sender
-{
- NSLog(@"TouchUpInside");
- [self sendByte:0];
-}
-
-- (void)didReceive:(NSData *)data
-{
- NSLog(@"RecievedData");
-
- const uint8_t *value = [data bytes];
- // int len = [data length];
-
- NSLog(@"value = %x", value[0]);
-
- if (value[0])
- [image1 setImage:on];
- else
- [image1 setImage:off];
-}
-
-@end
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/AppViewController.xib b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/AppViewController.xib
deleted file mode 100755
index d9f8307..0000000
--- a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/AppViewController.xib
+++ /dev/null
@@ -1,467 +0,0 @@
-
-
-
- 1552
- 12E55
- 3084
- 1187.39
- 626.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 2083
-
-
- IBProxyObject
- IBUIButton
- IBUIImageView
- IBUILabel
- IBUIView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 292
- {{123, 371}, {75, 75}}
-
- _NS:9
- NO
- IBCocoaTouchFramework
-
- NSImage
- off.jpg
-
-
-
-
- 292
- {{124, 112}, {73, 44}}
-
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 0
- 0
- 1
- Button
-
- 3
- MQA
-
-
- 1
- MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA
-
-
- 3
- MC41AA
-
-
- 2
- 15
-
-
- Helvetica-Bold
- 15
- 16
-
-
-
-
- 292
- {{51, 20}, {218, 84}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Press and hold the button below to turn on the green led on the RGB Shield.
-
- 1
- MCAwIDAAA
- darkTextColor
-
-
- 0
- 3
-
- 1
- 17
-
-
- Helvetica
- 17
- 16
-
- NO
- 218
-
-
-
- 292
- {{51, 279}, {218, 84}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Press and hold Button1 on the RGB Shield to change the image below.
-
-
- 0
- 3
-
-
- NO
- 218
-
-
- {{0, 20}, {320, 548}}
-
-
-
- 3
- MQA
-
- 2
-
-
-
-
- IBUIScreenMetrics
-
- YES
-
-
-
-
-
- {320, 568}
- {568, 320}
-
-
- IBCocoaTouchFramework
- Retina 4 Full Screen
- 2
-
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 292
- {{343, 242}, {73, 44}}
-
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 0
- 0
- 1
- Button
-
-
- 1
- MC4xOTYwNzg0MzQ2IDAuMzA5ODAzOTMyOSAwLjUyMTU2ODY1NgA
-
-
-
-
-
-
-
- 292
- {{91, 198}, {587, 28}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Press and hold the button below to turn on the green led on the RGB Shield.
-
-
- 0
- 3
-
-
- NO
- 587
-
-
-
- 292
- {{113, 648}, {543, 38}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Press and hold Button1 on the RGB Shield to change the image below.
-
-
- 0
- 3
-
-
- NO
- 543
-
-
-
- 292
- {{347, 694}, {75, 75}}
-
- _NS:9
- NO
- IBCocoaTouchFramework
-
-
-
- {{0, 20}, {768, 1024}}
-
-
- 3
- MQA
-
-
-
-
- IBUISimulatedFreeformSizeMetricsSentinel
- Freeform
-
- IBCocoaTouchFramework
-
-
-
-
-
-
- view
-
-
-
- 3
-
-
-
- button1
-
-
-
- 31
-
-
-
- image1
-
-
-
- 32
-
-
-
- label1
-
-
-
- 50
-
-
-
- label2
-
-
-
- 51
-
-
-
- buttonTouchDown:
-
-
- 1
-
- 34
-
-
-
- buttonTouchUpInside:
-
-
- 7
-
- 35
-
-
-
- buttonTouchDown:
-
-
- 1
-
- 64
-
-
-
- buttonTouchUpInside:
-
-
- 7
-
- 65
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 27
-
-
-
-
- 29
-
-
-
-
- 36
-
-
-
-
-
- 37
-
-
-
-
-
- 59
-
-
-
-
-
-
-
-
-
-
- 60
-
-
-
-
- 61
-
-
-
-
- 62
-
-
-
-
- 63
-
-
-
-
-
-
- AppViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 65
-
-
- 0
- IBCocoaTouchFramework
- YES
- 3
-
- off.jpg
- {75, 75}
-
- 2083
-
-
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/Default-568h@2x.png b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/Default-568h@2x.png
deleted file mode 100755
index 0891b7a..0000000
Binary files a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/Default-568h@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/Default.png b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/Default.png
deleted file mode 100755
index 4c8ca6f..0000000
Binary files a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/Default.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/Default@2x.png b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/Default@2x.png
deleted file mode 100755
index 35b84cf..0000000
Binary files a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/Default@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/en.lproj/InfoPlist.strings b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/en.lproj/InfoPlist.strings
deleted file mode 100755
index 477b28f..0000000
--- a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Localized versions of Info.plist keys */
-
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/main.m b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/main.m
deleted file mode 100755
index f87c5c3..0000000
--- a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/main.m
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// main.m
-// rfduinoLedButton
-//
-// Created by Steve on 2/11/13.
-// Copyright (c) 2013 RF Digital. All rights reserved.
-//
-
-#import
-
-#import "AppDelegate.h"
-
-int main(int argc, char *argv[])
-{
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/off.jpg b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/off.jpg
deleted file mode 100755
index 48f6601..0000000
Binary files a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/off.jpg and /dev/null differ
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/on.jpg b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/on.jpg
deleted file mode 100755
index 4f9b94c..0000000
Binary files a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/on.jpg and /dev/null differ
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/rfduinoLedButton-Info.plist b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/rfduinoLedButton-Info.plist
deleted file mode 100755
index 182a484..0000000
--- a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/rfduinoLedButton-Info.plist
+++ /dev/null
@@ -1,51 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleDisplayName
- RFduino LedButton
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIcons
-
- CFBundlePrimaryIcon
-
- CFBundleIconFiles
-
- icon@2x.png
- icon.png
- icon-72.png
- icon-144.png
-
-
-
- CFBundleIdentifier
- com.OpenSourceRF.${PRODUCT_NAME:rfc1034identifier}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${PRODUCT_NAME}
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
- LSRequiresIPhoneOS
-
- UIRequiredDeviceCapabilities
-
- armv7
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
-
-
diff --git a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/rfduinoLedButton-Prefix.pch b/iPhone Apps/rfduinoLedButton/rfduinoLedButton/rfduinoLedButton-Prefix.pch
deleted file mode 100755
index bf2495e..0000000
--- a/iPhone Apps/rfduinoLedButton/rfduinoLedButton/rfduinoLedButton-Prefix.pch
+++ /dev/null
@@ -1,14 +0,0 @@
-//
-// Prefix header for all source files of the 'rfduinoLedButton' target in the 'rfduinoLedButton' project
-//
-
-#import
-
-#ifndef __IPHONE_3_0
-#warning "This project uses features only available in iOS SDK 3.0 and later."
-#endif
-
-#ifdef __OBJC__
- #import
- #import
-#endif
diff --git a/iPhone Apps/rfduinoServo/icon-144.png b/iPhone Apps/rfduinoServo/icon-144.png
deleted file mode 100755
index 66fa651..0000000
Binary files a/iPhone Apps/rfduinoServo/icon-144.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoServo/icon-72.png b/iPhone Apps/rfduinoServo/icon-72.png
deleted file mode 100755
index eadd878..0000000
Binary files a/iPhone Apps/rfduinoServo/icon-72.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoServo/icon.png b/iPhone Apps/rfduinoServo/icon.png
deleted file mode 100755
index 9977620..0000000
Binary files a/iPhone Apps/rfduinoServo/icon.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoServo/icon@2x.png b/iPhone Apps/rfduinoServo/icon@2x.png
deleted file mode 100755
index fcbc29d..0000000
Binary files a/iPhone Apps/rfduinoServo/icon@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo.ipa b/iPhone Apps/rfduinoServo/rfduinoServo.ipa
deleted file mode 100755
index 722e5d1..0000000
Binary files a/iPhone Apps/rfduinoServo/rfduinoServo.ipa and /dev/null differ
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.pbxproj b/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.pbxproj
deleted file mode 100755
index 44a2cb1..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,365 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- AA603B4F17BDD9B200255E8D /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA603B4E17BDD9B200255E8D /* UIKit.framework */; };
- AA603B5117BDD9B200255E8D /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA603B5017BDD9B200255E8D /* Foundation.framework */; };
- AA603B5317BDD9B200255E8D /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA603B5217BDD9B200255E8D /* CoreGraphics.framework */; };
- AA603B5917BDD9B200255E8D /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AA603B5717BDD9B200255E8D /* InfoPlist.strings */; };
- AA603B5B17BDD9B200255E8D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AA603B5A17BDD9B200255E8D /* main.m */; };
- AA603B6117BDD9B200255E8D /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = AA603B6017BDD9B200255E8D /* Default.png */; };
- AA603B6317BDD9B200255E8D /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AA603B6217BDD9B200255E8D /* Default@2x.png */; };
- AA603B6517BDD9B200255E8D /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AA603B6417BDD9B200255E8D /* Default-568h@2x.png */; };
- AA603B7817BDD9CD00255E8D /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AA603B6D17BDD9CD00255E8D /* AppDelegate.m */; };
- AA603B7917BDD9CD00255E8D /* CustomCellBackground.m in Sources */ = {isa = PBXBuildFile; fileRef = AA603B6F17BDD9CD00255E8D /* CustomCellBackground.m */; };
- AA603B7A17BDD9CD00255E8D /* RFduino.m in Sources */ = {isa = PBXBuildFile; fileRef = AA603B7117BDD9CD00255E8D /* RFduino.m */; };
- AA603B7B17BDD9CD00255E8D /* RfduinoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AA603B7417BDD9CD00255E8D /* RfduinoManager.m */; };
- AA603B7C17BDD9CD00255E8D /* ScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AA603B7717BDD9CD00255E8D /* ScanViewController.m */; };
- AA603B8017BDDA2A00255E8D /* AppViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AA603B7E17BDDA2A00255E8D /* AppViewController.m */; };
- AA603B8117BDDA2A00255E8D /* AppViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = AA603B7F17BDDA2A00255E8D /* AppViewController.xib */; };
- AA603B8317BDDA6000255E8D /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA603B8217BDDA6000255E8D /* CoreBluetooth.framework */; };
- AA603B8517BDDAA300255E8D /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA603B8417BDDAA300255E8D /* QuartzCore.framework */; };
- AA6AB7C917C6E6FF0097CD13 /* icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = AA6AB7C517C6E6FF0097CD13 /* icon-72.png */; };
- AA6AB7CA17C6E6FF0097CD13 /* icon-144.png in Resources */ = {isa = PBXBuildFile; fileRef = AA6AB7C617C6E6FF0097CD13 /* icon-144.png */; };
- AA6AB7CB17C6E6FF0097CD13 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = AA6AB7C717C6E6FF0097CD13 /* icon.png */; };
- AA6AB7CC17C6E6FF0097CD13 /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AA6AB7C817C6E6FF0097CD13 /* icon@2x.png */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
- AA603B4B17BDD9B200255E8D /* rfduinoServo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = rfduinoServo.app; sourceTree = BUILT_PRODUCTS_DIR; };
- AA603B4E17BDD9B200255E8D /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- AA603B5017BDD9B200255E8D /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- AA603B5217BDD9B200255E8D /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- AA603B5617BDD9B200255E8D /* rfduinoServo-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "rfduinoServo-Info.plist"; sourceTree = ""; };
- AA603B5817BDD9B200255E8D /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
- AA603B5A17BDD9B200255E8D /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- AA603B5C17BDD9B200255E8D /* rfduinoServo-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "rfduinoServo-Prefix.pch"; sourceTree = ""; };
- AA603B6017BDD9B200255E8D /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; };
- AA603B6217BDD9B200255E8D /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; };
- AA603B6417BDD9B200255E8D /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; };
- AA603B6C17BDD9CD00255E8D /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
- AA603B6D17BDD9CD00255E8D /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
- AA603B6E17BDD9CD00255E8D /* CustomCellBackground.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomCellBackground.h; sourceTree = ""; };
- AA603B6F17BDD9CD00255E8D /* CustomCellBackground.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomCellBackground.m; sourceTree = ""; };
- AA603B7017BDD9CD00255E8D /* RFduino.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduino.h; sourceTree = ""; };
- AA603B7117BDD9CD00255E8D /* RFduino.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RFduino.m; sourceTree = ""; };
- AA603B7217BDD9CD00255E8D /* RFduinoDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduinoDelegate.h; sourceTree = ""; };
- AA603B7317BDD9CD00255E8D /* RfduinoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RfduinoManager.h; sourceTree = ""; };
- AA603B7417BDD9CD00255E8D /* RfduinoManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RfduinoManager.m; sourceTree = ""; };
- AA603B7517BDD9CD00255E8D /* RFduinoManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduinoManagerDelegate.h; sourceTree = ""; };
- AA603B7617BDD9CD00255E8D /* ScanViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanViewController.h; sourceTree = ""; };
- AA603B7717BDD9CD00255E8D /* ScanViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScanViewController.m; sourceTree = ""; };
- AA603B7D17BDDA2A00255E8D /* AppViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppViewController.h; sourceTree = ""; };
- AA603B7E17BDDA2A00255E8D /* AppViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppViewController.m; sourceTree = ""; };
- AA603B7F17BDDA2A00255E8D /* AppViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AppViewController.xib; sourceTree = ""; };
- AA603B8217BDDA6000255E8D /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; };
- AA603B8417BDDAA300255E8D /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- AA6AB7C517C6E6FF0097CD13 /* icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-72.png"; sourceTree = ""; };
- AA6AB7C617C6E6FF0097CD13 /* icon-144.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-144.png"; sourceTree = ""; };
- AA6AB7C717C6E6FF0097CD13 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = ""; };
- AA6AB7C817C6E6FF0097CD13 /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon@2x.png"; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- AA603B4817BDD9B200255E8D /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AA603B8517BDDAA300255E8D /* QuartzCore.framework in Frameworks */,
- AA603B8317BDDA6000255E8D /* CoreBluetooth.framework in Frameworks */,
- AA603B4F17BDD9B200255E8D /* UIKit.framework in Frameworks */,
- AA603B5117BDD9B200255E8D /* Foundation.framework in Frameworks */,
- AA603B5317BDD9B200255E8D /* CoreGraphics.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- AA603B4217BDD9B200255E8D = {
- isa = PBXGroup;
- children = (
- AA6AB7C517C6E6FF0097CD13 /* icon-72.png */,
- AA6AB7C617C6E6FF0097CD13 /* icon-144.png */,
- AA6AB7C717C6E6FF0097CD13 /* icon.png */,
- AA6AB7C817C6E6FF0097CD13 /* icon@2x.png */,
- AA603B8417BDDAA300255E8D /* QuartzCore.framework */,
- AA603B8217BDDA6000255E8D /* CoreBluetooth.framework */,
- AA603B6B17BDD9CD00255E8D /* rfduino */,
- AA603B5417BDD9B200255E8D /* rfduinoServo */,
- AA603B4D17BDD9B200255E8D /* Frameworks */,
- AA603B4C17BDD9B200255E8D /* Products */,
- );
- sourceTree = "";
- };
- AA603B4C17BDD9B200255E8D /* Products */ = {
- isa = PBXGroup;
- children = (
- AA603B4B17BDD9B200255E8D /* rfduinoServo.app */,
- );
- name = Products;
- sourceTree = "";
- };
- AA603B4D17BDD9B200255E8D /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- AA603B4E17BDD9B200255E8D /* UIKit.framework */,
- AA603B5017BDD9B200255E8D /* Foundation.framework */,
- AA603B5217BDD9B200255E8D /* CoreGraphics.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- AA603B5417BDD9B200255E8D /* rfduinoServo */ = {
- isa = PBXGroup;
- children = (
- AA603B7D17BDDA2A00255E8D /* AppViewController.h */,
- AA603B7E17BDDA2A00255E8D /* AppViewController.m */,
- AA603B7F17BDDA2A00255E8D /* AppViewController.xib */,
- AA603B5517BDD9B200255E8D /* Supporting Files */,
- );
- path = rfduinoServo;
- sourceTree = "";
- };
- AA603B5517BDD9B200255E8D /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- AA603B5617BDD9B200255E8D /* rfduinoServo-Info.plist */,
- AA603B5717BDD9B200255E8D /* InfoPlist.strings */,
- AA603B5A17BDD9B200255E8D /* main.m */,
- AA603B5C17BDD9B200255E8D /* rfduinoServo-Prefix.pch */,
- AA603B6017BDD9B200255E8D /* Default.png */,
- AA603B6217BDD9B200255E8D /* Default@2x.png */,
- AA603B6417BDD9B200255E8D /* Default-568h@2x.png */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- AA603B6B17BDD9CD00255E8D /* rfduino */ = {
- isa = PBXGroup;
- children = (
- AA603B6C17BDD9CD00255E8D /* AppDelegate.h */,
- AA603B6D17BDD9CD00255E8D /* AppDelegate.m */,
- AA603B6E17BDD9CD00255E8D /* CustomCellBackground.h */,
- AA603B6F17BDD9CD00255E8D /* CustomCellBackground.m */,
- AA603B7017BDD9CD00255E8D /* RFduino.h */,
- AA603B7117BDD9CD00255E8D /* RFduino.m */,
- AA603B7217BDD9CD00255E8D /* RFduinoDelegate.h */,
- AA603B7317BDD9CD00255E8D /* RfduinoManager.h */,
- AA603B7417BDD9CD00255E8D /* RfduinoManager.m */,
- AA603B7517BDD9CD00255E8D /* RFduinoManagerDelegate.h */,
- AA603B7617BDD9CD00255E8D /* ScanViewController.h */,
- AA603B7717BDD9CD00255E8D /* ScanViewController.m */,
- );
- name = rfduino;
- path = ../rfduino;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- AA603B4A17BDD9B200255E8D /* rfduinoServo */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = AA603B6817BDD9B200255E8D /* Build configuration list for PBXNativeTarget "rfduinoServo" */;
- buildPhases = (
- AA603B4717BDD9B200255E8D /* Sources */,
- AA603B4817BDD9B200255E8D /* Frameworks */,
- AA603B4917BDD9B200255E8D /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = rfduinoServo;
- productName = rfduinoServo;
- productReference = AA603B4B17BDD9B200255E8D /* rfduinoServo.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- AA603B4317BDD9B200255E8D /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0460;
- ORGANIZATIONNAME = OpenSourceRF;
- };
- buildConfigurationList = AA603B4617BDD9B200255E8D /* Build configuration list for PBXProject "rfduinoServo" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- );
- mainGroup = AA603B4217BDD9B200255E8D;
- productRefGroup = AA603B4C17BDD9B200255E8D /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- AA603B4A17BDD9B200255E8D /* rfduinoServo */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- AA603B4917BDD9B200255E8D /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AA603B5917BDD9B200255E8D /* InfoPlist.strings in Resources */,
- AA603B6117BDD9B200255E8D /* Default.png in Resources */,
- AA603B6317BDD9B200255E8D /* Default@2x.png in Resources */,
- AA603B6517BDD9B200255E8D /* Default-568h@2x.png in Resources */,
- AA603B8117BDDA2A00255E8D /* AppViewController.xib in Resources */,
- AA6AB7C917C6E6FF0097CD13 /* icon-72.png in Resources */,
- AA6AB7CA17C6E6FF0097CD13 /* icon-144.png in Resources */,
- AA6AB7CB17C6E6FF0097CD13 /* icon.png in Resources */,
- AA6AB7CC17C6E6FF0097CD13 /* icon@2x.png in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- AA603B4717BDD9B200255E8D /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AA603B5B17BDD9B200255E8D /* main.m in Sources */,
- AA603B7817BDD9CD00255E8D /* AppDelegate.m in Sources */,
- AA603B7917BDD9CD00255E8D /* CustomCellBackground.m in Sources */,
- AA603B7A17BDD9CD00255E8D /* RFduino.m in Sources */,
- AA603B7B17BDD9CD00255E8D /* RfduinoManager.m in Sources */,
- AA603B7C17BDD9CD00255E8D /* ScanViewController.m in Sources */,
- AA603B8017BDDA2A00255E8D /* AppViewController.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXVariantGroup section */
- AA603B5717BDD9B200255E8D /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- AA603B5817BDD9B200255E8D /* en */,
- );
- name = InfoPlist.strings;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- AA603B6617BDD9B200255E8D /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_EMPTY_BODY = 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;
- 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_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- };
- name = Debug;
- };
- AA603B6717BDD9B200255E8D /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_CONSTANT_CONVERSION = YES;
- CLANG_WARN_EMPTY_BODY = 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;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
- SDKROOT = iphoneos;
- TARGETED_DEVICE_FAMILY = "1,2";
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- AA603B6917BDD9B200255E8D /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoServo/rfduinoServo-Prefix.pch";
- INFOPLIST_FILE = "rfduinoServo/rfduinoServo-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 6.1;
- PRODUCT_NAME = "$(TARGET_NAME)";
- TARGETED_DEVICE_FAMILY = "1,2";
- WRAPPER_EXTENSION = app;
- };
- name = Debug;
- };
- AA603B6A17BDD9B200255E8D /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoServo/rfduinoServo-Prefix.pch";
- INFOPLIST_FILE = "rfduinoServo/rfduinoServo-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 6.1;
- PRODUCT_NAME = "$(TARGET_NAME)";
- TARGETED_DEVICE_FAMILY = "1,2";
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- AA603B4617BDD9B200255E8D /* Build configuration list for PBXProject "rfduinoServo" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AA603B6617BDD9B200255E8D /* Debug */,
- AA603B6717BDD9B200255E8D /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- AA603B6817BDD9B200255E8D /* Build configuration list for PBXNativeTarget "rfduinoServo" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AA603B6917BDD9B200255E8D /* Debug */,
- AA603B6A17BDD9B200255E8D /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = AA603B4317BDD9B200255E8D /* Project object */;
-}
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100755
index a8632af..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.xcworkspace/xcuserdata/steve.xcuserdatad/UserInterfaceState.xcuserstate b/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.xcworkspace/xcuserdata/steve.xcuserdatad/UserInterfaceState.xcuserstate
deleted file mode 100755
index 7844f3b..0000000
Binary files a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.xcworkspace/xcuserdata/steve.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.xcworkspace/xcuserdata/steve.xcuserdatad/WorkspaceSettings.xcsettings b/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.xcworkspace/xcuserdata/steve.xcuserdatad/WorkspaceSettings.xcsettings
deleted file mode 100755
index bfffcfe..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/project.xcworkspace/xcuserdata/steve.xcuserdatad/WorkspaceSettings.xcsettings
+++ /dev/null
@@ -1,10 +0,0 @@
-
-
-
-
- HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges
-
- SnapshotAutomaticallyBeforeSignificantChanges
-
-
-
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/rfduinoServo.xcscheme b/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/rfduinoServo.xcscheme
deleted file mode 100755
index 941a6b1..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/rfduinoServo.xcscheme
+++ /dev/null
@@ -1,86 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/xcschememanagement.plist b/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/xcschememanagement.plist
deleted file mode 100755
index 149b0b7..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo.xcodeproj/xcuserdata/steve.xcuserdatad/xcschemes/xcschememanagement.plist
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
-
- SchemeUserState
-
- rfduinoServo.xcscheme
-
- orderHint
- 0
-
-
- SuppressBuildableAutocreation
-
- AA603B4A17BDD9B200255E8D
-
- primary
-
-
-
-
-
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/AppViewController.h b/iPhone Apps/rfduinoServo/rfduinoServo/AppViewController.h
deleted file mode 100755
index a4d2173..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo/AppViewController.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-#import
-
-#import "RFduino.h"
-
-@interface AppViewController : UIViewController
-{
- __weak IBOutlet UILabel *OutputLabel;
- __weak IBOutlet UISegmentedControl *Output;
-
- __weak IBOutlet UILabel *PositionLabel;
-
- __weak IBOutlet UILabel *ValueLabel;
- __weak IBOutlet UITextField *Value;
-
- __weak IBOutlet UIStepper *Stepper;
- __weak IBOutlet UISlider *Slider;
- __weak IBOutlet UISegmentedControl *Segment;
-
- int output;
- int value[4];
-}
-
-@property(strong, nonatomic) RFduino *rfduino;
-
-- (IBAction)outputSegmentValueChanged:(id)sender;
-- (IBAction)textFieldEditingDidEnd:(id)sender;
-- (IBAction)stepperValueChanged:(id)sender;
-- (IBAction)sliderTouchUpInside:(id)sender;
-- (IBAction)segmentValueChanged:(id)sender;
-
-@end
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/AppViewController.m b/iPhone Apps/rfduinoServo/rfduinoServo/AppViewController.m
deleted file mode 100755
index fa2418b..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo/AppViewController.m
+++ /dev/null
@@ -1,327 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-#import "AppViewController.h"
-
-@implementation AppViewController
-
-@synthesize rfduino;
-
-- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
-{
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- if (self) {
- // Custom initialization
- UIButton *backButton = [UIButton buttonWithType:101]; // left-pointing shape
- [backButton setTitle:@"Disconnect" forState:UIControlStateNormal];
- [backButton addTarget:self action:@selector(disconnect:) forControlEvents:UIControlEventTouchUpInside];
-
- UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
- [[self navigationItem] setLeftBarButtonItem:backItem];
-
- [[self navigationItem] setTitle:@"RFduino Servo"];
- }
- return self;
-}
-
-- (void)iPhone5PortraitLayout
-{
- OutputLabel.frame = CGRectMake(104,80,113,21);
- Output.frame = CGRectMake(20,119,280,44);
-
- PositionLabel.frame = CGRectMake(40,196,241,21);
-
- ValueLabel.frame = CGRectMake(25,235,58,21);
- Value.frame = CGRectMake(97,231,83,30);
-
- Stepper.frame = CGRectMake(206,232,94,27);
- Slider.frame = CGRectMake(18,272,284,23);
- Segment.frame = CGRectMake(20,308,280,30);
-}
-
-- (void)iPhone5LandscapeLayout
-{
- OutputLabel.frame = CGRectMake(230,20,113,21);
- Output.frame = CGRectMake(146,44,280,44);
-
- PositionLabel.frame = CGRectMake(167,114,241,21);
-
- ValueLabel.frame = CGRectMake(147,143,58,21);
- Value.frame = CGRectMake(213,140,83,30);
-
- Stepper.frame = CGRectMake(323,140,94,27);
- Slider.frame = CGRectMake(145,178,284,23);
- Segment.frame = CGRectMake(146,208,280,30);
-}
-
-- (void)iPhone4SPortraitLayout
-{
- OutputLabel.frame = CGRectMake(104,25,113,21);
- Output.frame = CGRectMake(20,59,280,44);
-
- PositionLabel.frame = CGRectMake(40,136,241,21);
-
- ValueLabel.frame = CGRectMake(25,175,58,21);
- Value.frame = CGRectMake(97,171,83,30);
-
- Stepper.frame = CGRectMake(206,172,94,27);
- Slider.frame = CGRectMake(18,212,284,23);
- Segment.frame = CGRectMake(20,248,280,30);
-}
-
-- (void)iPhone4SLandscapeLayout
-{
- OutputLabel.frame = CGRectMake(190,20,113,21);
- Output.frame = CGRectMake(106,44,280,44);
-
- PositionLabel.frame = CGRectMake(127,114,241,21);
-
- ValueLabel.frame = CGRectMake(107,143,58,21);
- Value.frame = CGRectMake(173,140,83,30);
-
- Stepper.frame = CGRectMake(293,140,94,27);
- Slider.frame = CGRectMake(105,178,284,23);
- Segment.frame = CGRectMake(106,208,280,30);
-}
-
-- (void)iPadPortraitLayout
-{
- OutputLabel.frame = CGRectMake(328,383,113,21);
- Output.frame = CGRectMake(244,423,280,44);
-
- PositionLabel.frame = CGRectMake(264,499,241,21);
-
- ValueLabel.frame = CGRectMake(249,538,58,21);
- Value.frame = CGRectMake(321,534,83,30);
-
- Stepper.frame = CGRectMake(430,535,94,27);
- Slider.frame = CGRectMake(242,576,284,23);
- Segment.frame = CGRectMake(242,612,280,30);
-}
-
-- (void)iPadLandscapeLayout
-{
- OutputLabel.frame = CGRectMake(456,255,113,21);
- Output.frame = CGRectMake(372,295,280,44);
-
- PositionLabel.frame = CGRectMake(392,371,241,21);
-
- ValueLabel.frame = CGRectMake(377,410,58,21);
- Value.frame = CGRectMake(449,406,83,30);
-
- Stepper.frame = CGRectMake(558,407,94,27);
- Slider.frame = CGRectMake(370,448,284,23);
- Segment.frame = CGRectMake(372,484,280,30);
-}
-
-- (void)manualLayout
-{
- CGRect rect = [[UIScreen mainScreen] bounds];
-
- if (UIDeviceOrientationIsLandscape(self.interfaceOrientation)) {
- if (rect.size.height >= 1024) {
- [self iPadLandscapeLayout];
- } else if (rect.size.height >= 568) {
- [self iPhone5LandscapeLayout];
- } else {
- [self iPhone4SLandscapeLayout];
- }
- } else {
- if (rect.size.height >= 1024) {
- [self iPadPortraitLayout];
- } else if (rect.size.height >= 568) {
- [self iPhone5PortraitLayout];
- } else {
- [self iPhone4SPortraitLayout];
- }
- }
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
- // Do any additional setup after loading the view from its nib.
-
- for (int i = 0; i < 4; i++)
- value[i] = 90;
-
- Value.delegate = self;
-
- [rfduino setDelegate:self];
-
- UIColor *start = [UIColor colorWithRed:58/255.0 green:108/255.0 blue:183/255.0 alpha:0.15];
- UIColor *stop = [UIColor colorWithRed:58/255.0 green:108/255.0 blue:183/255.0 alpha:0.45];
-
- CAGradientLayer *gradient = [CAGradientLayer layer];
- //gradient.frame = [self.view bounds];
- gradient.frame = CGRectMake(0, 0, 1024, 1024);
- gradient.colors = [NSArray arrayWithObjects:(id)start.CGColor, (id)stop.CGColor, nil];
- [self.view.layer insertSublayer:gradient atIndex:0];
-
- UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc]
- initWithTarget:self
- action:@selector(dismissKeyboard)];
-
- [tap setCancelsTouchesInView:NO];
- [self.view addGestureRecognizer:tap];
-
- output = 0;
- [self updateUI];
-}
-
-- (void)dismissKeyboard {
- [Value endEditing:YES];
-}
-
-- (void)viewDidLayoutSubviews {
- [self manualLayout];
-}
-
-- (void)willAnimateRotationToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration
-{
- [self manualLayout];
-}
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-}
-
-- (IBAction)disconnect:(id)sender
-{
- NSLog(@"disconnect pressed");
-
- [rfduino disconnect];
-}
-
-- (void)updateUI
-{
- int val = value[output];
-
- NSLog(@"updateUI - output=%d, value=%d", output, val);
-
- Output.selectedSegmentIndex = output;
-
- Value.text = [[NSString alloc] initWithFormat:@"%d", val];
-
- Stepper.value = val;
-
- Slider.value = val;
- //[Slider setValue:val animated:YES];
-
- if (val == 0) {
- Segment.selectedSegmentIndex = 0;
- } else if (val == 90) {
- Segment.selectedSegmentIndex = 1;
- } else if (val == 180) {
- Segment.selectedSegmentIndex = 2;
- } else {
- Segment.selectedSegmentIndex = -1;
- }
-}
-
-- (void)updateServo
-{
- // the sketch allows multiple servos to be updated at the same time
- int servo = 1 << (1 + output);
-
- int val = value[output];
-
- if (val == 180) {
- val = 179;
- }
-
- NSLog(@"updateServo - output=%d, servo=%d, value=%d", output, servo, val);
-
- uint8_t bytes[] = { servo, val };
-
- NSData* data = [NSData dataWithBytes:(void*)&bytes length:2];
- [rfduino send:data];
-}
-
-- (IBAction)outputSegmentValueChanged:(id)sender {
- output = Output.selectedSegmentIndex;
-
- [self updateUI];
-}
-
-- (IBAction)textFieldEditingDidEnd:(id)sender {
- int val = Value.text.intValue;
-
- if (val < 0) {
- val = 0;
- } else if (val > 180) {
- val = 180;
- }
-
- value[output] = val;
-
- [self updateUI];
- [self updateServo];
-}
-
-- (IBAction)stepperValueChanged:(id)sender {
- value[output] = Stepper.value;
-
- [self updateUI];
- [self updateServo];
-}
-
-- (IBAction)sliderTouchUpInside:(id)sender {
- value[output] = Slider.value;
-
- [self updateUI];
- [self updateServo];
-}
-
-- (IBAction)segmentValueChanged:(id)sender {
- int val = value[output];
-
- if (Segment.selectedSegmentIndex == 0) {
- val = 0;
- } else if (Segment.selectedSegmentIndex == 1) {
- val = 90;
- } else if (Segment.selectedSegmentIndex == 2) {
- val = 180;
- }
-
- value[output] = val;
-
- [self updateUI];
- [self updateServo];
-}
-
-- (BOOL)textFieldShouldReturn:(UITextField *)textField
-{
- NSLog(@"textFieldShouldReturn");
- [textField resignFirstResponder];
- return YES;
-}
-
-@end
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/AppViewController.xib b/iPhone Apps/rfduinoServo/rfduinoServo/AppViewController.xib
deleted file mode 100755
index 92eafa1..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo/AppViewController.xib
+++ /dev/null
@@ -1,879 +0,0 @@
-
-
-
- 1552
- 12E55
- 3084
- 1187.39
- 626.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 2083
-
-
- IBProxyObject
- IBUILabel
- IBUISegmentedControl
- IBUISlider
- IBUIStepper
- IBUITextField
- IBUIView
- IBUIViewController
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 301
- {{20, 59}, {280, 44}}
-
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 4
- 0
-
- A
- B
- C
- D
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {0, 0}
- {0, 0}
- {0, 0}
- {0, 0}
-
-
-
-
-
-
-
-
-
-
- 301
- {{25, 175}, {58, 21}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Value:
-
- 1
- MCAwIDAAA
- darkTextColor
-
-
- 0
-
- 1
- 17
-
-
- Helvetica
- 17
- 16
-
- NO
-
-
-
- 301
- {{18, 212}, {284, 23}}
-
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 0
- 0
- 90
- 180
-
-
-
- 301
- {{20, 248}, {280, 30}}
-
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 2
- 3
- 0
-
- 0
- 90
- 180
-
-
-
-
-
-
-
-
-
-
-
-
- {0, 0}
- {0, 0}
- {0, 0}
-
-
-
-
-
-
-
-
-
- 301
- {{97, 171}, {83, 30}}
-
-
- _NS:9
- NO
- YES
- IBCocoaTouchFramework
- 0
-
- 3
-
- 3
- MAA
-
- 2
-
-
- YES
- 17
-
- 2
- IBCocoaTouchFramework
-
-
- 1
- 14
-
-
- Helvetica
- 14
- 16
-
-
-
-
- 301
- {{40, 136}, {241, 21}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Servo Position (0-180 degrees):
-
-
- 0
-
-
- NO
-
-
-
- 301
- {{206, 172}, {94, 27}}
-
-
- _NS:9
- NO
- YES
- IBCocoaTouchFramework
- 0
- 0
- 90
- 180
-
-
-
- 301
- {{104, 20}, {113, 21}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Servo Output:
-
-
- 0
-
-
- NO
-
-
- {{0, 20}, {320, 460}}
-
-
-
- 3
- MQA
-
-
-
-
- IBUIScreenMetrics
-
- YES
-
-
-
-
-
- {320, 480}
- {480, 320}
-
-
- IBCocoaTouchFramework
- Retina 3.5 Full Screen
- 0
-
- IBCocoaTouchFramework
-
-
-
- 292
- {320, 480}
- _NS:9
-
- 3
- MQA
-
-
- IBCocoaTouchFramework
-
-
-
-
- 1
- 1
-
-
- IBCocoaTouchFramework
- NO
-
-
-
- 292
-
-
-
- 301
- {{244, 423}, {280, 44}}
-
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 4
- 0
-
- A
- B
- C
- D
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- {0, 0}
- {0, 0}
- {0, 0}
- {0, 0}
-
-
-
-
-
-
-
-
-
-
- 301
- {{249, 538}, {58, 21}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Value:
-
-
- 0
-
-
- NO
-
-
-
- 301
- {{242, 576}, {284, 23}}
-
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 0
- 0
- 90
- 180
-
-
-
- 301
- {{244, 612}, {280, 30}}
-
- _NS:9
- NO
- IBCocoaTouchFramework
- 2
- 3
- 0
-
- 0
- 90
- 180
-
-
-
-
-
-
-
-
-
-
-
-
- {0, 0}
- {0, 0}
- {0, 0}
-
-
-
-
-
-
-
-
-
- 301
- {{321, 534}, {83, 30}}
-
-
- _NS:9
- NO
- YES
- IBCocoaTouchFramework
- 0
-
- 3
-
- 3
- MAA
-
-
- YES
- 17
-
- 2
- IBCocoaTouchFramework
-
-
-
-
-
-
- 301
- {{264, 499}, {241, 21}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Servo Position (0-180 degrees):
-
-
- 0
-
-
- NO
-
-
-
- 301
- {{430, 535}, {94, 27}}
-
-
- _NS:9
- NO
- YES
- IBCocoaTouchFramework
- 0
- 0
- 90
- 180
-
-
-
- 301
- {{328, 383}, {113, 21}}
-
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- Servo Output:
-
-
- 0
-
-
- NO
-
-
- {768, 1024}
-
-
- _NS:9
-
- 3
- MQA
-
-
-
- IBUISimulatedFreeformSizeMetricsSentinel
- Freeform
-
- IBCocoaTouchFramework
-
-
-
-
-
-
- view
-
-
-
- 3
-
-
-
- Output
-
-
-
- 305
-
-
-
- Slider
-
-
-
- 302
-
-
-
- Segment
-
-
-
- 301
-
-
-
- Stepper
-
-
-
- 303
-
-
-
- Value
-
-
-
- 516
-
-
-
- ValueLabel
-
-
-
- 517
-
-
-
- PositionLabel
-
-
-
- 518
-
-
-
- OutputLabel
-
-
-
- 519
-
-
-
- sliderTouchUpInside:
-
-
- 7
-
- 310
-
-
-
- segmentValueChanged:
-
-
- 13
-
- 311
-
-
-
- outputSegmentValueChanged:
-
-
- 13
-
- 306
-
-
-
- textFieldEditingDidEnd:
-
-
- 19
-
- 313
-
-
-
- stepperValueChanged:
-
-
- 13
-
- 309
-
-
-
- outputSegmentValueChanged:
-
-
- 13
-
- 546
-
-
-
- sliderTouchUpInside:
-
-
- 7
-
- 548
-
-
-
- segmentValueChanged:
-
-
- 13
-
- 547
-
-
-
- textFieldEditingDidEnd:
-
-
- 19
-
- 544
-
-
-
- stepperValueChanged:
-
-
- 13
-
- 545
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 241
-
-
-
-
-
- 236
-
-
-
-
- 265
-
-
-
-
-
- 118
-
-
-
-
-
- 199
-
-
-
-
- 271
-
-
-
-
-
- 253
-
-
-
-
- 276
-
-
-
-
- 520
-
-
-
-
- 521
-
-
-
-
- 522
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 536
-
-
-
-
- 537
-
-
-
-
- 538
-
-
-
-
- 539
-
-
-
-
- 540
-
-
-
-
- 541
-
-
-
-
- 542
-
-
-
-
- 543
-
-
-
-
-
-
- AppViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 548
-
-
- 0
- IBCocoaTouchFramework
- YES
- 3
- 2083
-
-
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/Default-568h@2x.png b/iPhone Apps/rfduinoServo/rfduinoServo/Default-568h@2x.png
deleted file mode 100755
index 0891b7a..0000000
Binary files a/iPhone Apps/rfduinoServo/rfduinoServo/Default-568h@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/Default.png b/iPhone Apps/rfduinoServo/rfduinoServo/Default.png
deleted file mode 100755
index 4c8ca6f..0000000
Binary files a/iPhone Apps/rfduinoServo/rfduinoServo/Default.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/Default@2x.png b/iPhone Apps/rfduinoServo/rfduinoServo/Default@2x.png
deleted file mode 100755
index 35b84cf..0000000
Binary files a/iPhone Apps/rfduinoServo/rfduinoServo/Default@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/en.lproj/InfoPlist.strings b/iPhone Apps/rfduinoServo/rfduinoServo/en.lproj/InfoPlist.strings
deleted file mode 100755
index 477b28f..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Localized versions of Info.plist keys */
-
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/main.m b/iPhone Apps/rfduinoServo/rfduinoServo/main.m
deleted file mode 100755
index d54f552..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo/main.m
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// main.m
-// rfduinoServo
-//
-// Created by Steve on 8/15/13.
-// Copyright (c) 2013 OpenSourceRF. All rights reserved.
-//
-
-#import
-
-#import "AppDelegate.h"
-
-int main(int argc, char *argv[])
-{
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/rfduinoServo-Info.plist b/iPhone Apps/rfduinoServo/rfduinoServo/rfduinoServo-Info.plist
deleted file mode 100755
index 2b4e136..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo/rfduinoServo-Info.plist
+++ /dev/null
@@ -1,59 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleDisplayName
- ${PRODUCT_NAME}
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIcons
-
- CFBundlePrimaryIcon
-
- CFBundleIconFiles
-
- icon.png
- icon@2x.png
- icon-72.png
- icon-144.png
-
-
-
- CFBundleIdentifier
- com.OpenSourceRF.${PRODUCT_NAME:rfc1034identifier}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${PRODUCT_NAME}
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
- LSRequiresIPhoneOS
-
- UIRequiredDeviceCapabilities
-
- armv7
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
- UIInterfaceOrientationPortraitUpsideDown
-
- UISupportedInterfaceOrientations~ipad
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationPortraitUpsideDown
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
-
-
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/rfduinoServo-Prefix.pch b/iPhone Apps/rfduinoServo/rfduinoServo/rfduinoServo-Prefix.pch
deleted file mode 100755
index a1a7c75..0000000
--- a/iPhone Apps/rfduinoServo/rfduinoServo/rfduinoServo-Prefix.pch
+++ /dev/null
@@ -1,14 +0,0 @@
-//
-// Prefix header for all source files of the 'rfduinoServo' target in the 'rfduinoServo' project
-//
-
-#import
-
-#ifndef __IPHONE_3_0
-#warning "This project uses features only available in iOS SDK 3.0 and later."
-#endif
-
-#ifdef __OBJC__
- #import
- #import
-#endif
diff --git a/iPhone Apps/rfduinoServo/rfduinoServo/rfduinoServo.ipa b/iPhone Apps/rfduinoServo/rfduinoServo/rfduinoServo.ipa
deleted file mode 100755
index b3cbe8f..0000000
Binary files a/iPhone Apps/rfduinoServo/rfduinoServo/rfduinoServo.ipa and /dev/null differ
diff --git a/iPhone Apps/rfduinoTemperature/icon-72.png b/iPhone Apps/rfduinoTemperature/icon-72.png
deleted file mode 100755
index fe993f0..0000000
Binary files a/iPhone Apps/rfduinoTemperature/icon-72.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoTemperature/icon.png b/iPhone Apps/rfduinoTemperature/icon.png
deleted file mode 100755
index fa2b560..0000000
Binary files a/iPhone Apps/rfduinoTemperature/icon.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoTemperature/icon@2x.png b/iPhone Apps/rfduinoTemperature/icon@2x.png
deleted file mode 100755
index 9b0e678..0000000
Binary files a/iPhone Apps/rfduinoTemperature/icon@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature.xcodeproj/project.pbxproj b/iPhone Apps/rfduinoTemperature/rfduinoTemperature.xcodeproj/project.pbxproj
deleted file mode 100755
index aa02d6e..0000000
--- a/iPhone Apps/rfduinoTemperature/rfduinoTemperature.xcodeproj/project.pbxproj
+++ /dev/null
@@ -1,357 +0,0 @@
-// !$*UTF8*$!
-{
- archiveVersion = 1;
- classes = {
- };
- objectVersion = 46;
- objects = {
-
-/* Begin PBXBuildFile section */
- AA07EB89176BF96600AB755D /* CustomCellBackground.m in Sources */ = {isa = PBXBuildFile; fileRef = AA07EB88176BF96600AB755D /* CustomCellBackground.m */; };
- AA6DEC4B16D5622100E83C0F /* QuartzCore.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AA6DEC4A16D5622100E83C0F /* QuartzCore.framework */; };
- AA981D4817825F40008342B9 /* icon.png in Resources */ = {isa = PBXBuildFile; fileRef = AA981D4717825F40008342B9 /* icon.png */; };
- AA981D4A17825FAB008342B9 /* icon-72.png in Resources */ = {isa = PBXBuildFile; fileRef = AA981D4917825FAB008342B9 /* icon-72.png */; };
- AAC427D516C9DDB500149784 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC427D416C9DDB500149784 /* UIKit.framework */; };
- AAC427D716C9DDB500149784 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC427D616C9DDB500149784 /* Foundation.framework */; };
- AAC427D916C9DDB500149784 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC427D816C9DDB500149784 /* CoreGraphics.framework */; };
- AAC427DF16C9DDB500149784 /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = AAC427DD16C9DDB500149784 /* InfoPlist.strings */; };
- AAC427E116C9DDB500149784 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC427E016C9DDB500149784 /* main.m */; };
- AAC427E716C9DDB500149784 /* Default.png in Resources */ = {isa = PBXBuildFile; fileRef = AAC427E616C9DDB500149784 /* Default.png */; };
- AAC427E916C9DDB500149784 /* Default@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AAC427E816C9DDB500149784 /* Default@2x.png */; };
- AAC427EB16C9DDB500149784 /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AAC427EA16C9DDB500149784 /* Default-568h@2x.png */; };
- AAC427F416C9DDE600149784 /* AppViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC427F216C9DDE600149784 /* AppViewController.m */; };
- AAC427F516C9DDE600149784 /* AppViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = AAC427F316C9DDE600149784 /* AppViewController.xib */; };
- AAC4280116C9DDF900149784 /* RFduino.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC427F916C9DDF900149784 /* RFduino.m */; };
- AAC4280216C9DDF900149784 /* RfduinoManager.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC427FC16C9DDF900149784 /* RfduinoManager.m */; };
- AAC4280316C9DDF900149784 /* ScanViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC427FF16C9DDF900149784 /* ScanViewController.m */; };
- AAC4280916C9DF2900149784 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = AAC4280816C9DF2900149784 /* CoreBluetooth.framework */; };
- AAC428DB16C9FE9700149784 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = AAC428DA16C9FE9700149784 /* AppDelegate.m */; };
- AAE5C84416CCA54A001005E3 /* thermometer.png in Resources */ = {isa = PBXBuildFile; fileRef = AAE5C84316CCA54A001005E3 /* thermometer.png */; };
- AAE5C87616CDCB3B001005E3 /* icon@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = AAE5C87516CDCB3B001005E3 /* icon@2x.png */; };
-/* End PBXBuildFile section */
-
-/* Begin PBXFileReference section */
- AA07EB87176BF96600AB755D /* CustomCellBackground.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CustomCellBackground.h; sourceTree = ""; };
- AA07EB88176BF96600AB755D /* CustomCellBackground.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CustomCellBackground.m; sourceTree = ""; };
- AA6DEC4A16D5622100E83C0F /* QuartzCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = QuartzCore.framework; path = System/Library/Frameworks/QuartzCore.framework; sourceTree = SDKROOT; };
- AA981D4717825F40008342B9 /* icon.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon.png; sourceTree = ""; };
- AA981D4917825FAB008342B9 /* icon-72.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon-72.png"; sourceTree = ""; };
- AAC427D016C9DDB500149784 /* rfduinoTemperature.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = rfduinoTemperature.app; sourceTree = BUILT_PRODUCTS_DIR; };
- AAC427D416C9DDB500149784 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; };
- AAC427D616C9DDB500149784 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; };
- AAC427D816C9DDB500149784 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; };
- AAC427DC16C9DDB500149784 /* rfduinoTemperature-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "rfduinoTemperature-Info.plist"; sourceTree = ""; };
- AAC427DE16C9DDB500149784 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/InfoPlist.strings; sourceTree = ""; };
- AAC427E016C9DDB500149784 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; };
- AAC427E216C9DDB500149784 /* rfduinoTemperature-Prefix.pch */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "rfduinoTemperature-Prefix.pch"; sourceTree = ""; };
- AAC427E616C9DDB500149784 /* Default.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = Default.png; sourceTree = ""; };
- AAC427E816C9DDB500149784 /* Default@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default@2x.png"; sourceTree = ""; };
- AAC427EA16C9DDB500149784 /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = ""; };
- AAC427F116C9DDE600149784 /* AppViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppViewController.h; sourceTree = ""; };
- AAC427F216C9DDE600149784 /* AppViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppViewController.m; sourceTree = ""; };
- AAC427F316C9DDE600149784 /* AppViewController.xib */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.xib; path = AppViewController.xib; sourceTree = ""; };
- AAC427F816C9DDF900149784 /* RFduino.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduino.h; sourceTree = ""; };
- AAC427F916C9DDF900149784 /* RFduino.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RFduino.m; sourceTree = ""; };
- AAC427FA16C9DDF900149784 /* RFduinoDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduinoDelegate.h; sourceTree = ""; };
- AAC427FB16C9DDF900149784 /* RfduinoManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RfduinoManager.h; sourceTree = ""; };
- AAC427FC16C9DDF900149784 /* RfduinoManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = RfduinoManager.m; sourceTree = ""; };
- AAC427FD16C9DDF900149784 /* RFduinoManagerDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RFduinoManagerDelegate.h; sourceTree = ""; };
- AAC427FE16C9DDF900149784 /* ScanViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ScanViewController.h; sourceTree = ""; };
- AAC427FF16C9DDF900149784 /* ScanViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ScanViewController.m; sourceTree = ""; };
- AAC4280816C9DF2900149784 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; };
- AAC428D916C9FE9700149784 /* AppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; };
- AAC428DA16C9FE9700149784 /* AppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; };
- AAE5C84316CCA54A001005E3 /* thermometer.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = thermometer.png; path = rfduinoTemperature/thermometer.png; sourceTree = SOURCE_ROOT; };
- AAE5C87516CDCB3B001005E3 /* icon@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "icon@2x.png"; sourceTree = ""; };
-/* End PBXFileReference section */
-
-/* Begin PBXFrameworksBuildPhase section */
- AAC427CD16C9DDB500149784 /* Frameworks */ = {
- isa = PBXFrameworksBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AA6DEC4B16D5622100E83C0F /* QuartzCore.framework in Frameworks */,
- AAC4280916C9DF2900149784 /* CoreBluetooth.framework in Frameworks */,
- AAC427D516C9DDB500149784 /* UIKit.framework in Frameworks */,
- AAC427D716C9DDB500149784 /* Foundation.framework in Frameworks */,
- AAC427D916C9DDB500149784 /* CoreGraphics.framework in Frameworks */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXFrameworksBuildPhase section */
-
-/* Begin PBXGroup section */
- AAC427C516C9DDB500149784 = {
- isa = PBXGroup;
- children = (
- AA981D4717825F40008342B9 /* icon.png */,
- AA981D4917825FAB008342B9 /* icon-72.png */,
- AAE5C87516CDCB3B001005E3 /* icon@2x.png */,
- AAC427F616C9DDF900149784 /* rfduino */,
- AAC427DA16C9DDB500149784 /* rfduinoTemperature */,
- AAC427D316C9DDB500149784 /* Frameworks */,
- AAC427D116C9DDB500149784 /* Products */,
- );
- sourceTree = "";
- };
- AAC427D116C9DDB500149784 /* Products */ = {
- isa = PBXGroup;
- children = (
- AAC427D016C9DDB500149784 /* rfduinoTemperature.app */,
- );
- name = Products;
- sourceTree = "";
- };
- AAC427D316C9DDB500149784 /* Frameworks */ = {
- isa = PBXGroup;
- children = (
- AAC4280816C9DF2900149784 /* CoreBluetooth.framework */,
- AA6DEC4A16D5622100E83C0F /* QuartzCore.framework */,
- AAC427D416C9DDB500149784 /* UIKit.framework */,
- AAC427D616C9DDB500149784 /* Foundation.framework */,
- AAC427D816C9DDB500149784 /* CoreGraphics.framework */,
- );
- name = Frameworks;
- sourceTree = "";
- };
- AAC427DA16C9DDB500149784 /* rfduinoTemperature */ = {
- isa = PBXGroup;
- children = (
- AAC427F116C9DDE600149784 /* AppViewController.h */,
- AAC427F216C9DDE600149784 /* AppViewController.m */,
- AAC427F316C9DDE600149784 /* AppViewController.xib */,
- AAE5C84316CCA54A001005E3 /* thermometer.png */,
- AAC427DB16C9DDB500149784 /* Supporting Files */,
- );
- path = rfduinoTemperature;
- sourceTree = "";
- };
- AAC427DB16C9DDB500149784 /* Supporting Files */ = {
- isa = PBXGroup;
- children = (
- AAC427DC16C9DDB500149784 /* rfduinoTemperature-Info.plist */,
- AAC427DD16C9DDB500149784 /* InfoPlist.strings */,
- AAC427E016C9DDB500149784 /* main.m */,
- AAC427E216C9DDB500149784 /* rfduinoTemperature-Prefix.pch */,
- AAC427E616C9DDB500149784 /* Default.png */,
- AAC427E816C9DDB500149784 /* Default@2x.png */,
- AAC427EA16C9DDB500149784 /* Default-568h@2x.png */,
- );
- name = "Supporting Files";
- sourceTree = "";
- };
- AAC427F616C9DDF900149784 /* rfduino */ = {
- isa = PBXGroup;
- children = (
- AAC428D916C9FE9700149784 /* AppDelegate.h */,
- AAC428DA16C9FE9700149784 /* AppDelegate.m */,
- AAC427F816C9DDF900149784 /* RFduino.h */,
- AAC427F916C9DDF900149784 /* RFduino.m */,
- AAC427FA16C9DDF900149784 /* RFduinoDelegate.h */,
- AAC427FB16C9DDF900149784 /* RfduinoManager.h */,
- AAC427FC16C9DDF900149784 /* RfduinoManager.m */,
- AAC427FD16C9DDF900149784 /* RFduinoManagerDelegate.h */,
- AAC427FE16C9DDF900149784 /* ScanViewController.h */,
- AAC427FF16C9DDF900149784 /* ScanViewController.m */,
- AA07EB87176BF96600AB755D /* CustomCellBackground.h */,
- AA07EB88176BF96600AB755D /* CustomCellBackground.m */,
- );
- name = rfduino;
- path = ../rfduino;
- sourceTree = "";
- };
-/* End PBXGroup section */
-
-/* Begin PBXNativeTarget section */
- AAC427CF16C9DDB500149784 /* rfduinoTemperature */ = {
- isa = PBXNativeTarget;
- buildConfigurationList = AAC427EE16C9DDB500149784 /* Build configuration list for PBXNativeTarget "rfduinoTemperature" */;
- buildPhases = (
- AAC427CC16C9DDB500149784 /* Sources */,
- AAC427CD16C9DDB500149784 /* Frameworks */,
- AAC427CE16C9DDB500149784 /* Resources */,
- );
- buildRules = (
- );
- dependencies = (
- );
- name = rfduinoTemperature;
- productName = rfduinoTemperature;
- productReference = AAC427D016C9DDB500149784 /* rfduinoTemperature.app */;
- productType = "com.apple.product-type.application";
- };
-/* End PBXNativeTarget section */
-
-/* Begin PBXProject section */
- AAC427C716C9DDB500149784 /* Project object */ = {
- isa = PBXProject;
- attributes = {
- LastUpgradeCheck = 0450;
- ORGANIZATIONNAME = OpenSourceRF;
- };
- buildConfigurationList = AAC427CA16C9DDB500149784 /* Build configuration list for PBXProject "rfduinoTemperature" */;
- compatibilityVersion = "Xcode 3.2";
- developmentRegion = English;
- hasScannedForEncodings = 0;
- knownRegions = (
- en,
- );
- mainGroup = AAC427C516C9DDB500149784;
- productRefGroup = AAC427D116C9DDB500149784 /* Products */;
- projectDirPath = "";
- projectRoot = "";
- targets = (
- AAC427CF16C9DDB500149784 /* rfduinoTemperature */,
- );
- };
-/* End PBXProject section */
-
-/* Begin PBXResourcesBuildPhase section */
- AAC427CE16C9DDB500149784 /* Resources */ = {
- isa = PBXResourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AAC427DF16C9DDB500149784 /* InfoPlist.strings in Resources */,
- AAC427E716C9DDB500149784 /* Default.png in Resources */,
- AAC427E916C9DDB500149784 /* Default@2x.png in Resources */,
- AAC427EB16C9DDB500149784 /* Default-568h@2x.png in Resources */,
- AAC427F516C9DDE600149784 /* AppViewController.xib in Resources */,
- AAE5C84416CCA54A001005E3 /* thermometer.png in Resources */,
- AAE5C87616CDCB3B001005E3 /* icon@2x.png in Resources */,
- AA981D4817825F40008342B9 /* icon.png in Resources */,
- AA981D4A17825FAB008342B9 /* icon-72.png in Resources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXResourcesBuildPhase section */
-
-/* Begin PBXSourcesBuildPhase section */
- AAC427CC16C9DDB500149784 /* Sources */ = {
- isa = PBXSourcesBuildPhase;
- buildActionMask = 2147483647;
- files = (
- AAC427E116C9DDB500149784 /* main.m in Sources */,
- AAC427F416C9DDE600149784 /* AppViewController.m in Sources */,
- AAC4280116C9DDF900149784 /* RFduino.m in Sources */,
- AAC4280216C9DDF900149784 /* RfduinoManager.m in Sources */,
- AAC4280316C9DDF900149784 /* ScanViewController.m in Sources */,
- AAC428DB16C9FE9700149784 /* AppDelegate.m in Sources */,
- AA07EB89176BF96600AB755D /* CustomCellBackground.m in Sources */,
- );
- runOnlyForDeploymentPostprocessing = 0;
- };
-/* End PBXSourcesBuildPhase section */
-
-/* Begin PBXVariantGroup section */
- AAC427DD16C9DDB500149784 /* InfoPlist.strings */ = {
- isa = PBXVariantGroup;
- children = (
- AAC427DE16C9DDB500149784 /* en */,
- );
- name = InfoPlist.strings;
- sourceTree = "";
- };
-/* End PBXVariantGroup section */
-
-/* Begin XCBuildConfiguration section */
- AAC427EC16C9DDB500149784 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = NO;
- 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_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- ONLY_ACTIVE_ARCH = YES;
- SDKROOT = iphoneos;
- };
- name = Debug;
- };
- AAC427ED16C9DDB500149784 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- ALWAYS_SEARCH_USER_PATHS = NO;
- CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x";
- CLANG_CXX_LIBRARY = "libc++";
- CLANG_ENABLE_OBJC_ARC = YES;
- CLANG_WARN_EMPTY_BODY = YES;
- CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
- "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer";
- COPY_PHASE_STRIP = YES;
- GCC_C_LANGUAGE_STANDARD = gnu99;
- GCC_WARN_ABOUT_RETURN_TYPE = YES;
- GCC_WARN_UNINITIALIZED_AUTOS = YES;
- GCC_WARN_UNUSED_VARIABLE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- OTHER_CFLAGS = "-DNS_BLOCK_ASSERTIONS=1";
- SDKROOT = iphoneos;
- VALIDATE_PRODUCT = YES;
- };
- name = Release;
- };
- AAC427EF16C9DDB500149784 /* Debug */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoTemperature/rfduinoTemperature-Prefix.pch";
- INFOPLIST_FILE = "rfduinoTemperature/rfduinoTemperature-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- PRODUCT_NAME = "$(TARGET_NAME)";
- TARGETED_DEVICE_FAMILY = 1;
- WRAPPER_EXTENSION = app;
- };
- name = Debug;
- };
- AAC427F016C9DDB500149784 /* Release */ = {
- isa = XCBuildConfiguration;
- buildSettings = {
- GCC_PRECOMPILE_PREFIX_HEADER = YES;
- GCC_PREFIX_HEADER = "rfduinoTemperature/rfduinoTemperature-Prefix.pch";
- INFOPLIST_FILE = "rfduinoTemperature/rfduinoTemperature-Info.plist";
- IPHONEOS_DEPLOYMENT_TARGET = 6.0;
- PRODUCT_NAME = "$(TARGET_NAME)";
- TARGETED_DEVICE_FAMILY = 1;
- WRAPPER_EXTENSION = app;
- };
- name = Release;
- };
-/* End XCBuildConfiguration section */
-
-/* Begin XCConfigurationList section */
- AAC427CA16C9DDB500149784 /* Build configuration list for PBXProject "rfduinoTemperature" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AAC427EC16C9DDB500149784 /* Debug */,
- AAC427ED16C9DDB500149784 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
- AAC427EE16C9DDB500149784 /* Build configuration list for PBXNativeTarget "rfduinoTemperature" */ = {
- isa = XCConfigurationList;
- buildConfigurations = (
- AAC427EF16C9DDB500149784 /* Debug */,
- AAC427F016C9DDB500149784 /* Release */,
- );
- defaultConfigurationIsVisible = 0;
- defaultConfigurationName = Release;
- };
-/* End XCConfigurationList section */
- };
- rootObject = AAC427C716C9DDB500149784 /* Project object */;
-}
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/iPhone Apps/rfduinoTemperature/rfduinoTemperature.xcodeproj/project.xcworkspace/contents.xcworkspacedata
deleted file mode 100755
index 2340ebd..0000000
--- a/iPhone Apps/rfduinoTemperature/rfduinoTemperature.xcodeproj/project.xcworkspace/contents.xcworkspacedata
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-
-
-
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/AppViewController.h b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/AppViewController.h
deleted file mode 100755
index f338782..0000000
--- a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/AppViewController.h
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-#import "RFduino.h"
-
-@interface AppViewController : UIViewController
-{
- __weak IBOutlet UILabel *label1;
- __weak IBOutlet UILabel *label2;
-}
-
-@property(strong, nonatomic) RFduino *rfduino;
-
-@end
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/AppViewController.m b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/AppViewController.m
deleted file mode 100755
index 4834060..0000000
--- a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/AppViewController.m
+++ /dev/null
@@ -1,97 +0,0 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-#import "AppViewController.h"
-
-@implementation AppViewController
-
-@synthesize rfduino;
-
-- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil
-{
- self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil];
- if (self) {
- // Custom initialization
- UIButton *backButton = [UIButton buttonWithType:101]; // left-pointing shape
- [backButton setTitle:@"Disconnect" forState:UIControlStateNormal];
- [backButton addTarget:self action:@selector(disconnect:) forControlEvents:UIControlEventTouchUpInside];
-
- UIBarButtonItem *backItem = [[UIBarButtonItem alloc] initWithCustomView:backButton];
- [[self navigationItem] setLeftBarButtonItem:backItem];
-
- [[self navigationItem] setTitle:@"RFduino Temp"];
- }
- return self;
-}
-
-- (void)viewDidLoad
-{
- [super viewDidLoad];
- // Do any additional setup after loading the view from its nib.
-
- [rfduino setDelegate:self];
-
- UIColor *start = [UIColor colorWithRed:58/255.0 green:108/255.0 blue:183/255.0 alpha:0.15];
- UIColor *stop = [UIColor colorWithRed:58/255.0 green:108/255.0 blue:183/255.0 alpha:0.45];
-
- CAGradientLayer *gradient = [CAGradientLayer layer];
- gradient.frame = [self.view bounds];
- gradient.colors = [NSArray arrayWithObjects:(id)start.CGColor, (id)stop.CGColor, nil];
- [self.view.layer insertSublayer:gradient atIndex:0];
-}
-
-- (void)didReceiveMemoryWarning
-{
- [super didReceiveMemoryWarning];
- // Dispose of any resources that can be recreated.
-}
-
-- (IBAction)disconnect:(id)sender
-{
- NSLog(@"disconnect pressed");
-
- [rfduino disconnect];
-}
-
-- (void)didReceive:(NSData *)data
-{
- NSLog(@"RecievedRX");
-
- float celsius = dataFloat(data);
- float fahrenheit = (celsius * 9 / 5) + 32;
-
- NSLog(@"c=%.2f, f=%.2f", celsius, fahrenheit);
-
- NSString* string1 = [NSString stringWithFormat:@"%.2f ºC", celsius];
- NSString* string2 = [NSString stringWithFormat:@"%.2f ºF", fahrenheit];
-
- [label1 setText:string1];
- [label2 setText:string2];
-}
-
-@end
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/AppViewController.xib b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/AppViewController.xib
deleted file mode 100755
index 1a0589b..0000000
--- a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/AppViewController.xib
+++ /dev/null
@@ -1,540 +0,0 @@
-
-
-
- 1552
- 12E55
- 3084
- 1187.39
- 626.00
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- 2083
-
-
- IBNSLayoutConstraint
- IBProxyObject
- IBUIImageView
- IBUILabel
- IBUIView
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
- PluginDependencyRecalculationVersion
-
-
-
-
- IBFilesOwner
- IBCocoaTouchFramework
-
-
- IBFirstResponder
- IBCocoaTouchFramework
-
-
-
- 274
-
-
-
- 292
- {{120, 246}, {180, 53}}
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- ºF
-
- 1
- MCAwIDEAA
-
-
-
- 3
- MQA
-
- {4, 4}
- 0
- 1
-
- Helvetica
- Helvetica
- 0
- 35
-
-
- Helvetica
- 35
- 16
-
- NO
-
-
-
- 292
- {{120, 185}, {180, 53}}
-
- _NS:9
- NO
- YES
- 7
- NO
- IBCocoaTouchFramework
- ºC
-
-
-
- {4, 4}
- 0
- 1
-
-
- NO
-
-
-
- 292
- {{20, 26}, {108, 496}}
-
-
- _NS:9
- 1
- NO
- IBCocoaTouchFramework
-
- NSImage
- thermometer.png
-
-
-
- {{0, 20}, {320, 548}}
-
-
-
- 3
- MQA
-
- 2
-
-
-
-
- IBUIScreenMetrics
-
- YES
-
-
-
-
-
- {320, 568}
- {568, 320}
-
-
- IBCocoaTouchFramework
- Retina 4 Full Screen
- 2
-
- IBCocoaTouchFramework
-
-
-
-
-
-
- view
-
-
-
- 3
-
-
-
- label2
-
-
-
- 88
-
-
-
- label1
-
-
-
- 89
-
-
-
-
-
- 0
-
-
-
-
-
- 1
-
-
-
-
- 3
- 0
-
- 4
- 1
-
- 8
-
- 1000
-
- 6
- 24
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 5
- 0
-
- 5
- 1
-
- 0.0
-
- 1000
-
- 6
- 24
- 2
-
-
-
- 3
- 0
-
- 3
- 1
-
- 185
-
- 1000
-
- 3
- 9
- 3
-
-
-
- 6
- 0
-
- 6
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
- 10
- 0
-
- 10
- 1
-
- 0.0
-
- 1000
-
- 5
- 22
- 2
-
-
-
- 5
- 0
-
- 5
- 1
-
- 20
-
- 1000
-
- 8
- 29
- 3
-
-
-
-
-
-
-
-
- -1
-
-
- File's Owner
-
-
- -2
-
-
-
-
- 28
-
-
-
-
- 8
- 0
-
- 0
- 1
-
- 53
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 29
-
-
-
-
- 42
-
-
-
-
- 45
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 108
-
- 1000
-
- 3
- 9
- 1
-
-
-
- 8
- 0
-
- 0
- 1
-
- 496
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 62
-
-
-
-
- 63
-
-
-
-
- 64
-
-
-
-
- 65
-
-
-
-
- 70
-
-
-
-
- 7
- 0
-
- 0
- 1
-
- 180
-
- 1000
-
- 3
- 9
- 1
-
-
-
- 8
- 0
-
- 0
- 1
-
- 53
-
- 1000
-
- 3
- 9
- 1
-
-
-
-
-
- 75
-
-
-
-
- 76
-
-
-
-
- 79
-
-
-
-
- 83
-
-
-
-
- 86
-
-
-
-
- 87
-
-
-
-
-
-
- AppViewController
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- UIResponder
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
-
-
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
- com.apple.InterfaceBuilder.IBCocoaTouchPlugin
-
-
-
-
-
- 89
-
-
- 0
- IBCocoaTouchFramework
- YES
- 3
-
- thermometer.png
- {1590, 6130}
-
- YES
- 2083
-
-
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/Default-568h@2x.png b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/Default-568h@2x.png
deleted file mode 100755
index 0891b7a..0000000
Binary files a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/Default-568h@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/Default.png b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/Default.png
deleted file mode 100755
index 4c8ca6f..0000000
Binary files a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/Default.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/Default@2x.png b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/Default@2x.png
deleted file mode 100755
index 35b84cf..0000000
Binary files a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/Default@2x.png and /dev/null differ
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/en.lproj/InfoPlist.strings b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/en.lproj/InfoPlist.strings
deleted file mode 100755
index 477b28f..0000000
--- a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/en.lproj/InfoPlist.strings
+++ /dev/null
@@ -1,2 +0,0 @@
-/* Localized versions of Info.plist keys */
-
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/main.m b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/main.m
deleted file mode 100755
index 0099667..0000000
--- a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/main.m
+++ /dev/null
@@ -1,18 +0,0 @@
-//
-// main.m
-// rfduinoTemperature
-//
-// Created by Steve on 2/11/13.
-// Copyright (c) 2013 RF Digital. All rights reserved.
-//
-
-#import
-
-#import "AppDelegate.h"
-
-int main(int argc, char *argv[])
-{
- @autoreleasepool {
- return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
- }
-}
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/rfduinoTemperature-Info.plist b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/rfduinoTemperature-Info.plist
deleted file mode 100755
index a357d14..0000000
--- a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/rfduinoTemperature-Info.plist
+++ /dev/null
@@ -1,50 +0,0 @@
-
-
-
-
- CFBundleDevelopmentRegion
- en
- CFBundleDisplayName
- RFduino Temperature
- CFBundleExecutable
- ${EXECUTABLE_NAME}
- CFBundleIcons
-
- CFBundlePrimaryIcon
-
- CFBundleIconFiles
-
- icon.png
- icon-72.png
- icon@2x.png
-
-
-
- CFBundleIdentifier
- com.OpenSourceRF.${PRODUCT_NAME:rfc1034identifier}
- CFBundleInfoDictionaryVersion
- 6.0
- CFBundleName
- ${PRODUCT_NAME}
- CFBundlePackageType
- APPL
- CFBundleShortVersionString
- 1.0
- CFBundleSignature
- ????
- CFBundleVersion
- 1.0
- LSRequiresIPhoneOS
-
- UIRequiredDeviceCapabilities
-
- armv7
-
- UISupportedInterfaceOrientations
-
- UIInterfaceOrientationPortrait
- UIInterfaceOrientationLandscapeLeft
- UIInterfaceOrientationLandscapeRight
-
-
-
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/rfduinoTemperature-Prefix.pch b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/rfduinoTemperature-Prefix.pch
deleted file mode 100755
index fe38e4c..0000000
--- a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/rfduinoTemperature-Prefix.pch
+++ /dev/null
@@ -1,14 +0,0 @@
-//
-// Prefix header for all source files of the 'rfduinoTemperature' target in the 'rfduinoTemperature' project
-//
-
-#import
-
-#ifndef __IPHONE_3_0
-#warning "This project uses features only available in iOS SDK 3.0 and later."
-#endif
-
-#ifdef __OBJC__
- #import
- #import
-#endif
diff --git a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/thermometer.png b/iPhone Apps/rfduinoTemperature/rfduinoTemperature/thermometer.png
deleted file mode 100755
index 699d739..0000000
Binary files a/iPhone Apps/rfduinoTemperature/rfduinoTemperature/thermometer.png and /dev/null differ
diff --git a/libraries/RFduinoBLE/RFduinoBLE.cpp b/libraries/RFduinoBLE/RFduinoBLE.cpp
old mode 100755
new mode 100644
index f3ee3f7..da28847
--- a/libraries/RFduinoBLE/RFduinoBLE.cpp
+++ b/libraries/RFduinoBLE/RFduinoBLE.cpp
@@ -31,18 +31,57 @@ volatile int& RFduinoBLEClass::radioActive = RFduinoBLE_radioActive;
RFduinoBLEClass::RFduinoBLEClass()
{
+ ::RFduinoBLE_used = 1;
+
+ customUUID = "";
deviceName = "RFduino";
advertisementData = "sketch";
+ iBeacon = false;
+ // iBeacon Proximity UUID
+ uint8_t uuid[16] = {0xE2, 0xC5, 0x6D, 0xB5, 0xDF, 0xFB, 0x48, 0xD2, 0xB0, 0x60, 0xD0, 0xF5, 0xA7, 0x10, 0x96, 0xE0};
+ memcpy(iBeaconUUID, uuid, sizeof(iBeaconUUID));
+ iBeaconMajor = 0;
+ iBeaconMinor = 0;
+ iBeaconMeasuredPower = 0xC5;
advertisementInterval = 80;
txPowerLevel = +4;
+ connectable = true;
}
int RFduinoBLEClass::begin()
{
+ // declared in variant.h
+ extern bool override_uart_limit;
+
+ if (! override_uart_limit)
+ {
+ if (UART0_State != UART0_State_NotStarted && UART0_BaudRate() > 9600)
+ {
+ const char *error = "BLE + UART > 9600 baud not permitted due to critical BLE timing requirements.\r\n"
+ "To override, add: override_uart_limit = true; to the top of setup() in your sketch.";
+
+ // attempt to notify user of error condition
+ const char *p = error;
+ while (*p)
+ UART0_TX(*p++);
+
+ // don't continue
+ while (1)
+ ;
+ }
+ }
+
+ RFduinoBLE_custom_uuid = customUUID;
RFduinoBLE_device_name = deviceName;
RFduinoBLE_advertisement_data = advertisementData;
+ RFduinoBLE_ibeacon = iBeacon;
+ memcpy(RFduinoBLE_ibeacon_uuid, iBeaconUUID, sizeof(RFduinoBLE_ibeacon_uuid));
+ RFduinoBLE_ibeacon_major = iBeaconMajor;
+ RFduinoBLE_ibeacon_minor = iBeaconMinor;
+ RFduinoBLE_ibeacon_measured_power = iBeaconMeasuredPower;
RFduinoBLE_advertisement_interval = advertisementInterval;
RFduinoBLE_tx_power_level = txPowerLevel;
+ RFduinoBLE_connectable = connectable;
return RFduinoBLE_begin();
}
@@ -77,4 +116,14 @@ bool RFduinoBLEClass::sendFloat(float data)
return RFduinoBLE_send((char*)&data, sizeof(float));
}
+void RFduinoBLEClass::updateConnInterval(int min_conn_interval_ms, int max_conn_interval_ms)
+{
+ RFduinoBLE_update_conn_interval(min_conn_interval_ms, max_conn_interval_ms);
+}
+
+int RFduinoBLEClass::getConnInterval(void)
+{
+ return RFduinoBLE_get_conn_interval();
+}
+
RFduinoBLEClass RFduinoBLE;
diff --git a/libraries/RFduinoBLE/RFduinoBLE.h b/libraries/RFduinoBLE/RFduinoBLE.h
old mode 100755
new mode 100644
index 07f5a4b..f71940a
--- a/libraries/RFduinoBLE/RFduinoBLE.h
+++ b/libraries/RFduinoBLE/RFduinoBLE.h
@@ -36,18 +36,32 @@
class RFduinoBLEClass
{
public:
+ // default "" (previous fixed RFduino uuid)
+ const char *customUUID;
+
// default "RFduino"
const char *deviceName;
// default "sketch"
const char *advertisementData;
+ bool iBeacon;
+ uint8_t iBeaconUUID[16];
+ unsigned short iBeaconMajor;
+ unsigned short iBeaconMinor;
+ // default 2's complement iBeacon Power Measurement at 1 meter (default is 0xC5 = -59dBm)
+ unsigned char iBeaconMeasuredPower;
+
// in ms (converted to 0.625ms units) - range 20ms to 10.24s - default 80ms
int advertisementInterval;
// -20 dBm to +4 dBm - default +4 dBm
int txPowerLevel;
+ // default true (false = nonconnectable advertising)
+ // nonconnectable forces minimum of 100ms advertisement_interval
+ bool connectable;
+
// true if the radio is active (or about to become active), false if not
static volatile int& radioActive;
@@ -63,6 +77,12 @@ class RFduinoBLEClass
bool sendByte(uint8_t data);
bool sendInt(int data);
bool sendFloat(float data);
+
+ // request central role use a different connection interval in the given range
+ // the central role may reject the request (or even pick a value outside the range)
+ void updateConnInterval(int min_conn_interval_ms, int max_conn_interval_ms);
+
+ int getConnInterval(void);
};
extern RFduinoBLEClass RFduinoBLE;
diff --git a/libraries/RFduinoBLE/examples/AdvertisementContinuous/AdvertisementContinuous.ino b/libraries/RFduinoBLE/examples/AdvertisementContinuous/AdvertisementContinuous.ino
old mode 100755
new mode 100644
index 380c123..dc34b2c
--- a/libraries/RFduinoBLE/examples/AdvertisementContinuous/AdvertisementContinuous.ino
+++ b/libraries/RFduinoBLE/examples/AdvertisementContinuous/AdvertisementContinuous.ino
@@ -3,6 +3,32 @@ The sketch demonstrates how to do continuous Bluetooth Low Energy 4
Advertisement with the RFduino.
*/
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
#include
// pin 3 on the RGB shield is the green led
@@ -13,7 +39,9 @@ void setup() {
pinMode(led, OUTPUT);
// this is the data we want to appear in the advertisement
- // (the deviceName length plus the advertisement length must be <= 18 bytes
+ // (if the deviceName and advertisementData are too long to fix into the 31 byte
+ // ble advertisement packet, then the advertisementData is truncated first down to
+ // a single byte, then it will truncate the deviceName)
RFduinoBLE.advertisementData = "data";
// start the BLE stack
diff --git a/libraries/RFduinoBLE/examples/AdvertisementInterval/AdvertisementInterval.ino b/libraries/RFduinoBLE/examples/AdvertisementInterval/AdvertisementInterval.ino
old mode 100755
new mode 100644
index afc02ea..a158ea2
--- a/libraries/RFduinoBLE/examples/AdvertisementInterval/AdvertisementInterval.ino
+++ b/libraries/RFduinoBLE/examples/AdvertisementInterval/AdvertisementInterval.ino
@@ -5,6 +5,32 @@ Advertisement transmission interval.
Faster iterval = higher power consumption = lower connection latency
*/
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
#include
// pin 3 on the RGB shield is the green led
@@ -18,8 +44,9 @@ void setup() {
pinMode(led, OUTPUT);
// this is the data we want to appear in the advertisement
- // (the deviceName length plus the advertisement length must be <= 18 bytes)
- // (a leading hypen causes the iphone to use instanteous rssi instead of n sample averaging)
+ // (if the deviceName and advertisementData are too long to fix into the 31 byte
+ // ble advertisement packet, then the advertisementData is truncated first down to
+ // a single byte, then it will truncate the deviceName)
RFduinoBLE.advertisementData = "-data";
// change the advertisement interval
diff --git a/libraries/RFduinoBLE/examples/AdvertisementPeriodic/AdvertisementPeriodic.ino b/libraries/RFduinoBLE/examples/AdvertisementPeriodic/AdvertisementPeriodic.ino
old mode 100755
new mode 100644
index f0f4b97..2f9a0ee
--- a/libraries/RFduinoBLE/examples/AdvertisementPeriodic/AdvertisementPeriodic.ino
+++ b/libraries/RFduinoBLE/examples/AdvertisementPeriodic/AdvertisementPeriodic.ino
@@ -7,6 +7,32 @@ can be woken up by pressing Button 1, at which time the device will
advertise again.
*/
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
#include
// pin 3 on the RGB shield is the green led
@@ -21,7 +47,9 @@ int duration = SECONDS(5);
void advertise(const char *data, uint32_t ms)
{
// this is the data we want to appear in the advertisement
- // (the deviceName length plus the advertisement length must be <= 18 bytes
+ // (if the deviceName and advertisementData are too long to fix into the 31 byte
+ // ble advertisement packet, then the advertisementData is truncated first down to
+ // a single byte, then it will truncate the deviceName)
RFduinoBLE.advertisementData = data;
// start the BLE stack
@@ -55,7 +83,7 @@ void loop()
digitalWrite(led, LOW);
// button used to wake up the RFduino (when button 1 is pressed, the RFduino will restart advertising)
- pinMode(button, INPUT_PULLUP);
+ pinMode(button, INPUT);
RFduino_pinWake(5, HIGH);
// wait indefinitely in ultra low power and wake up on button 1 press
diff --git a/libraries/RFduinoBLE/examples/AdvertisementRaw/AdvertisementRaw.ino b/libraries/RFduinoBLE/examples/AdvertisementRaw/AdvertisementRaw.ino
new file mode 100644
index 0000000..ae7cb9b
--- /dev/null
+++ b/libraries/RFduinoBLE/examples/AdvertisementRaw/AdvertisementRaw.ino
@@ -0,0 +1,97 @@
+/*
+Demonstrates advanced raw access to the advertisement and scan response packets.
+
+This example only applies if you have a specific need for raw access to the advertisement
+packet. This is for advanced use only, as the RFduino will not advertise is the packet
+is invalid.
+*/
+
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include
+
+// the advertisement packet is composed of a series of variable length blocks, that can appear in any order.
+// each block starts with a length byte, followed by a type byte, followed by the data.
+// the payload cannot exceed 31 bytes.
+
+uint8_t advdata[] =
+{
+ 0x05, // length
+ 0x09, // complete local name type
+ 0x41, // 'A'
+ 0x42, // 'B'
+ 0x43, // 'C'
+ 0x44, // 'D'
+
+ 0x02, // length
+ 0x01, // flags type
+ 0x06, // le general discovery mode | br edr not supported
+
+ 0x02, // length
+ 0x0A, // tx power level
+ 0x04, // +4dBm
+
+ // if this variable block is not included, the RFduino iPhone apps won't see the device
+ 0x03, // length
+ 0x03, // 16 bit service uuid (complete)
+ 0x20, // uuid low
+ 0x22, // uuid hi
+};
+
+// pin 3 on the RGB shield is the green led
+int led = 3;
+
+void setup() {
+ // led used to indicate that the RFduino is advertising
+ pinMode(led, OUTPUT);
+
+ RFduinoBLE_advdata = advdata;
+ RFduinoBLE_advdata_len = sizeof(advdata);
+
+ // uncomment for nonconnectable advertising
+ // (nonconnectable forces a minimum 100ms advertisement_interval, >= 100ms intervals are okay)
+ // RFduinoBLE.connectable = false;
+
+ // start the BLE stack
+ RFduinoBLE.begin();
+}
+
+void loop() {
+ // switch to lower power mode
+ RFduino_ULPDelay(INFINITE);
+}
+
+void RFduinoBLE_onAdvertisement(bool start)
+{
+ // turn the green led on if we start advertisement, and turn it
+ // off if we stop advertisement
+
+ if (start)
+ digitalWrite(led, HIGH);
+ else
+ digitalWrite(led, LOW);
+}
diff --git a/libraries/RFduinoBLE/examples/AdvertisementRawMaxDeviceName/AdvertisementRawMaxDeviceName.ino b/libraries/RFduinoBLE/examples/AdvertisementRawMaxDeviceName/AdvertisementRawMaxDeviceName.ino
new file mode 100644
index 0000000..6d6b9e6
--- /dev/null
+++ b/libraries/RFduinoBLE/examples/AdvertisementRawMaxDeviceName/AdvertisementRawMaxDeviceName.ino
@@ -0,0 +1,111 @@
+/*
+Demonstrates advanced raw access to the advertisement and scan response packets.
+
+This example only applies if you have a specific need for raw access to the advertisement
+packet. This is for advanced use only, as the RFduino will not advertise is the packet
+is invalid.
+*/
+
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include
+
+// the advertisement packet is composed of a series of variable length blocks, that can appear in any order.
+// each block starts with a length byte, followed by a type byte, followed by the data.
+// the payload cannot exceed 31 bytes.
+
+// Note: since the RFduino UUID is missing from the advertisement packet, the RFduino iPhone apps will not
+// be able to see this advertisement.
+
+uint8_t advdata[] =
+{
+ 30, // length
+ 0x09, // complete local name type
+ 0x41, // 'A'
+ 0x42, // 'B'
+ 0x43, // 'C'
+ 0x44, // 'D'
+ 0x45, // 'E'
+ 0x46, // 'F'
+ 0x47, // 'G'
+ 0x48, // 'H'
+ 0x49, // 'I'
+ 0x4A, // 'J'
+ 0x4B, // 'K'
+ 0x4C, // 'L'
+ 0x4D, // 'M'
+ 0x4E, // 'N'
+ 0x4F, // 'O'
+ 0x50, // 'P'
+ 0x51, // 'Q'
+ 0x52, // 'R'
+ 0x53, // 'S'
+ 0x54, // 'T'
+ 0x55, // 'U'
+ 0x56, // 'V'
+ 0x57, // 'W'
+ 0x58, // 'X'
+ 0x59, // 'Y'
+ 0x5A, // 'Z'
+ 0x30, // '1'
+ 0x31, // '2'
+ 0x32, // '3'
+};
+
+// pin 3 on the RGB shield is the green led
+int led = 3;
+
+void setup() {
+ // led used to indicate that the RFduino is advertising
+ pinMode(led, OUTPUT);
+
+ RFduinoBLE_advdata = advdata;
+ RFduinoBLE_advdata_len = sizeof(advdata);
+
+ // uncomment for nonconnectable advertising
+ // (nonconnectable forces a minimum 100ms advertisement_interval, >= 100ms intervals are okay)
+ // RFduinoBLE.connectable = false;
+
+ // start the BLE stack
+ RFduinoBLE.begin();
+}
+
+void loop() {
+ // switch to lower power mode
+ RFduino_ULPDelay(INFINITE);
+}
+
+void RFduinoBLE_onAdvertisement(bool start)
+{
+ // turn the green led on if we start advertisement, and turn it
+ // off if we stop advertisement
+
+ if (start)
+ digitalWrite(led, HIGH);
+ else
+ digitalWrite(led, LOW);
+}
\ No newline at end of file
diff --git a/libraries/RFduinoBLE/examples/AdvertisementRawScanResponse/AdvertisementRawScanResponse.ino b/libraries/RFduinoBLE/examples/AdvertisementRawScanResponse/AdvertisementRawScanResponse.ino
new file mode 100644
index 0000000..2f88497
--- /dev/null
+++ b/libraries/RFduinoBLE/examples/AdvertisementRawScanResponse/AdvertisementRawScanResponse.ino
@@ -0,0 +1,136 @@
+/*
+Demonstrates advanced raw access to the advertisement and scan response packets.
+
+This example only applies if you have a specific need for raw access to the advertisement
+packet. This is for advanced use only, as the RFduino will not advertise is the packet
+is invalid.
+
+Note:
+This advertisement packet uses a custom 128 bit UUID.
+If you use a customUUID, the iPhone apps must also
+be updated to discover RFduino's advertising with the
+custom UUID.
+
+The iPhone application source code in this distribution
+has been enhanced to discover RFduino's with customUUIDs,
+by declaring the UUID in the +Load method of the
+AppViewController.m. Without modification, the iPhone
+apps continue to operate as before.
+
+The RFduino AppStore apps will continue to only discover
+RFduino's that advertise using the previous fixed RFduino
+UUID.
+*/
+
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include
+
+// the advertisement packet is composed of a series of variable length blocks, that can appear in any order.
+// each block starts with a length byte, followed by a type byte, followed by the data.
+// the payload cannot exceed 31 bytes.
+
+uint8_t advdata[] =
+{
+ 0x05, // length
+ 0x09, // complete local name type
+ 0x41, // 'A'
+ 0x42, // 'B'
+ 0x43, // 'C'
+ 0x44, // 'D'
+
+ 0x02, // length
+ 0x01, // flags type
+ 0x06, // le general discovery mode | br edr not supported
+
+ 0x02, // length
+ 0x0A, // tx power level
+ 0x04, // +4dBm
+};
+
+uint8_t srdata[] =
+{
+ 0x11, // length
+ 0x07, // 128 bit service uuid (complete)
+
+ // 128 bit uuid
+ // equivalent to RFduinoBLE.customUUID = "c97433f0-be8f-4dc8-b6f0-5343e6100eb4"
+ // little endian
+ 0xB4,
+ 0x0E,
+ 0x10,
+ 0xE6,
+ 0x43,
+ 0x53,
+ 0xF0,
+ 0xB6,
+ 0xC8,
+ 0x4D,
+ 0x8F,
+ 0xBE,
+ 0xF0,
+ 0x33,
+ 0x74,
+ 0xC9,
+};
+
+// pin 3 on the RGB shield is the green led
+int led = 3;
+
+void setup() {
+ // led used to indicate that the RFduino is advertising
+ pinMode(led, OUTPUT);
+
+ RFduinoBLE_advdata = advdata;
+ RFduinoBLE_advdata_len = sizeof(advdata);
+
+ RFduinoBLE_srdata = srdata;
+ RFduinoBLE_srdata_len = sizeof(srdata);
+
+ // uncomment for nonconnectable advertising
+ // (nonconnectable forces a minimum 100ms advertisement_interval, >= 100ms intervals are okay)
+ // RFduinoBLE.connectable = false;
+
+ // start the BLE stack
+ RFduinoBLE.begin();
+}
+
+void loop() {
+ // switch to lower power mode
+ RFduino_ULPDelay(INFINITE);
+}
+
+void RFduinoBLE_onAdvertisement(bool start)
+{
+ // turn the green led on if we start advertisement, and turn it
+ // off if we stop advertisement
+
+ if (start)
+ digitalWrite(led, HIGH);
+ else
+ digitalWrite(led, LOW);
+}
diff --git a/libraries/RFduinoBLE/examples/AdvertisementRawiBeacon/AdvertisementRawiBeacon.ino b/libraries/RFduinoBLE/examples/AdvertisementRawiBeacon/AdvertisementRawiBeacon.ino
new file mode 100644
index 0000000..d23fa17
--- /dev/null
+++ b/libraries/RFduinoBLE/examples/AdvertisementRawiBeacon/AdvertisementRawiBeacon.ino
@@ -0,0 +1,116 @@
+/*
+Demonstrates advanced raw access to the advertisement and scan response packets.
+
+This example only applies if you have a specific need for raw access to the advertisement
+packet. This is for advanced use only, as the RFduino will not advertise is the packet
+is invalid.
+*/
+
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include
+
+// the advertisement packet is composed of a series of variable length blocks, that can appear in any order.
+// each block starts with a length byte, followed by a type byte, followed by the data.
+// the payload cannot exceed 31 bytes.
+
+uint8_t advdata[] =
+{
+ 0x02, // length
+ 0x01, // flags type
+ 0x04, // br edr not supported
+
+ 0x1A, // length
+ 0xFF, // manufacturer data type
+
+ // apple company identifier
+ 0x4C,
+ 0x00,
+
+ 0x02, // apple manufacturer data type (0x02 = iBeacon)
+ 0x15, // length
+
+ // 128-bit iBeacon uuid (little endian)
+ 0xE2,
+ 0xC5,
+ 0x6D,
+ 0xB5,
+ 0xDF,
+ 0xFB,
+ 0x48,
+ 0xD2,
+ 0xB0,
+ 0x60,
+ 0xD0,
+ 0xF5,
+ 0xA7,
+ 0x10,
+ 0x96,
+ 0xE0,
+
+ 0x00, // iBeacon Major Hi
+ 0x00, // iBeacon Major Low
+
+ 0x00, // iBeacon Minor Hi
+ 0x00, // iBeacon Minor Low
+
+ 0xC5, // iBeacon Measured Power
+};
+
+// pin 3 on the RGB shield is the green led
+int led = 3;
+
+void setup() {
+ // led used to indicate that the RFduino is advertising
+ pinMode(led, OUTPUT);
+
+ RFduinoBLE_advdata = advdata;
+ RFduinoBLE_advdata_len = sizeof(advdata);
+
+ // uncomment for nonconnectable advertising
+ // (nonconnectable forces a minimum 100ms advertisement_interval, >= 100ms intervals are okay)
+ // RFduinoBLE.connectable = false;
+
+ // start the BLE stack
+ RFduinoBLE.begin();
+}
+
+void loop() {
+ // switch to lower power mode
+ RFduino_ULPDelay(INFINITE);
+}
+
+void RFduinoBLE_onAdvertisement(bool start)
+{
+ // turn the green led on if we start advertisement, and turn it
+ // off if we stop advertisement
+
+ if (start)
+ digitalWrite(led, HIGH);
+ else
+ digitalWrite(led, LOW);
+}
diff --git a/libraries/RFduinoBLE/examples/BulkDataTransfer/BulkDataTransfer.ino b/libraries/RFduinoBLE/examples/BulkDataTransfer/BulkDataTransfer.ino
old mode 100755
new mode 100644
diff --git a/libraries/RFduinoBLE/examples/ColorWheel/ColorWheel.ino b/libraries/RFduinoBLE/examples/ColorWheel/ColorWheel.ino
old mode 100755
new mode 100644
index ddf02a0..6fbea18
--- a/libraries/RFduinoBLE/examples/ColorWheel/ColorWheel.ino
+++ b/libraries/RFduinoBLE/examples/ColorWheel/ColorWheel.ino
@@ -7,6 +7,32 @@ This sketch is supposed to be used with the rfduinoColorWheel
iPhone application.
*/
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
#include
// pin 2 on the RGB shield is the red led
@@ -23,7 +49,9 @@ void setup() {
pinMode(led3, OUTPUT);
// this is the data we want to appear in the advertisement
- // (the deviceName length plus the advertisement length must be <= 18 bytes
+ // (if the deviceName and advertisementData are too long to fix into the 31 byte
+ // ble advertisement packet, then the advertisementData is truncated first down to
+ // a single byte, then it will truncate the deviceName)
RFduinoBLE.advertisementData = "rgb";
// start the BLE stack
diff --git a/libraries/RFduinoBLE/examples/Connection/Connection.ino b/libraries/RFduinoBLE/examples/Connection/Connection.ino
old mode 100755
new mode 100644
index ed2eb00..c9c89d6
--- a/libraries/RFduinoBLE/examples/Connection/Connection.ino
+++ b/libraries/RFduinoBLE/examples/Connection/Connection.ino
@@ -3,6 +3,32 @@ The sketch demonstrates how to detect a Bluetooth Low Energy 4
connection with the RFduino.
*/
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
#include
// pin 3 on the RGB shield is the green led
diff --git a/libraries/RFduinoBLE/examples/CustomUUID/CustomUUID.ino b/libraries/RFduinoBLE/examples/CustomUUID/CustomUUID.ino
new file mode 100644
index 0000000..a19d0d6
--- /dev/null
+++ b/libraries/RFduinoBLE/examples/CustomUUID/CustomUUID.ino
@@ -0,0 +1,102 @@
+/*
+The sketch demonstrates how to use a different UUID for
+the RFduino service and characteristics.
+
+This example only applies if you have a specific
+need to use a custom 128 bit uuid.
+
+Note:
+If you use a customUUID, the iPhone apps must also
+be updated to discover RFduino's advertising with the
+custom UUID.
+
+The iPhone application source code in this distribution
+has been enhanced to discover RFduino's with customUUIDs,
+by declaring the UUID in the +Load method of the
+AppViewController.m. Without modification, the iPhone
+apps continue to operate as before.
+
+The RFduino AppStore apps will continue to only discover
+RFduino's that advertise using the previous fixed RFduino
+UUID.
+*/
+
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include
+
+// pin 3 on the RGB shield is the green led
+// (shows when the RFduino is advertising or not)
+int advertisement_led = 3;
+
+// pin 2 on the RGB shield is the red led
+// (goes on when the RFduino has a connection from the iPhone, and goes off on disconnect)
+int connection_led = 2;
+
+void setup() {
+ // led used to indicate that the RFduino is advertising
+ pinMode(advertisement_led, OUTPUT);
+
+ // led used to indicate that the RFduino is connected
+ pinMode(connection_led, OUTPUT);
+
+ // 128 bit base uuid
+ // (generated with http://www.uuidgenerator.net)
+ RFduinoBLE.customUUID = "c97433f0-be8f-4dc8-b6f0-5343e6100eb4";
+
+ // this must match the customUUID in the iPhone app declared
+ // in +Load method of AppViewController.m
+
+ // start the BLE stack
+ RFduinoBLE.begin();
+}
+
+void loop() {
+ // switch to lower power mode
+ RFduino_ULPDelay(INFINITE);
+}
+
+void RFduinoBLE_onAdvertisement(bool start)
+{
+ // turn the green led on if we start advertisement, and turn it
+ // off if we stop advertisement
+
+ if (start)
+ digitalWrite(advertisement_led, HIGH);
+ else
+ digitalWrite(advertisement_led, LOW);
+}
+
+void RFduinoBLE_onConnect()
+{
+ digitalWrite(connection_led, HIGH);
+}
+
+void RFduinoBLE_onDisconnect()
+{
+ digitalWrite(connection_led, LOW);
+}
diff --git a/libraries/RFduinoBLE/examples/LedButton/LedButton.ino b/libraries/RFduinoBLE/examples/LedButton/LedButton.ino
old mode 100755
new mode 100644
index 59dd97c..fd14044
--- a/libraries/RFduinoBLE/examples/LedButton/LedButton.ino
+++ b/libraries/RFduinoBLE/examples/LedButton/LedButton.ino
@@ -8,6 +8,32 @@ The button on the iPhone can be used to turn the green led on or off.
The button state of button 1 is transmitted to the iPhone and shown in
the application.
*/
+
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
#include
@@ -33,7 +59,9 @@ void setup() {
pinMode(button, INPUT);
// this is the data we want to appear in the advertisement
- // (the deviceName length plus the advertisement length must be <= 18 bytes
+ // (if the deviceName and advertisementData are too long to fix into the 31 byte
+ // ble advertisement packet, then the advertisementData is truncated first down to
+ // a single byte, then it will truncate the deviceName)
RFduinoBLE.advertisementData = "ledbtn";
// start the BLE stack
diff --git a/libraries/RFduinoBLE/examples/LedButtonConnInterval/LedButtonConnInterval.ino b/libraries/RFduinoBLE/examples/LedButtonConnInterval/LedButtonConnInterval.ino
new file mode 100644
index 0000000..b891a20
--- /dev/null
+++ b/libraries/RFduinoBLE/examples/LedButtonConnInterval/LedButtonConnInterval.ino
@@ -0,0 +1,161 @@
+/*
+This RFduino sketch demonstrates a full bi-directional Bluetooth Low
+Energy 4 connection between an iPhone application and an RFduino.
+This sketch also demonstrates how to select a slower connection
+interval, which will slow down the response rate, but also drastically
+reduce the power consumption of the RFduino.
+
+This sketch works with the rfduinoLedButton iPhone application.
+
+The button on the iPhone can be used to turn the green led on or off.
+The button state of button 1 is transmitted to the iPhone and shown in
+the application.
+*/
+
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include
+
+// pin 3 on the RGB shield is the red led
+// (can be turned on/off from the iPhone app)
+int led = 3;
+
+// pin 5 on the RGB shield is button 1
+// (button press will be shown on the iPhone app)
+int button = 5;
+
+// debounce time (in ms)
+int debounce_time = 10;
+
+// maximum debounce timeout (in ms)
+int debounce_timeout = 100;
+
+void setup() {
+ Serial.begin(9600);
+
+ // led turned on/off from the iPhone app
+ pinMode(led, OUTPUT);
+
+ // button press will be shown on the iPhone app)
+ pinMode(button, INPUT);
+
+ // this is the data we want to appear in the advertisement
+ // (if the deviceName and advertisementData are too long to fix into the 31 byte
+ // ble advertisement packet, then the advertisementData is truncated first down to
+ // a single byte, then it will truncate the deviceName)
+ RFduinoBLE.advertisementData = "ledbtn";
+
+ // start the BLE stack
+ RFduinoBLE.begin();
+}
+
+int debounce(int state)
+{
+ int start = millis();
+ int debounce_start = start;
+
+ while (millis() - start < debounce_timeout)
+ if (digitalRead(button) == state)
+ {
+ if (millis() - debounce_start >= debounce_time)
+ return 1;
+ }
+ else
+ debounce_start = millis();
+
+ return 0;
+}
+
+int delay_until_button(int state)
+{
+ // set button edge to wake up on
+ if (state)
+ RFduino_pinWake(button, HIGH);
+ else
+ RFduino_pinWake(button, LOW);
+
+ do
+ // switch to lower power mode until a button edge wakes us up
+ RFduino_ULPDelay(INFINITE);
+ while (! debounce(state));
+
+ // if multiple buttons were configured, this is how you would determine what woke you up
+ if (RFduino_pinWoke(button))
+ {
+ // execute code here
+ RFduino_resetPinWake(button);
+ }
+}
+
+void loop() {
+ delay_until_button(HIGH);
+ RFduinoBLE.send(1);
+
+ delay_until_button(LOW);
+ RFduinoBLE.send(0);
+
+ // uncomment here to update the connection interval after the first button press
+ // RFduinoBLE_update_conn_interval(900,1000);
+
+ // display the connection interval the iPhone actually selected after a button press
+ int connInterval = RFduinoBLE.getConnInterval();
+ Serial.println(connInterval);
+}
+
+void RFduinoBLE_onConnect()
+{
+ // request central role use a different connection interval in the given range
+ // the central role may reject the request (or even pick a value outside the range)
+ // we will request something in the 900ms to 1100ms range
+ // the actual rate the iPhone uses is 1098ms
+ // the best way to get the connection interval you are after is trail and error
+ // if the iPhone rejects the request, the connection interval will be the default (25ms)
+ RFduinoBLE.updateConnInterval(900, 1100);
+
+ // note: you cannot use delay()/RFduinoBLE.getConnInterval() here to determine which
+ // connection interval the iPhone selected - getConnInterval() must be called from
+ // either loop() or onReceive()
+}
+
+void RFduinoBLE_onDisconnect()
+{
+ // don't leave the led on if they disconnect
+ digitalWrite(led, LOW);
+}
+
+void RFduinoBLE_onReceive(char *data, int len)
+{
+ // display the connection interval the iPhone actually selected after a button press
+ int connInterval = RFduinoBLE.getConnInterval();
+ Serial.println(connInterval);
+
+ // if the first byte is 0x01 / on / true
+ if (data[0])
+ digitalWrite(led, HIGH);
+ else
+ digitalWrite(led, LOW);
+}
diff --git a/libraries/RFduinoBLE/examples/PowerLevel/PowerLevel.ino b/libraries/RFduinoBLE/examples/PowerLevel/PowerLevel.ino
old mode 100755
new mode 100644
index dc25209..4359dcb
--- a/libraries/RFduinoBLE/examples/PowerLevel/PowerLevel.ino
+++ b/libraries/RFduinoBLE/examples/PowerLevel/PowerLevel.ino
@@ -3,6 +3,32 @@ The sketch demonstrates how to control the Bluetooth Low Energy 4
transmission power of the RFduino.
*/
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
#include
// pin 3 on the RGB shield is the green led
@@ -13,7 +39,9 @@ void setup() {
pinMode(led, OUTPUT);
// this is the data we want to appear in the advertisement
- // (the deviceName length plus the advertisement length must be <= 18 bytes
+ // (if the deviceName and advertisementData are too long to fix into the 31 byte
+ // ble advertisement packet, then the advertisementData is truncated first down to
+ // a single byte, then it will truncate the deviceName)
RFduinoBLE.advertisementData = "data";
// set the transmit power level in dBm (-20 dBm to +4 dBm)
diff --git a/libraries/RFduinoBLE/examples/Proximity/Proximity.ino b/libraries/RFduinoBLE/examples/Proximity/Proximity.ino
old mode 100755
new mode 100644
index fd379bd..d37d5c6
--- a/libraries/RFduinoBLE/examples/Proximity/Proximity.ino
+++ b/libraries/RFduinoBLE/examples/Proximity/Proximity.ino
@@ -13,6 +13,32 @@ the third zone, both leds are on (yellow). In the forth and closest zone
led2 is on (red).
*/
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
#include
// pin 3 on the RGB sheild is the green led
diff --git a/libraries/RFduinoBLE/examples/ProximityAveraged/ProximityAveraged.ino b/libraries/RFduinoBLE/examples/ProximityAveraged/ProximityAveraged.ino
old mode 100755
new mode 100644
index 2a5e4c1..c766a4d
--- a/libraries/RFduinoBLE/examples/ProximityAveraged/ProximityAveraged.ino
+++ b/libraries/RFduinoBLE/examples/ProximityAveraged/ProximityAveraged.ino
@@ -12,6 +12,32 @@ both leds are off. In the second zone (closer), led1 is on (green). In
the third zone, both leds are on (yellow). In the forth and closest zone
led2 is on (red).
*/
+
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
#include
diff --git a/libraries/RFduinoBLE/examples/ProximityMovingAverage/ProximityMovingAverage.ino b/libraries/RFduinoBLE/examples/ProximityMovingAverage/ProximityMovingAverage.ino
old mode 100755
new mode 100644
diff --git a/libraries/RFduinoBLE/examples/Servo/Servo.ino b/libraries/RFduinoBLE/examples/Servo/Servo.ino
old mode 100755
new mode 100644
index f3b742b..9aed9b0
--- a/libraries/RFduinoBLE/examples/Servo/Servo.ino
+++ b/libraries/RFduinoBLE/examples/Servo/Servo.ino
@@ -1 +1 @@
-/*
The sketch accepts a Bluetooth Low Energy 4 connection from an
iPhone and accepts commands from the iPhone to run upto 4
standard servos.
This sketch is suppose to work with the rfduinoServo application.
It receives two bytes from the iPhone. The first byte contains
the servos to set (bit1 = servo a, bit2 = servo b, etc), and
the value is the number of degrees (0-180) to position the servo
too.
*/
#include
#include
Servo s1;
Servo s2;
Servo s3;
Servo s4;
void setup() {
s1.attach(2);
s2.attach(3);
s3.attach(4);
s4.attach(5);
RFduinoBLE.advertisementInterval = 675;
RFduinoBLE.advertisementData = "-servo";
RFduinoBLE.begin();
}
void loop() {
// RFduino_ULPDelay(INFINITE);
}
void RFduinoBLE_onReceive(char *data, int len){
int servo = data[0];
int degree = data[1];
if (bitRead(servo, 1))
s1.write(degree);
if (bitRead(servo, 2))
s2.write(degree);
if (bitRead(servo, 3))
s3.write(degree);
if (bitRead(servo, 4))
s4.write(degree);
}
\ No newline at end of file
+/*
The sketch accepts a Bluetooth Low Energy 4 connection from an
iPhone and accepts commands from the iPhone to run upto 4
standard servos.
This sketch is suppose to work with the rfduinoServo application.
It receives two bytes from the iPhone. The first byte contains
the servos to set (bit1 = servo a, bit2 = servo b, etc), and
the value is the number of degrees (0-180) to position the servo
too.
*/
/*
Copyright (c) 2014 OpenSourceRF.com. All right reserved.
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*/
#include
#include
Servo s1;
Servo s2;
Servo s3;
Servo s4;
void setup() {
s1.attach(2);
s2.attach(3);
s3.attach(4);
s4.attach(5);
RFduinoBLE.advertisementInterval = 675;
RFduinoBLE.advertisementData = "-servo";
RFduinoBLE.begin();
}
void loop() {
// RFduino_ULPDelay(INFINITE);
}
void RFduinoBLE_onReceive(char *data, int len){
int servo = data[0];
int degree = data[1];
if (bitRead(servo, 1))
s1.write(degree);
if (bitRead(servo, 2))
s2.write(degree);
if (bitRead(servo, 3))
s3.write(degree);
if (bitRead(servo, 4))
s4.write(degree);
}
\ No newline at end of file
diff --git a/libraries/RFduinoBLE/examples/Temperature/Temperature.ino b/libraries/RFduinoBLE/examples/Temperature/Temperature.ino
old mode 100755
new mode 100644
index 765ceb0..9bf95d0
--- a/libraries/RFduinoBLE/examples/Temperature/Temperature.ino
+++ b/libraries/RFduinoBLE/examples/Temperature/Temperature.ino
@@ -6,11 +6,39 @@ updates once a second.
It is suppose to be used with the rfduinoTemperature iPhone application.
*/
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
#include
void setup() {
// this is the data we want to appear in the advertisement
- // (the deviceName length plus the advertisement length must be <= 18 bytes)
+ // (if the deviceName and advertisementData are too long to fix into the 31 byte
+ // ble advertisement packet, then the advertisementData is truncated first down to
+ // a single byte, then it will truncate the deviceName)
RFduinoBLE.advertisementData = "temp";
// start the BLE stack
diff --git a/libraries/RFduinoBLE/examples/Template/Template.ino b/libraries/RFduinoBLE/examples/Template/Template.ino
old mode 100755
new mode 100644
index 98ebf72..2cd731c
--- a/libraries/RFduinoBLE/examples/Template/Template.ino
+++ b/libraries/RFduinoBLE/examples/Template/Template.ino
@@ -3,6 +3,32 @@ The sketch is an empty template for Bluetooth Low Energy 4.
Simply remove what you dont need, and fill in the rest.
*/
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
#include
void setup()
diff --git a/libraries/RFduinoBLE/examples/TimingCrtitical/TimingCrtitical.ino b/libraries/RFduinoBLE/examples/TimingCrtitical/TimingCrtitical.ino
old mode 100755
new mode 100644
index c69595d..ce5533d
--- a/libraries/RFduinoBLE/examples/TimingCrtitical/TimingCrtitical.ino
+++ b/libraries/RFduinoBLE/examples/TimingCrtitical/TimingCrtitical.ino
@@ -2,6 +2,32 @@
The sketch demonstrates how to integrate timing critical code
with Bluetooth Low Energy 4.
*/
+
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
#include
@@ -16,7 +42,9 @@ void setup() {
pinMode(led, OUTPUT);
// this is the data we want to appear in the advertisement
- // (the deviceName length plus the advertisement length must be <= 18 bytes
+ // (if the deviceName and advertisementData are too long to fix into the 31 byte
+ // ble advertisement packet, then the advertisementData is truncated first down to
+ // a single byte, then it will truncate the deviceName)
RFduinoBLE.advertisementData = "data";
// start the BLE stack
diff --git a/iPhone Apps/rfduino/RfduinoManager.h b/libraries/RFduinoBLE/examples/iBeacon/iBeacon.ino
old mode 100755
new mode 100644
similarity index 61%
rename from iPhone Apps/rfduino/RfduinoManager.h
rename to libraries/RFduinoBLE/examples/iBeacon/iBeacon.ino
index e2c1c28..d85084d
--- a/iPhone Apps/rfduino/RfduinoManager.h
+++ b/libraries/RFduinoBLE/examples/iBeacon/iBeacon.ino
@@ -1,56 +1,61 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import
-
-#if TARGET_OS_IPHONE || TARGET_IPHONE_SIMULATOR
-#import
-#elif TARGET_OS_MAC
-#import
-#endif
-
-#import "RFduinoManagerDelegate.h"
-
-@interface RFduinoManager : NSObject
-{
- CBCentralManager *central;
-}
-
-+ (RFduinoManager *)sharedRFduinoManager;
-
-@property (nonatomic, assign) id delegate;
-@property (nonatomic, strong) NSMutableArray *rfduinos;
-
-- (bool)isScanning;
-- (void)startScan;
-- (void)stopScan;
-
-- (void)connectRFduino:(RFduino *)rfduino;
-- (void)disconnectRFduino:(RFduino *)rfduino;
-
-- (void)loadedServiceRFduino:(RFduino *)rfduino;
-
-@end
+/*
+The sketch demonstrates iBecaon from an RFduino
+*/
+
+/*
+ Copyright (c) 2014 OpenSourceRF.com. All right reserved.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ See the GNU Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+*/
+
+#include
+
+// pin 3 on the RGB shield is the green led
+int led = 3;
+
+void setup() {
+ // led used to indicate that iBeacon has started
+ pinMode(led, OUTPUT);
+
+ // do iBeacon advertising
+ RFduinoBLE.iBeacon = true;
+
+ // start the BLE stack
+ RFduinoBLE.begin();
+}
+
+void loop() {
+ // switch to lower power mode
+ RFduino_ULPDelay(INFINITE);
+}
+
+void RFduinoBLE_onAdvertisement(bool start)
+{
+ // turn the green led on if we start advertisement, and turn it
+ // off if we stop advertisement
+
+ if (start)
+ digitalWrite(led, HIGH);
+ else
+ digitalWrite(led, LOW);
+}
diff --git a/iPhone Apps/rfduino/RFduino.h b/libraries/RFduinoBLE/examples/iBeaconSettings/iBeaconSettings.ino
old mode 100755
new mode 100644
similarity index 51%
rename from iPhone Apps/rfduino/RFduino.h
rename to libraries/RFduinoBLE/examples/iBeaconSettings/iBeaconSettings.ino
index 5f54ef8..14ef272
--- a/iPhone Apps/rfduino/RFduino.h
+++ b/libraries/RFduinoBLE/examples/iBeaconSettings/iBeaconSettings.ino
@@ -1,66 +1,68 @@
-/*
- Copyright (c) 2013 OpenSourceRF.com. All right reserved.
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- See the GNU Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
- MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
- IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
- CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
- TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
- SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-*/
-
-#import