Commit 90effadff4e6786ed6c76d3ef268a5ddde9c36af

Authored by Imanol-Mikel Barba Sabariego
1 parent c16e5436

--no commit message

DUREX Vendor Control/CommunicationProtocol.h
@@ -9,7 +9,7 @@ @@ -9,7 +9,7 @@
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
10 #import "EMFramework.h" 10 #import "EMFramework.h"
11 11
12 -#define MAX_STRING_LENGTH ((int)227) 12 +#define MAX_STRING_LENGTH ((int)200)
13 #define MAX_RETRIES ((int)3) 13 #define MAX_RETRIES ((int)3)
14 14
15 @interface CommunicationProtocol : NSObject 15 @interface CommunicationProtocol : NSObject
DUREX Vendor Control/DUREX Vendor Control.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
DUREX tests/Base.lproj/Localizable.strings 0 → 100644
  1 +/*
  2 + Localizable.strings
  3 + DUREX test
  4 +
  5 + Created by Imanol Barba on 8/11/14.
  6 + Copyright (c) 2014 Emmoco. All rights reserved.
  7 +*/
  8 +
  9 +"PIECE OF CRAP 2000 PRO ULTRA" = "PIECE OF CRAP 2000 PRO ULTRA";
  10 +"FUCKING ONLINE" = "FUCKING ONLINE";
0 \ No newline at end of file 11 \ No newline at end of file
DUREX tests/FirstAppExample/MainStoryboard.storyboard renamed to DUREX tests/Base.lproj/MainStoryboard.storyboard
1 <?xml version="1.0" encoding="UTF-8" standalone="no"?> 1 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6"> 2 <document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6">
3 <dependencies> 3 <dependencies>
4 - <deployment defaultVersion="1792" identifier="iOS"/>  
5 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/> 4 <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
6 </dependencies> 5 </dependencies>
7 <scenes> 6 <scenes>
@@ -153,7 +152,7 @@ @@ -153,7 +152,7 @@
153 <action selector="connectPressed:" destination="fM1-5w-fRr" eventType="touchDown" id="yhT-cP-LLA"/> 152 <action selector="connectPressed:" destination="fM1-5w-fRr" eventType="touchDown" id="yhT-cP-LLA"/>
154 </connections> 153 </connections>
155 </button> 154 </button>
156 - <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Connect to Device" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oyW-sA-Lfb"> 155 + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Connect to device" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oyW-sA-Lfb">
157 <rect key="frame" x="86" y="273" width="149" height="21"/> 156 <rect key="frame" x="86" y="273" width="149" height="21"/>
158 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/> 157 <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
159 <fontDescription key="fontDescription" type="system" pointSize="17"/> 158 <fontDescription key="fontDescription" type="system" pointSize="17"/>
DUREX tests/CommunicationProtocol.h
@@ -8,7 +8,7 @@ @@ -8,7 +8,7 @@
8 8
9 #import <Foundation/Foundation.h> 9 #import <Foundation/Foundation.h>
10 10
11 -#define MAX_STRING_LENGTH ((int)227) 11 +#define MAX_STRING_LENGTH ((int)200)
12 #define MAX_RETRIES ((int)3) 12 #define MAX_RETRIES ((int)3)
13 13
14 @interface CommunicationProtocol : NSObject 14 @interface CommunicationProtocol : NSObject
DUREX tests/DUREX test.xcodeproj/project.pbxproj
@@ -17,9 +17,10 @@ @@ -17,9 +17,10 @@
17 34AAB883189804FF0019860D /* DUREXAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB877189804FF0019860D /* DUREXAppDelegate.m */; }; 17 34AAB883189804FF0019860D /* DUREXAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB877189804FF0019860D /* DUREXAppDelegate.m */; };
18 34AAB885189804FF0019860D /* EMDevicePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB87A189804FF0019860D /* EMDevicePickerViewController.m */; }; 18 34AAB885189804FF0019860D /* EMDevicePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB87A189804FF0019860D /* EMDevicePickerViewController.m */; };
19 34AAB889189804FF0019860D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB880189804FF0019860D /* main.m */; }; 19 34AAB889189804FF0019860D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB880189804FF0019860D /* main.m */; };
20 - 34AAB88A189804FF0019860D /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 34AAB881189804FF0019860D /* MainStoryboard.storyboard */; };  
21 34AAB88D189805300019860D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 34AAB88C189805300019860D /* Images.xcassets */; }; 20 34AAB88D189805300019860D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 34AAB88C189805300019860D /* Images.xcassets */; };
22 F9127C891995144E00040C52 /* back_arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = F9127C881995144E00040C52 /* back_arrow.png */; }; 21 F9127C891995144E00040C52 /* back_arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = F9127C881995144E00040C52 /* back_arrow.png */; };
  22 + F92B0B6C19993D3F00CAEF3E /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F92B0B6E19993D3F00CAEF3E /* Localizable.strings */; };
  23 + F92B0B7219993E9300CAEF3E /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F92B0B7019993E9300CAEF3E /* MainStoryboard.storyboard */; };
23 F9469169193015EE006DACD3 /* icon_checkmark.png in Resources */ = {isa = PBXBuildFile; fileRef = F9469167193015EE006DACD3 /* icon_checkmark.png */; }; 24 F9469169193015EE006DACD3 /* icon_checkmark.png in Resources */ = {isa = PBXBuildFile; fileRef = F9469167193015EE006DACD3 /* icon_checkmark.png */; };
24 F946916A193015EE006DACD3 /* icon_delete.png in Resources */ = {isa = PBXBuildFile; fileRef = F9469168193015EE006DACD3 /* icon_delete.png */; }; 25 F946916A193015EE006DACD3 /* icon_delete.png in Resources */ = {isa = PBXBuildFile; fileRef = F9469168193015EE006DACD3 /* icon_delete.png */; };
25 F962A233192FCA8A00E4324A /* Stack.m in Sources */ = {isa = PBXBuildFile; fileRef = F962A232192FCA8A00E4324A /* Stack.m */; }; 26 F962A233192FCA8A00E4324A /* Stack.m in Sources */ = {isa = PBXBuildFile; fileRef = F962A232192FCA8A00E4324A /* Stack.m */; };
@@ -27,7 +28,6 @@ @@ -27,7 +28,6 @@
27 F98356D8192E906600EA6821 /* bluetooth.png in Resources */ = {isa = PBXBuildFile; fileRef = F98356D7192E906600EA6821 /* bluetooth.png */; }; 28 F98356D8192E906600EA6821 /* bluetooth.png in Resources */ = {isa = PBXBuildFile; fileRef = F98356D7192E906600EA6821 /* bluetooth.png */; };
28 F98356DB192EAFD400EA6821 /* CommunicationProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */; }; 29 F98356DB192EAFD400EA6821 /* CommunicationProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */; };
29 F98356E1192EC84700EA6821 /* MenuTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F98356E0192EC84700EA6821 /* MenuTableViewController.m */; }; 30 F98356E1192EC84700EA6821 /* MenuTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F98356E0192EC84700EA6821 /* MenuTableViewController.m */; };
30 - F9C77F4E192CDE18002DBE8A /* InfoPlist.strings in Resources */ = {isa = PBXBuildFile; fileRef = F9C77F4C192CDE18002DBE8A /* InfoPlist.strings */; };  
31 F9C77F50192CDE30002DBE8A /* durex.json in Resources */ = {isa = PBXBuildFile; fileRef = F9C77F4F192CDE30002DBE8A /* durex.json */; }; 31 F9C77F50192CDE30002DBE8A /* durex.json in Resources */ = {isa = PBXBuildFile; fileRef = F9C77F4F192CDE30002DBE8A /* durex.json */; };
32 /* End PBXBuildFile section */ 32 /* End PBXBuildFile section */
33 33
@@ -56,9 +56,12 @@ @@ -56,9 +56,12 @@
56 34AAB87E189804FF0019860D /* DUREX test-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "DUREX test-Info.plist"; path = "FirstAppExample/DUREX test-Info.plist"; sourceTree = SOURCE_ROOT; }; 56 34AAB87E189804FF0019860D /* DUREX test-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "DUREX test-Info.plist"; path = "FirstAppExample/DUREX test-Info.plist"; sourceTree = SOURCE_ROOT; };
57 34AAB87F189804FF0019860D /* DUREX test-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "DUREX test-Prefix.pch"; path = "FirstAppExample/DUREX test-Prefix.pch"; sourceTree = SOURCE_ROOT; }; 57 34AAB87F189804FF0019860D /* DUREX test-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "DUREX test-Prefix.pch"; path = "FirstAppExample/DUREX test-Prefix.pch"; sourceTree = SOURCE_ROOT; };
58 34AAB880189804FF0019860D /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = FirstAppExample/main.m; sourceTree = SOURCE_ROOT; }; 58 34AAB880189804FF0019860D /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = FirstAppExample/main.m; sourceTree = SOURCE_ROOT; };
59 - 34AAB881189804FF0019860D /* MainStoryboard.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; name = MainStoryboard.storyboard; path = FirstAppExample/MainStoryboard.storyboard; sourceTree = SOURCE_ROOT; };  
60 34AAB88C189805300019860D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = FirstAppExample/Images.xcassets; sourceTree = SOURCE_ROOT; }; 59 34AAB88C189805300019860D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = FirstAppExample/Images.xcassets; sourceTree = SOURCE_ROOT; };
61 F9127C881995144E00040C52 /* back_arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = back_arrow.png; sourceTree = SOURCE_ROOT; }; 60 F9127C881995144E00040C52 /* back_arrow.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = back_arrow.png; sourceTree = SOURCE_ROOT; };
  61 + F92B0B6D19993D3F00CAEF3E /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = "<group>"; };
  62 + F92B0B6F19993D4400CAEF3E /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = "<group>"; };
  63 + F92B0B7119993E9300CAEF3E /* es */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = es; path = es.lproj/MainStoryboard.storyboard; sourceTree = SOURCE_ROOT; };
  64 + F92B0B7319993E9B00CAEF3E /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainStoryboard.storyboard; sourceTree = SOURCE_ROOT; };
62 F9469167193015EE006DACD3 /* icon_checkmark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_checkmark.png; sourceTree = SOURCE_ROOT; }; 65 F9469167193015EE006DACD3 /* icon_checkmark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_checkmark.png; sourceTree = SOURCE_ROOT; };
63 F9469168193015EE006DACD3 /* icon_delete.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_delete.png; sourceTree = SOURCE_ROOT; }; 66 F9469168193015EE006DACD3 /* icon_delete.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_delete.png; sourceTree = SOURCE_ROOT; };
64 F962A231192FCA8A00E4324A /* Stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Stack.h; sourceTree = SOURCE_ROOT; }; 67 F962A231192FCA8A00E4324A /* Stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Stack.h; sourceTree = SOURCE_ROOT; };
@@ -70,7 +73,6 @@ @@ -70,7 +73,6 @@
70 F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CommunicationProtocol.m; sourceTree = SOURCE_ROOT; }; 73 F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CommunicationProtocol.m; sourceTree = SOURCE_ROOT; };
71 F98356DF192EC84700EA6821 /* MenuTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuTableViewController.h; sourceTree = SOURCE_ROOT; }; 74 F98356DF192EC84700EA6821 /* MenuTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuTableViewController.h; sourceTree = SOURCE_ROOT; };
72 F98356E0192EC84700EA6821 /* MenuTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MenuTableViewController.m; sourceTree = SOURCE_ROOT; }; 75 F98356E0192EC84700EA6821 /* MenuTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MenuTableViewController.m; sourceTree = SOURCE_ROOT; };
73 - F9C77F4D192CDE18002DBE8A /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = FirstAppExample/en.lproj/InfoPlist.strings; sourceTree = SOURCE_ROOT; };  
74 F9C77F4F192CDE30002DBE8A /* durex.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = durex.json; sourceTree = SOURCE_ROOT; }; 76 F9C77F4F192CDE30002DBE8A /* durex.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = durex.json; sourceTree = SOURCE_ROOT; };
75 /* End PBXFileReference section */ 77 /* End PBXFileReference section */
76 78
@@ -132,7 +134,7 @@ @@ -132,7 +134,7 @@
132 3471866618070D9300FA0FB2 /* FirstApp */ = { 134 3471866618070D9300FA0FB2 /* FirstApp */ = {
133 isa = PBXGroup; 135 isa = PBXGroup;
134 children = ( 136 children = (
135 - 34AAB881189804FF0019860D /* MainStoryboard.storyboard */, 137 + F92B0B7019993E9300CAEF3E /* MainStoryboard.storyboard */,
136 34AAB876189804FF0019860D /* DUREXAppDelegate.h */, 138 34AAB876189804FF0019860D /* DUREXAppDelegate.h */,
137 34AAB877189804FF0019860D /* DUREXAppDelegate.m */, 139 34AAB877189804FF0019860D /* DUREXAppDelegate.m */,
138 F98356D4192E835F00EA6821 /* InitialViewController.h */, 140 F98356D4192E835F00EA6821 /* InitialViewController.h */,
@@ -141,13 +143,13 @@ @@ -141,13 +143,13 @@
141 F98356E0192EC84700EA6821 /* MenuTableViewController.m */, 143 F98356E0192EC84700EA6821 /* MenuTableViewController.m */,
142 F98356D9192EAFD400EA6821 /* CommunicationProtocol.h */, 144 F98356D9192EAFD400EA6821 /* CommunicationProtocol.h */,
143 F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */, 145 F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */,
  146 + F962A231192FCA8A00E4324A /* Stack.h */,
  147 + F962A232192FCA8A00E4324A /* Stack.m */,
144 34AAB88C189805300019860D /* Images.xcassets */, 148 34AAB88C189805300019860D /* Images.xcassets */,
145 347186B91807290E00FA0FB2 /* Schemas */, 149 347186B91807290E00FA0FB2 /* Schemas */,
146 347186A718070F7F00FA0FB2 /* Device Picker */, 150 347186A718070F7F00FA0FB2 /* Device Picker */,
147 3471868F18070E4300FA0FB2 /* Framework */, 151 3471868F18070E4300FA0FB2 /* Framework */,
148 3471866718070D9300FA0FB2 /* Supporting Files */, 152 3471866718070D9300FA0FB2 /* Supporting Files */,
149 - F962A231192FCA8A00E4324A /* Stack.h */,  
150 - F962A232192FCA8A00E4324A /* Stack.m */,  
151 ); 153 );
152 name = FirstApp; 154 name = FirstApp;
153 path = TestAppExample; 155 path = TestAppExample;
@@ -156,6 +158,7 @@ @@ -156,6 +158,7 @@
156 3471866718070D9300FA0FB2 /* Supporting Files */ = { 158 3471866718070D9300FA0FB2 /* Supporting Files */ = {
157 isa = PBXGroup; 159 isa = PBXGroup;
158 children = ( 160 children = (
  161 + F92B0B6E19993D3F00CAEF3E /* Localizable.strings */,
159 F9127C881995144E00040C52 /* back_arrow.png */, 162 F9127C881995144E00040C52 /* back_arrow.png */,
160 F9469167193015EE006DACD3 /* icon_checkmark.png */, 163 F9469167193015EE006DACD3 /* icon_checkmark.png */,
161 F9469168193015EE006DACD3 /* icon_delete.png */, 164 F9469168193015EE006DACD3 /* icon_delete.png */,
@@ -163,7 +166,6 @@ @@ -163,7 +166,6 @@
163 34AAB87E189804FF0019860D /* DUREX test-Info.plist */, 166 34AAB87E189804FF0019860D /* DUREX test-Info.plist */,
164 34AAB87F189804FF0019860D /* DUREX test-Prefix.pch */, 167 34AAB87F189804FF0019860D /* DUREX test-Prefix.pch */,
165 34AAB880189804FF0019860D /* main.m */, 168 34AAB880189804FF0019860D /* main.m */,
166 - F9C77F4C192CDE18002DBE8A /* InfoPlist.strings */,  
167 ); 169 );
168 name = "Supporting Files"; 170 name = "Supporting Files";
169 sourceTree = "<group>"; 171 sourceTree = "<group>";
@@ -251,6 +253,8 @@ @@ -251,6 +253,8 @@
251 hasScannedForEncodings = 0; 253 hasScannedForEncodings = 0;
252 knownRegions = ( 254 knownRegions = (
253 en, 255 en,
  256 + es,
  257 + Base,
254 ); 258 );
255 mainGroup = 3471865418070D9300FA0FB2; 259 mainGroup = 3471865418070D9300FA0FB2;
256 productRefGroup = 3471865E18070D9300FA0FB2 /* Products */; 260 productRefGroup = 3471865E18070D9300FA0FB2 /* Products */;
@@ -270,12 +274,12 @@ @@ -270,12 +274,12 @@
270 files = ( 274 files = (
271 F98356D8192E906600EA6821 /* bluetooth.png in Resources */, 275 F98356D8192E906600EA6821 /* bluetooth.png in Resources */,
272 F9C77F50192CDE30002DBE8A /* durex.json in Resources */, 276 F9C77F50192CDE30002DBE8A /* durex.json in Resources */,
273 - F9C77F4E192CDE18002DBE8A /* InfoPlist.strings in Resources */,  
274 34AAB88D189805300019860D /* Images.xcassets in Resources */, 277 34AAB88D189805300019860D /* Images.xcassets in Resources */,
  278 + F92B0B6C19993D3F00CAEF3E /* Localizable.strings in Resources */,
275 F9127C891995144E00040C52 /* back_arrow.png in Resources */, 279 F9127C891995144E00040C52 /* back_arrow.png in Resources */,
276 F9469169193015EE006DACD3 /* icon_checkmark.png in Resources */, 280 F9469169193015EE006DACD3 /* icon_checkmark.png in Resources */,
  281 + F92B0B7219993E9300CAEF3E /* MainStoryboard.storyboard in Resources */,
277 F946916A193015EE006DACD3 /* icon_delete.png in Resources */, 282 F946916A193015EE006DACD3 /* icon_delete.png in Resources */,
278 - 34AAB88A189804FF0019860D /* MainStoryboard.storyboard in Resources */,  
279 ); 283 );
280 runOnlyForDeploymentPostprocessing = 0; 284 runOnlyForDeploymentPostprocessing = 0;
281 }; 285 };
@@ -321,12 +325,22 @@ @@ -321,12 +325,22 @@
321 /* End PBXTargetDependency section */ 325 /* End PBXTargetDependency section */
322 326
323 /* Begin PBXVariantGroup section */ 327 /* Begin PBXVariantGroup section */
324 - F9C77F4C192CDE18002DBE8A /* InfoPlist.strings */ = { 328 + F92B0B6E19993D3F00CAEF3E /* Localizable.strings */ = {
  329 + isa = PBXVariantGroup;
  330 + children = (
  331 + F92B0B6D19993D3F00CAEF3E /* Base */,
  332 + F92B0B6F19993D4400CAEF3E /* es */,
  333 + );
  334 + name = Localizable.strings;
  335 + sourceTree = SOURCE_ROOT;
  336 + };
  337 + F92B0B7019993E9300CAEF3E /* MainStoryboard.storyboard */ = {
325 isa = PBXVariantGroup; 338 isa = PBXVariantGroup;
326 children = ( 339 children = (
327 - F9C77F4D192CDE18002DBE8A /* en */, 340 + F92B0B7119993E9300CAEF3E /* es */,
  341 + F92B0B7319993E9B00CAEF3E /* Base */,
328 ); 342 );
329 - name = InfoPlist.strings; 343 + name = MainStoryboard.storyboard;
330 sourceTree = "<group>"; 344 sourceTree = "<group>";
331 }; 345 };
332 /* End PBXVariantGroup section */ 346 /* End PBXVariantGroup section */
@@ -414,7 +428,7 @@ @@ -414,7 +428,7 @@
414 GCC_PRECOMPILE_PREFIX_HEADER = YES; 428 GCC_PRECOMPILE_PREFIX_HEADER = YES;
415 GCC_PREFIX_HEADER = "FirstAppExample/DUREX test-Prefix.pch"; 429 GCC_PREFIX_HEADER = "FirstAppExample/DUREX test-Prefix.pch";
416 INFOPLIST_FILE = "FirstAppExample/DUREX test-Info.plist"; 430 INFOPLIST_FILE = "FirstAppExample/DUREX test-Info.plist";
417 - IPHONEOS_DEPLOYMENT_TARGET = 7.0; 431 + IPHONEOS_DEPLOYMENT_TARGET = 7.1;
418 LIBRARY_SEARCH_PATHS = ( 432 LIBRARY_SEARCH_PATHS = (
419 "$(inherited)", 433 "$(inherited)",
420 EmmocoMobileFramework/Framework, 434 EmmocoMobileFramework/Framework,
@@ -433,7 +447,7 @@ @@ -433,7 +447,7 @@
433 GCC_PRECOMPILE_PREFIX_HEADER = YES; 447 GCC_PRECOMPILE_PREFIX_HEADER = YES;
434 GCC_PREFIX_HEADER = "FirstAppExample/DUREX test-Prefix.pch"; 448 GCC_PREFIX_HEADER = "FirstAppExample/DUREX test-Prefix.pch";
435 INFOPLIST_FILE = "FirstAppExample/DUREX test-Info.plist"; 449 INFOPLIST_FILE = "FirstAppExample/DUREX test-Info.plist";
436 - IPHONEOS_DEPLOYMENT_TARGET = 7.0; 450 + IPHONEOS_DEPLOYMENT_TARGET = 7.1;
437 LIBRARY_SEARCH_PATHS = ( 451 LIBRARY_SEARCH_PATHS = (
438 "$(inherited)", 452 "$(inherited)",
439 EmmocoMobileFramework/Framework, 453 EmmocoMobileFramework/Framework,
DUREX tests/DUREX test.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate
No preview for this file type
DUREX tests/FirstAppExample/DUREX test-Info.plist
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 <plist version="1.0"> 3 <plist version="1.0">
4 <dict> 4 <dict>
5 <key>CFBundleDevelopmentRegion</key> 5 <key>CFBundleDevelopmentRegion</key>
6 - <string>en</string> 6 + <string>en_US</string>
7 <key>CFBundleDisplayName</key> 7 <key>CFBundleDisplayName</key>
8 <string>${PRODUCT_NAME}</string> 8 <string>${PRODUCT_NAME}</string>
9 <key>CFBundleExecutable</key> 9 <key>CFBundleExecutable</key>
DUREX tests/FirstAppExample/EMDevicePickerViewController.m
@@ -78,8 +78,8 @@ @@ -78,8 +78,8 @@
78 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DeviceCell"]; 78 cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"DeviceCell"];
79 } 79 }
80 80
81 - [[cell textLabel] setText:@"PIECE OF CRAP 2000 PRO ULTRA"];  
82 - [[cell detailTextLabel] setText:@"FUCKING ONLINE"]; 81 + [[cell textLabel] setText:NSLocalizedString(@"PIECE OF CRAP 2000 PRO ULTRA", nil)];
  82 + [[cell detailTextLabel] setText:NSLocalizedString(@"FUCKING ONLINE", nil)];
83 return cell; 83 return cell;
84 } 84 }
85 85
DUREX tests/FirstAppExample/en.lproj/InfoPlist.strings deleted
1 -/* Localized versions of Info.plist keys */  
2 -  
DUREX tests/MenuTableViewController.h
@@ -16,9 +16,9 @@ @@ -16,9 +16,9 @@
16 #define MENU_CELLS_PER_SECTION num(3) 16 #define MENU_CELLS_PER_SECTION num(3)
17 #define MENU_HEADERS nil 17 #define MENU_HEADERS nil
18 18
19 -#define MAINTENANCE_ELEMENTS @"Time",@"20€ Notes",@"10€ Notes",@"5€ Notes",@"2€ Coins",@"1€ Coins",@"50c Coins",@"CPP_TABLE",@"1€ Change",@"50c Change"  
20 -#define MAINTENANCE_CELLS_PER_SECTION num(10),num(0)  
21 -#define MAINTENANCE_HEADERS @"Status",@"Sensors" 19 +#define MAINTENANCE_ELEMENTS @"CH1 presence",@"CH2 presence",@"CH3 presence",@"CH4 presence",@"CH5 presence",@"CH6 presence",@"CH7 presence",@"CH8 presence",@"CH1 spin",@"CH2 spin",@"CH3 spin",@"CH4 spin",@"CH5 spin",@"CH6 spin",@"CH7 spin",@"CH8 spin",@"Door sensor",@"Wall sensor",@"Oscillator",@"1€ Coin presence",@"50c Coin presence",@"1€ Coin spin",@"50c Coin spin",@"Sales log",@"Incident report",@"Send report"
  20 +#define MAINTENANCE_CELLS_PER_SECTION num(23),num(3)
  21 +#define MAINTENANCE_HEADERS @"Sensors",@"Commands"
22 22
23 #define CELL_IDENTIFIERS @"MenuCell",@"MaintenanceCell",@"ConfigCell",@"ReportCell" 23 #define CELL_IDENTIFIERS @"MenuCell",@"MaintenanceCell",@"ConfigCell",@"ReportCell"
24 24
DUREX tests/MenuTableViewController.m
@@ -83,7 +83,7 @@ @@ -83,7 +83,7 @@
83 [self setCurrentCellIdentifier:[[self cellIdentifiers] objectAtIndex:[self currentNavLevel]]]; 83 [self setCurrentCellIdentifier:[[self cellIdentifiers] objectAtIndex:[self currentNavLevel]]];
84 if([self currentNavLevel] == MENU) 84 if([self currentNavLevel] == MENU)
85 { 85 {
86 - [[self navigationItem] setTitle:@"PIECE OF CRAP 2000 PRO ULTRA"]; 86 + [[self navigationItem] setTitle:NSLocalizedString(@"PIECE OF CRAP 2000 PRO ULTRA", nil)];
87 [self setCurrentElements:[self menuElements]]; 87 [self setCurrentElements:[self menuElements]];
88 [self setCurrentStructure:[self menuStructure]]; 88 [self setCurrentStructure:[self menuStructure]];
89 [self setCurrentHeaders:[self menuHeaders]]; 89 [self setCurrentHeaders:[self menuHeaders]];
@@ -256,10 +256,9 @@ @@ -256,10 +256,9 @@
256 [[cell textLabel] setText:[[self currentElements] objectAtIndex:[indexPath row]+offset]]; 256 [[cell textLabel] setText:[[self currentElements] objectAtIndex:[indexPath row]+offset]];
257 if([self currentNavLevel] == MAINTENANCE) 257 if([self currentNavLevel] == MAINTENANCE)
258 { 258 {
259 - NSLog(@"[MenuTableViewController.m]: Customizing cell for navLevel MAINTENANCE");  
260 [[cell detailTextLabel] setText:@"VALUE"]; 259 [[cell detailTextLabel] setText:@"VALUE"];
261 [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; 260 [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]];
262 - if( [[[cell textLabel] text] isEqualToString:@"5€ Notes"]) 261 + if( [[[cell textLabel] text] isEqualToString:@"CH4 presence"])
263 { 262 {
264 [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; 263 [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]];
265 } 264 }
DUREX tests/es.lproj/Localizable.strings 0 → 100644
  1 +/*
  2 + Localizable.strings
  3 + DUREX test
  4 +
  5 + Created by Imanol Barba on 8/11/14.
  6 + Copyright (c) 2014 Emmoco. All rights reserved.
  7 +*/
  8 +
  9 +"PIECE OF CRAP 2000 PRO ULTRA" = "CACHARRACO DE LA MUERTE";
  10 +"FUCKING ONLINE" = "A TOPE";
0 \ No newline at end of file 11 \ No newline at end of file
DUREX tests/es.lproj/MainStoryboard.storyboard 0 → 100644
  1 +<?xml version="1.0" encoding="UTF-8" standalone="no"?>
  2 +<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="5056" systemVersion="12F45" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" initialViewController="kWw-Rk-wD6">
  3 + <dependencies>
  4 + <deployment defaultVersion="1792" identifier="iOS"/>
  5 + <plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="3733"/>
  6 + </dependencies>
  7 + <scenes>
  8 + <!--Device Picker View Controller - Seleccionar dispositivo-->
  9 + <scene sceneID="ZOj-VY-rze">
  10 + <objects>
  11 + <tableViewController id="0dd-lZ-pDC" customClass="EMDevicePickerViewController" sceneMemberID="viewController">
  12 + <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="jWc-kM-kFO">
  13 + <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
  14 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  15 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  16 + <prototypes>
  17 + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="DeviceCell" textLabel="W3U-nk-SlV" detailTextLabel="0cU-st-98u" style="IBUITableViewCellStyleSubtitle" id="BYV-PN-HtB">
  18 + <rect key="frame" x="0.0" y="86" width="320" height="44"/>
  19 + <autoresizingMask key="autoresizingMask"/>
  20 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="BYV-PN-HtB" id="rT7-eh-vVf">
  21 + <rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
  22 + <autoresizingMask key="autoresizingMask"/>
  23 + <subviews>
  24 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="CACHARRACO DE LA MUERTE" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="W3U-nk-SlV">
  25 + <rect key="frame" x="15" y="3" width="259" height="22"/>
  26 + <autoresizingMask key="autoresizingMask"/>
  27 + <fontDescription key="fontDescription" type="system" pointSize="18"/>
  28 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  29 + <nil key="highlightedColor"/>
  30 + </label>
  31 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="A TOPE" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="0cU-st-98u">
  32 + <rect key="frame" x="15" y="25" width="44" height="15"/>
  33 + <autoresizingMask key="autoresizingMask"/>
  34 + <fontDescription key="fontDescription" type="system" pointSize="12"/>
  35 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  36 + <nil key="highlightedColor"/>
  37 + </label>
  38 + </subviews>
  39 + </tableViewCellContentView>
  40 + </tableViewCell>
  41 + </prototypes>
  42 + <connections>
  43 + <outlet property="dataSource" destination="0dd-lZ-pDC" id="cvb-TS-jTZ"/>
  44 + <outlet property="delegate" destination="0dd-lZ-pDC" id="xbT-YH-9tN"/>
  45 + </connections>
  46 + </tableView>
  47 + <navigationItem key="navigationItem" title="Seleccionar dispositivo" id="exc-MP-jDa"/>
  48 + <connections>
  49 + <segue destination="iNx-eR-wSX" kind="push" identifier="ConnectionSegue" id="3oK-BK-2Qs"/>
  50 + </connections>
  51 + </tableViewController>
  52 + <placeholder placeholderIdentifier="IBFirstResponder" id="MD6-l6-Rrg" userLabel="First Responder" sceneMemberID="firstResponder"/>
  53 + </objects>
  54 + <point key="canvasLocation" x="342" y="-9"/>
  55 + </scene>
  56 + <!--Menu Table View Controller - Conectado a:-->
  57 + <scene sceneID="uT2-Qs-t9O">
  58 + <objects>
  59 + <tableViewController id="iNx-eR-wSX" customClass="MenuTableViewController" sceneMemberID="viewController">
  60 + <tableView key="view" opaque="NO" clipsSubviews="YES" clearsContextBeforeDrawing="NO" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="44" sectionHeaderHeight="22" sectionFooterHeight="22" id="Ovd-l7-PYp">
  61 + <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
  62 + <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
  63 + <color key="backgroundColor" white="1" alpha="1" colorSpace="calibratedWhite"/>
  64 + <prototypes>
  65 + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" accessoryType="disclosureIndicator" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MenuCell" textLabel="iCG-eW-H8x" style="IBUITableViewCellStyleDefault" id="dlr-pm-ct7">
  66 + <rect key="frame" x="0.0" y="86" width="320" height="44"/>
  67 + <autoresizingMask key="autoresizingMask"/>
  68 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="dlr-pm-ct7" id="ohH-UH-dvu">
  69 + <rect key="frame" x="0.0" y="0.0" width="287" height="43"/>
  70 + <autoresizingMask key="autoresizingMask"/>
  71 + <subviews>
  72 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="iCG-eW-H8x">
  73 + <rect key="frame" x="15" y="0.0" width="270" height="43"/>
  74 + <autoresizingMask key="autoresizingMask"/>
  75 + <fontDescription key="fontDescription" type="system" pointSize="18"/>
  76 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  77 + <nil key="highlightedColor"/>
  78 + </label>
  79 + </subviews>
  80 + </tableViewCellContentView>
  81 + </tableViewCell>
  82 + <tableViewCell contentMode="scaleToFill" selectionStyle="blue" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="MaintenanceCell" textLabel="oML-ji-1Ho" detailTextLabel="Ghk-fD-iNE" style="IBUITableViewCellStyleValue1" id="apQ-aM-g3l">
  83 + <rect key="frame" x="0.0" y="130" width="320" height="44"/>
  84 + <autoresizingMask key="autoresizingMask"/>
  85 + <tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" tableViewCell="apQ-aM-g3l" id="dQQ-Yv-wa7">
  86 + <rect key="frame" x="0.0" y="0.0" width="320" height="43"/>
  87 + <autoresizingMask key="autoresizingMask"/>
  88 + <subviews>
  89 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="oML-ji-1Ho">
  90 + <rect key="frame" x="15" y="11" width="33" height="21"/>
  91 + <autoresizingMask key="autoresizingMask"/>
  92 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  93 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  94 + <nil key="highlightedColor"/>
  95 + </label>
  96 + <label opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="left" text="Detail" textAlignment="right" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" id="Ghk-fD-iNE">
  97 + <rect key="frame" x="261" y="11" width="44" height="21"/>
  98 + <autoresizingMask key="autoresizingMask"/>
  99 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  100 + <color key="textColor" red="0.55686274509803924" green="0.55686274509803924" blue="0.57647058823529407" alpha="1" colorSpace="calibratedRGB"/>
  101 + <nil key="highlightedColor"/>
  102 + </label>
  103 + </subviews>
  104 + </tableViewCellContentView>
  105 + </tableViewCell>
  106 + </prototypes>
  107 + <sections/>
  108 + <connections>
  109 + <outlet property="dataSource" destination="iNx-eR-wSX" id="RrI-xM-BHG"/>
  110 + <outlet property="delegate" destination="iNx-eR-wSX" id="cfg-Zn-vZq"/>
  111 + </connections>
  112 + </tableView>
  113 + <navigationItem key="navigationItem" title="Conectado a:" id="2rA-9H-FRE"/>
  114 + </tableViewController>
  115 + <placeholder placeholderIdentifier="IBFirstResponder" id="R4Z-ct-4GF" userLabel="First Responder" sceneMemberID="firstResponder"/>
  116 + </objects>
  117 + <point key="canvasLocation" x="834" y="-9"/>
  118 + </scene>
  119 + <!--Navigation Controller-->
  120 + <scene sceneID="Ker-Z3-hzQ">
  121 + <objects>
  122 + <navigationController definesPresentationContext="YES" id="kWw-Rk-wD6" sceneMemberID="viewController">
  123 + <navigationBar key="navigationBar" contentMode="scaleToFill" id="fTx-P1-hLO">
  124 + <autoresizingMask key="autoresizingMask"/>
  125 + </navigationBar>
  126 + <connections>
  127 + <segue destination="fM1-5w-fRr" kind="relationship" relationship="rootViewController" id="2aM-Mt-gu0"/>
  128 + </connections>
  129 + </navigationController>
  130 + <placeholder placeholderIdentifier="IBFirstResponder" id="dsv-q5-bXD" userLabel="First Responder" sceneMemberID="firstResponder"/>
  131 + </objects>
  132 + <point key="canvasLocation" x="-587" y="-9"/>
  133 + </scene>
  134 + <!--Initial View Controller-->
  135 + <scene sceneID="j5L-Mq-Nck">
  136 + <objects>
  137 + <viewController id="fM1-5w-fRr" customClass="InitialViewController" sceneMemberID="viewController">
  138 + <layoutGuides>
  139 + <viewControllerLayoutGuide type="top" id="K1W-Vd-VIX"/>
  140 + <viewControllerLayoutGuide type="bottom" id="zNe-Ob-WsU"/>
  141 + </layoutGuides>
  142 + <view key="view" contentMode="scaleToFill" id="Psa-QF-ZdS">
  143 + <rect key="frame" x="0.0" y="0.0" width="320" height="568"/>
  144 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  145 + <subviews>
  146 + <button opaque="NO" contentMode="scaleAspectFit" fixedFrame="YES" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="bXZ-vt-REt">
  147 + <rect key="frame" x="96" y="137" width="128" height="128"/>
  148 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  149 + <state key="normal" backgroundImage="bluetooth.png">
  150 + <color key="titleShadowColor" white="0.5" alpha="1" colorSpace="calibratedWhite"/>
  151 + </state>
  152 + <connections>
  153 + <action selector="connectPressed:" destination="fM1-5w-fRr" eventType="touchDown" id="yhT-cP-LLA"/>
  154 + </connections>
  155 + </button>
  156 + <label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" fixedFrame="YES" text="Conectar al dispositivo" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="oyW-sA-Lfb">
  157 + <rect key="frame" x="72" y="273" width="177" height="21"/>
  158 + <autoresizingMask key="autoresizingMask" flexibleMaxX="YES" flexibleMaxY="YES"/>
  159 + <fontDescription key="fontDescription" type="system" pointSize="17"/>
  160 + <color key="textColor" cocoaTouchSystemColor="darkTextColor"/>
  161 + <nil key="highlightedColor"/>
  162 + </label>
  163 + </subviews>
  164 + <color key="backgroundColor" white="1" alpha="1" colorSpace="custom" customColorSpace="calibratedWhite"/>
  165 + </view>
  166 + <navigationItem key="navigationItem" id="VgB-ne-yWx"/>
  167 + <connections>
  168 + <outlet property="connectButton" destination="bXZ-vt-REt" id="I34-aB-fJh"/>
  169 + <segue destination="0dd-lZ-pDC" kind="push" identifier="ShowDevices" id="MVz-xF-9GY"/>
  170 + </connections>
  171 + </viewController>
  172 + <placeholder placeholderIdentifier="IBFirstResponder" id="xI2-bK-Kvc" userLabel="First Responder" sceneMemberID="firstResponder"/>
  173 + </objects>
  174 + <point key="canvasLocation" x="-129" y="-9"/>
  175 + </scene>
  176 + </scenes>
  177 + <resources>
  178 + <image name="bluetooth.png" width="512" height="512"/>
  179 + </resources>
  180 + <simulatedMetricsContainer key="defaultSimulatedMetrics">
  181 + <simulatedStatusBarMetrics key="statusBar"/>
  182 + <simulatedOrientationMetrics key="orientation"/>
  183 + <simulatedScreenMetrics key="destination" type="retina4"/>
  184 + </simulatedMetricsContainer>
  185 +</document>