From 9e254526e4f601875b4242134d1248f9ebda57ac Mon Sep 17 00:00:00 2001 From: Imanol-Mikel Barba Sabariego Date: Sun, 2 Nov 2014 04:24:59 +0000 Subject: [PATCH] --- BT Vendor/BT Vendor.xcodeproj/project.pbxproj | 899 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/contents.xcworkspacedata | 7 +++++++ BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/DUREX Vendor Control.xccheckout | 46 ++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/FirstApp.xccheckout | 46 ++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate | Bin 0 -> 278724 bytes BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/WorkspaceSettings.xcsettings | 10 ++++++++++ BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist | 757 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/BT Vendor.xcscheme | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/DUREX Vendor Control.xcscheme | 96 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/xcschememanagement.plist | 34 ++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/DatePickerViewController.xib | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/DatePickerViewController_Landscape.xib | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/DatePickerViewController_iPad.xib | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/DatePickerViewController_iPad_Landscape.xib | 85 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/DateRangePickerViewController.xib | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/DateRangePickerViewController_Landscape.xib | 173 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/DateRangePickerViewController_iPad.xib | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/DateRangePickerViewController_iPad_Landscape.xib | 169 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/EMConnectingView_Landscape.xib | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/EMConnectingView_iPad.xib | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/EMConnectingView_iPad_Landscape.xib | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/Localizable.strings | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/NameChangerViewController.xib | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/NameChangerViewController_Landscape.xib | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/NameChangerViewController_iPad.xib | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/NameChangerViewController_iPad_Landscape.xib | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/PriceChangerViewController.xib | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/PriceChangerViewController_Landscape.xib | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/PriceChangerViewController_iPad.xib | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/PriceChangerViewController_iPad_Landscape.xib | 112 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Base.lproj/back_arrow.png | Bin 0 -> 5372 bytes BT Vendor/ChildViewController.h | 24 ++++++++++++++++++++++++ BT Vendor/ChildViewController.m | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/CommunicationProtocol.h | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/CommunicationProtocol.m | 366 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/DatePickerViewController.h | 29 +++++++++++++++++++++++++++++ BT Vendor/DatePickerViewController.m | 83 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/DateRangePickerViewController.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/DateRangePickerViewController.m | 240 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Assets/system.json | 196 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/ArrayValue.html | 1231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType.html | 1030 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v12.html | 866 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v13.html | 866 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnection.html | 1105 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnectionListManager.html | 1200 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnectionManager.html | 1333 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EMDeviceBasicDescription.html | 753 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EMResourceValue.html | 1963 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EMSchema.html | 2251 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EMUIKit.html | 299 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/EnumValue.html | 1231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/FileValue.html | 1231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/IntValue.html | 1231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/NumberValue.html | 1231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/StringValue.html | 1231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/StructValue.html | 1231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Classes/VoidValue.html | 1231 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionDelegate.html | 305 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionType.html | 1151 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionTypeScannerDelegate.html | 488 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMDeviceDelegate.html | 305 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMResourceValueProtocol.html | 1689 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/css/styles.css | 585 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/css/stylesPrint.css | 22 ++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/hierarchy.html | 216 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Docs/img/button_bar_background.png | Bin 0 -> 114 bytes BT Vendor/EmmocoMobileFramework/Docs/img/disclosure.png | Bin 0 -> 206 bytes BT Vendor/EmmocoMobileFramework/Docs/img/disclosure_open.png | Bin 0 -> 203 bytes BT Vendor/EmmocoMobileFramework/Docs/img/library_background.png | Bin 0 -> 160 bytes BT Vendor/EmmocoMobileFramework/Docs/img/title_background.png | Bin 0 -> 109 bytes BT Vendor/EmmocoMobileFramework/Docs/index.html | 209 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMBluetoothLowEnergyConnectionType.h | 34 ++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMChecksum.h | 19 +++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMConnection.h | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMConnectionListManager.h | 95 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMConnectionManager.h | 167 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMConnectionType.h | 134 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMDeviceBasicDescription.h | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMFramework.h | 28 ++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMRSSIFilter.h | 19 +++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMResourceValue+CocoaAdditions.h | 9 +++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMResourceValue.h | 246 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMSchema.h | 237 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMSerialPacket.h | 46 ++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMSignalStrengthFilter.h | 16 ++++++++++++++++ BT Vendor/EmmocoMobileFramework/Headers/EMTypes.h | 21 +++++++++++++++++++++ BT Vendor/EmmocoMobileFramework/README.md | 18 ++++++++++++++++++ BT Vendor/FirstAppExample/BT Vendor-Info.plist | 82 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/FirstAppExample/BT Vendor-Prefix.pch | 16 ++++++++++++++++ BT Vendor/FirstAppExample/BTAppDelegate.h | 20 ++++++++++++++++++++ BT Vendor/FirstAppExample/BTAppDelegate.m | 101 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/FirstAppExample/Base.lproj/EMConnectingView.xib | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/FirstAppExample/Base.lproj/MainStoryboard.storyboard | 294 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/FirstAppExample/DUREXAppViewController.h | 8 ++++++++ BT Vendor/FirstAppExample/DUREXAppViewController.m | 80 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/FirstAppExample/EMDevicePickerViewController.h | 13 +++++++++++++ BT Vendor/FirstAppExample/EMDevicePickerViewController.m | 144 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/29 - App Icon_2x.png | Bin 0 -> 12887 bytes BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/40 - App Icon_2x.png | Bin 0 -> 22017 bytes BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/60 - App Icon_2x.png | Bin 0 -> 46057 bytes BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_1x.png | Bin 0 -> 20141 bytes BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_2x.png | Bin 0 -> 72206 bytes BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/Contents.json | 93 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/FirstAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json | 23 +++++++++++++++++++++++ BT Vendor/FirstAppExample/en.lproj/EMConnectingView.strings | 3 +++ BT Vendor/FirstAppExample/en.lproj/MainStoryboard.strings | 24 ++++++++++++++++++++++++ BT Vendor/FirstAppExample/es.lproj/EMConnectingView.strings | 3 +++ BT Vendor/FirstAppExample/es.lproj/MainStoryboard.strings | 24 ++++++++++++++++++++++++ BT Vendor/FirstAppExample/main.m | 18 ++++++++++++++++++ BT Vendor/FirstAppExampleTests/FirstAppTests-Info.plist | 22 ++++++++++++++++++++++ BT Vendor/FirstAppExampleTests/TestAppExampleTests.m | 34 ++++++++++++++++++++++++++++++++++ BT Vendor/FirstAppExampleTests/en.lproj/InfoPlist.strings | 2 ++ BT Vendor/Incident.h | 18 ++++++++++++++++++ BT Vendor/Incident.m | 13 +++++++++++++ BT Vendor/IncidentLog.h | 21 +++++++++++++++++++++ BT Vendor/IncidentLog.m | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/InitialViewController.h | 19 +++++++++++++++++++ BT Vendor/InitialViewController.m | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/MenuTableViewController.h | 92 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/MenuTableViewController.m | 1756 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/NameChangerViewController.h | 33 +++++++++++++++++++++++++++++++++ BT Vendor/NameChangerViewController.m | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/PriceChangerViewController.h | 33 +++++++++++++++++++++++++++++++++ BT Vendor/PriceChangerViewController.m | 120 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Sale.h | 23 +++++++++++++++++++++++ BT Vendor/Sale.m | 20 ++++++++++++++++++++ BT Vendor/SalesLog.h | 21 +++++++++++++++++++++ BT Vendor/SalesLog.m | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Sensors.h | 28 ++++++++++++++++++++++++++++ BT Vendor/Sensors.m | 148 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/Stack.h | 19 +++++++++++++++++++ BT Vendor/Stack.m | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/UIView+Toast.h | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/UIView+Toast.m | 365 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/bluetooth.png | Bin 0 -> 1052037 bytes BT Vendor/carat-open.png | Bin 0 -> 870 bytes BT Vendor/carat.png | Bin 0 -> 180 bytes BT Vendor/en.lproj/DatePickerViewController.strings | 3 +++ BT Vendor/en.lproj/DatePickerViewController_Landscape.strings | 3 +++ BT Vendor/en.lproj/DatePickerViewController_iPad.strings | 3 +++ BT Vendor/en.lproj/DatePickerViewController_iPad_Landscape.strings | 3 +++ BT Vendor/en.lproj/DateRangePickerViewController.strings | 9 +++++++++ BT Vendor/en.lproj/DateRangePickerViewController_Landscape.strings | 9 +++++++++ BT Vendor/en.lproj/DateRangePickerViewController_iPad.strings | 9 +++++++++ BT Vendor/en.lproj/DateRangePickerViewController_iPad_Landscape.strings | 9 +++++++++ BT Vendor/en.lproj/EMConnectingView_Landscape.strings | 3 +++ BT Vendor/en.lproj/EMConnectingView_iPad.strings | 3 +++ BT Vendor/en.lproj/EMConnectingView_iPad_Landscape.strings | 3 +++ BT Vendor/en.lproj/Localizable.strings | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/en.lproj/MainStoryboard.strings | 24 ++++++++++++++++++++++++ BT Vendor/en.lproj/NameChangerViewController.strings | 12 ++++++++++++ BT Vendor/en.lproj/NameChangerViewController_Landscape.strings | 12 ++++++++++++ BT Vendor/en.lproj/NameChangerViewController_iPad.strings | 12 ++++++++++++ BT Vendor/en.lproj/NameChangerViewController_iPad_Landscape.strings | 12 ++++++++++++ BT Vendor/en.lproj/PriceChangerViewController.strings | 12 ++++++++++++ BT Vendor/en.lproj/PriceChangerViewController_Landscape.strings | 12 ++++++++++++ BT Vendor/en.lproj/PriceChangerViewController_iPad.strings | 12 ++++++++++++ BT Vendor/en.lproj/PriceChangerViewController_iPad_Landscape.strings | 12 ++++++++++++ BT Vendor/en.lproj/back_arrow.png | Bin 0 -> 5372 bytes BT Vendor/es.lproj/DatePickerViewController.strings | 3 +++ BT Vendor/es.lproj/DatePickerViewController_Landscape.strings | 3 +++ BT Vendor/es.lproj/DatePickerViewController_iPad.strings | 3 +++ BT Vendor/es.lproj/DatePickerViewController_iPad_Landscape.strings | 3 +++ BT Vendor/es.lproj/DateRangePickerViewController.strings | 9 +++++++++ BT Vendor/es.lproj/DateRangePickerViewController_Landscape.strings | 9 +++++++++ BT Vendor/es.lproj/DateRangePickerViewController_iPad.strings | 9 +++++++++ BT Vendor/es.lproj/DateRangePickerViewController_iPad_Landscape.strings | 9 +++++++++ BT Vendor/es.lproj/EMConnectingView_Landscape.strings | 3 +++ BT Vendor/es.lproj/EMConnectingView_iPad.strings | 3 +++ BT Vendor/es.lproj/EMConnectingView_iPad_Landscape.strings | 3 +++ BT Vendor/es.lproj/Localizable.strings | 116 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ BT Vendor/es.lproj/MainStoryboard.strings | 24 ++++++++++++++++++++++++ BT Vendor/es.lproj/NameChangerViewController.strings | 12 ++++++++++++ BT Vendor/es.lproj/NameChangerViewController_Landscape.strings | 12 ++++++++++++ BT Vendor/es.lproj/NameChangerViewController_iPad.strings | 12 ++++++++++++ BT Vendor/es.lproj/NameChangerViewController_iPad_Landscape.strings | 12 ++++++++++++ BT Vendor/es.lproj/PriceChangerViewController.strings | 12 ++++++++++++ BT Vendor/es.lproj/PriceChangerViewController_Landscape.strings | 12 ++++++++++++ BT Vendor/es.lproj/PriceChangerViewController_iPad.strings | 12 ++++++++++++ BT Vendor/es.lproj/PriceChangerViewController_iPad_Landscape.strings | 12 ++++++++++++ BT Vendor/es.lproj/back_arrow.png | Bin 0 -> 6267 bytes BT Vendor/icon_checkmark.png | Bin 0 -> 2991 bytes BT Vendor/icon_delete.png | Bin 0 -> 3002 bytes BT Vendor/system.json | 246 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ DUREX Vendor Control/BT Vendor.xcodeproj/project.pbxproj | 899 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/contents.xcworkspacedata | 7 ------- DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/DUREX Vendor Control.xccheckout | 46 ---------------------------------------------- DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/FirstApp.xccheckout | 46 ---------------------------------------------- DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate | Bin 278724 -> 0 bytes DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/WorkspaceSettings.xcsettings | 10 ---------- DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist | 757 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/BT Vendor.xcscheme | 96 ------------------------------------------------------------------------------------------------ DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/DUREX Vendor Control.xcscheme | 96 ------------------------------------------------------------------------------------------------ DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/xcschememanagement.plist | 34 ---------------------------------- DUREX Vendor Control/Base.lproj/DatePickerViewController.xib | 84 ------------------------------------------------------------------------------------ DUREX Vendor Control/Base.lproj/DatePickerViewController_Landscape.xib | 85 ------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/DatePickerViewController_iPad.xib | 84 ------------------------------------------------------------------------------------ DUREX Vendor Control/Base.lproj/DatePickerViewController_iPad_Landscape.xib | 85 ------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/DateRangePickerViewController.xib | 168 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ DUREX Vendor Control/Base.lproj/DateRangePickerViewController_Landscape.xib | 173 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/DateRangePickerViewController_iPad.xib | 168 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ DUREX Vendor Control/Base.lproj/DateRangePickerViewController_iPad_Landscape.xib | 169 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/EMConnectingView_Landscape.xib | 51 --------------------------------------------------- DUREX Vendor Control/Base.lproj/EMConnectingView_iPad.xib | 50 -------------------------------------------------- DUREX Vendor Control/Base.lproj/EMConnectingView_iPad_Landscape.xib | 51 --------------------------------------------------- DUREX Vendor Control/Base.lproj/Localizable.strings | 116 -------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/NameChangerViewController.xib | 112 ---------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/NameChangerViewController_Landscape.xib | 113 ----------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/NameChangerViewController_iPad.xib | 111 --------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/NameChangerViewController_iPad_Landscape.xib | 112 ---------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/PriceChangerViewController.xib | 112 ---------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/PriceChangerViewController_Landscape.xib | 113 ----------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/PriceChangerViewController_iPad.xib | 111 --------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/PriceChangerViewController_iPad_Landscape.xib | 112 ---------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Base.lproj/back_arrow.png | Bin 5372 -> 0 bytes DUREX Vendor Control/ChildViewController.h | 24 ------------------------ DUREX Vendor Control/ChildViewController.m | 59 ----------------------------------------------------------- DUREX Vendor Control/CommunicationProtocol.h | 49 ------------------------------------------------- DUREX Vendor Control/CommunicationProtocol.m | 366 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ DUREX Vendor Control/DatePickerViewController.h | 29 ----------------------------- DUREX Vendor Control/DatePickerViewController.m | 83 ----------------------------------------------------------------------------------- DUREX Vendor Control/DateRangePickerViewController.h | 47 ----------------------------------------------- DUREX Vendor Control/DateRangePickerViewController.m | 240 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ DUREX Vendor Control/EmmocoMobileFramework/Assets/system.json | 196 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/ArrayValue.html | 1231 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType.html | 1030 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v12.html | 866 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v13.html | 866 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnection.html | 1105 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnectionListManager.html | 1200 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnectionManager.html | 1333 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMDeviceBasicDescription.html | 753 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMResourceValue.html | 1963 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMSchema.html | 2251 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMUIKit.html | 299 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EnumValue.html | 1231 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/FileValue.html | 1231 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/IntValue.html | 1231 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/NumberValue.html | 1231 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/StringValue.html | 1231 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/StructValue.html | 1231 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/VoidValue.html | 1231 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionDelegate.html | 305 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionType.html | 1151 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionTypeScannerDelegate.html | 488 -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMDeviceDelegate.html | 305 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMResourceValueProtocol.html | 1689 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/css/styles.css | 585 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/css/stylesPrint.css | 22 ---------------------- DUREX Vendor Control/EmmocoMobileFramework/Docs/hierarchy.html | 216 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ DUREX Vendor Control/EmmocoMobileFramework/Docs/img/button_bar_background.png | Bin 114 -> 0 bytes DUREX Vendor Control/EmmocoMobileFramework/Docs/img/disclosure.png | Bin 206 -> 0 bytes DUREX Vendor Control/EmmocoMobileFramework/Docs/img/disclosure_open.png | Bin 203 -> 0 bytes DUREX Vendor Control/EmmocoMobileFramework/Docs/img/library_background.png | Bin 160 -> 0 bytes DUREX Vendor Control/EmmocoMobileFramework/Docs/img/title_background.png | Bin 109 -> 0 bytes DUREX Vendor Control/EmmocoMobileFramework/Docs/index.html | 209 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMBluetoothLowEnergyConnectionType.h | 34 ---------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMChecksum.h | 19 ------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnection.h | 134 -------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionListManager.h | 95 ----------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionManager.h | 167 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionType.h | 134 -------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMDeviceBasicDescription.h | 64 ---------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMFramework.h | 28 ---------------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMRSSIFilter.h | 19 ------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMResourceValue+CocoaAdditions.h | 9 --------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMResourceValue.h | 246 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSchema.h | 237 --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSerialPacket.h | 46 ---------------------------------------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSignalStrengthFilter.h | 16 ---------------- DUREX Vendor Control/EmmocoMobileFramework/Headers/EMTypes.h | 21 --------------------- DUREX Vendor Control/EmmocoMobileFramework/README.md | 18 ------------------ DUREX Vendor Control/FirstAppExample/BT Vendor-Info.plist | 82 ---------------------------------------------------------------------------------- DUREX Vendor Control/FirstAppExample/BT Vendor-Prefix.pch | 16 ---------------- DUREX Vendor Control/FirstAppExample/BTAppDelegate.h | 20 -------------------- DUREX Vendor Control/FirstAppExample/BTAppDelegate.m | 101 ----------------------------------------------------------------------------------------------------- DUREX Vendor Control/FirstAppExample/Base.lproj/EMConnectingView.xib | 50 -------------------------------------------------- DUREX Vendor Control/FirstAppExample/Base.lproj/MainStoryboard.storyboard | 294 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ DUREX Vendor Control/FirstAppExample/DUREXAppViewController.h | 8 -------- DUREX Vendor Control/FirstAppExample/DUREXAppViewController.m | 80 -------------------------------------------------------------------------------- DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.h | 13 ------------- DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.m | 144 ------------------------------------------------------------------------------------------------------------------------------------------------ DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/29 - App Icon_2x.png | Bin 12887 -> 0 bytes DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/40 - App Icon_2x.png | Bin 22017 -> 0 bytes DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/60 - App Icon_2x.png | Bin 46057 -> 0 bytes DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_1x.png | Bin 20141 -> 0 bytes DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_2x.png | Bin 72206 -> 0 bytes DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/Contents.json | 93 --------------------------------------------------------------------------------------------- DUREX Vendor Control/FirstAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json | 23 ----------------------- DUREX Vendor Control/FirstAppExample/en.lproj/EMConnectingView.strings | 3 --- DUREX Vendor Control/FirstAppExample/en.lproj/MainStoryboard.strings | 24 ------------------------ DUREX Vendor Control/FirstAppExample/es.lproj/EMConnectingView.strings | 3 --- DUREX Vendor Control/FirstAppExample/es.lproj/MainStoryboard.strings | 24 ------------------------ DUREX Vendor Control/FirstAppExample/main.m | 18 ------------------ DUREX Vendor Control/FirstAppExampleTests/FirstAppTests-Info.plist | 22 ---------------------- DUREX Vendor Control/FirstAppExampleTests/TestAppExampleTests.m | 34 ---------------------------------- DUREX Vendor Control/FirstAppExampleTests/en.lproj/InfoPlist.strings | 2 -- DUREX Vendor Control/Incident.h | 18 ------------------ DUREX Vendor Control/Incident.m | 13 ------------- DUREX Vendor Control/IncidentLog.h | 21 --------------------- DUREX Vendor Control/IncidentLog.m | 55 ------------------------------------------------------- DUREX Vendor Control/InitialViewController.h | 19 ------------------- DUREX Vendor Control/InitialViewController.m | 55 ------------------------------------------------------- DUREX Vendor Control/MenuTableViewController.h | 92 -------------------------------------------------------------------------------------------- DUREX Vendor Control/MenuTableViewController.m | 1756 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/NameChangerViewController.h | 33 --------------------------------- DUREX Vendor Control/NameChangerViewController.m | 102 ------------------------------------------------------------------------------------------------------ DUREX Vendor Control/PriceChangerViewController.h | 33 --------------------------------- DUREX Vendor Control/PriceChangerViewController.m | 120 ------------------------------------------------------------------------------------------------------------------------ DUREX Vendor Control/Sale.h | 23 ----------------------- DUREX Vendor Control/Sale.m | 20 -------------------- DUREX Vendor Control/SalesLog.h | 21 --------------------- DUREX Vendor Control/SalesLog.m | 66 ------------------------------------------------------------------ DUREX Vendor Control/Sensors.h | 28 ---------------------------- DUREX Vendor Control/Sensors.m | 148 ---------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/Stack.h | 19 ------------------- DUREX Vendor Control/Stack.m | 49 ------------------------------------------------- DUREX Vendor Control/UIView+Toast.h | 50 -------------------------------------------------- DUREX Vendor Control/UIView+Toast.m | 365 ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/bluetooth.png | Bin 1052037 -> 0 bytes DUREX Vendor Control/carat-open.png | Bin 870 -> 0 bytes DUREX Vendor Control/carat.png | Bin 180 -> 0 bytes DUREX Vendor Control/en.lproj/DatePickerViewController.strings | 3 --- DUREX Vendor Control/en.lproj/DatePickerViewController_Landscape.strings | 3 --- DUREX Vendor Control/en.lproj/DatePickerViewController_iPad.strings | 3 --- DUREX Vendor Control/en.lproj/DatePickerViewController_iPad_Landscape.strings | 3 --- DUREX Vendor Control/en.lproj/DateRangePickerViewController.strings | 9 --------- DUREX Vendor Control/en.lproj/DateRangePickerViewController_Landscape.strings | 9 --------- DUREX Vendor Control/en.lproj/DateRangePickerViewController_iPad.strings | 9 --------- DUREX Vendor Control/en.lproj/DateRangePickerViewController_iPad_Landscape.strings | 9 --------- DUREX Vendor Control/en.lproj/EMConnectingView_Landscape.strings | 3 --- DUREX Vendor Control/en.lproj/EMConnectingView_iPad.strings | 3 --- DUREX Vendor Control/en.lproj/EMConnectingView_iPad_Landscape.strings | 3 --- DUREX Vendor Control/en.lproj/Localizable.strings | 116 -------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/en.lproj/MainStoryboard.strings | 24 ------------------------ DUREX Vendor Control/en.lproj/NameChangerViewController.strings | 12 ------------ DUREX Vendor Control/en.lproj/NameChangerViewController_Landscape.strings | 12 ------------ DUREX Vendor Control/en.lproj/NameChangerViewController_iPad.strings | 12 ------------ DUREX Vendor Control/en.lproj/NameChangerViewController_iPad_Landscape.strings | 12 ------------ DUREX Vendor Control/en.lproj/PriceChangerViewController.strings | 12 ------------ DUREX Vendor Control/en.lproj/PriceChangerViewController_Landscape.strings | 12 ------------ DUREX Vendor Control/en.lproj/PriceChangerViewController_iPad.strings | 12 ------------ DUREX Vendor Control/en.lproj/PriceChangerViewController_iPad_Landscape.strings | 12 ------------ DUREX Vendor Control/en.lproj/back_arrow.png | Bin 5372 -> 0 bytes DUREX Vendor Control/es.lproj/DatePickerViewController.strings | 3 --- DUREX Vendor Control/es.lproj/DatePickerViewController_Landscape.strings | 3 --- DUREX Vendor Control/es.lproj/DatePickerViewController_iPad.strings | 3 --- DUREX Vendor Control/es.lproj/DatePickerViewController_iPad_Landscape.strings | 3 --- DUREX Vendor Control/es.lproj/DateRangePickerViewController.strings | 9 --------- DUREX Vendor Control/es.lproj/DateRangePickerViewController_Landscape.strings | 9 --------- DUREX Vendor Control/es.lproj/DateRangePickerViewController_iPad.strings | 9 --------- DUREX Vendor Control/es.lproj/DateRangePickerViewController_iPad_Landscape.strings | 9 --------- DUREX Vendor Control/es.lproj/EMConnectingView_Landscape.strings | 3 --- DUREX Vendor Control/es.lproj/EMConnectingView_iPad.strings | 3 --- DUREX Vendor Control/es.lproj/EMConnectingView_iPad_Landscape.strings | 3 --- DUREX Vendor Control/es.lproj/Localizable.strings | 116 -------------------------------------------------------------------------------------------------------------------- DUREX Vendor Control/es.lproj/MainStoryboard.strings | 24 ------------------------ DUREX Vendor Control/es.lproj/NameChangerViewController.strings | 12 ------------ DUREX Vendor Control/es.lproj/NameChangerViewController_Landscape.strings | 12 ------------ DUREX Vendor Control/es.lproj/NameChangerViewController_iPad.strings | 12 ------------ DUREX Vendor Control/es.lproj/NameChangerViewController_iPad_Landscape.strings | 12 ------------ DUREX Vendor Control/es.lproj/PriceChangerViewController.strings | 12 ------------ DUREX Vendor Control/es.lproj/PriceChangerViewController_Landscape.strings | 12 ------------ DUREX Vendor Control/es.lproj/PriceChangerViewController_iPad.strings | 12 ------------ DUREX Vendor Control/es.lproj/PriceChangerViewController_iPad_Landscape.strings | 12 ------------ DUREX Vendor Control/es.lproj/back_arrow.png | Bin 6267 -> 0 bytes DUREX Vendor Control/icon_checkmark.png | Bin 2991 -> 0 bytes DUREX Vendor Control/icon_delete.png | Bin 3002 -> 0 bytes DUREX Vendor Control/system.json | 246 ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 370 files changed, 38027 insertions(+), 38027 deletions(-) create mode 100644 BT Vendor/BT Vendor.xcodeproj/project.pbxproj create mode 100644 BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/DUREX Vendor Control.xccheckout create mode 100644 BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/FirstApp.xccheckout create mode 100644 BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/WorkspaceSettings.xcsettings create mode 100644 BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/BT Vendor.xcscheme create mode 100644 BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/DUREX Vendor Control.xcscheme create mode 100644 BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 BT Vendor/Base.lproj/DatePickerViewController.xib create mode 100644 BT Vendor/Base.lproj/DatePickerViewController_Landscape.xib create mode 100644 BT Vendor/Base.lproj/DatePickerViewController_iPad.xib create mode 100644 BT Vendor/Base.lproj/DatePickerViewController_iPad_Landscape.xib create mode 100644 BT Vendor/Base.lproj/DateRangePickerViewController.xib create mode 100644 BT Vendor/Base.lproj/DateRangePickerViewController_Landscape.xib create mode 100644 BT Vendor/Base.lproj/DateRangePickerViewController_iPad.xib create mode 100644 BT Vendor/Base.lproj/DateRangePickerViewController_iPad_Landscape.xib create mode 100644 BT Vendor/Base.lproj/EMConnectingView_Landscape.xib create mode 100644 BT Vendor/Base.lproj/EMConnectingView_iPad.xib create mode 100644 BT Vendor/Base.lproj/EMConnectingView_iPad_Landscape.xib create mode 100644 BT Vendor/Base.lproj/Localizable.strings create mode 100644 BT Vendor/Base.lproj/NameChangerViewController.xib create mode 100644 BT Vendor/Base.lproj/NameChangerViewController_Landscape.xib create mode 100644 BT Vendor/Base.lproj/NameChangerViewController_iPad.xib create mode 100644 BT Vendor/Base.lproj/NameChangerViewController_iPad_Landscape.xib create mode 100644 BT Vendor/Base.lproj/PriceChangerViewController.xib create mode 100644 BT Vendor/Base.lproj/PriceChangerViewController_Landscape.xib create mode 100644 BT Vendor/Base.lproj/PriceChangerViewController_iPad.xib create mode 100644 BT Vendor/Base.lproj/PriceChangerViewController_iPad_Landscape.xib create mode 100644 BT Vendor/Base.lproj/back_arrow.png create mode 100644 BT Vendor/ChildViewController.h create mode 100644 BT Vendor/ChildViewController.m create mode 100644 BT Vendor/CommunicationProtocol.h create mode 100644 BT Vendor/CommunicationProtocol.m create mode 100644 BT Vendor/DatePickerViewController.h create mode 100644 BT Vendor/DatePickerViewController.m create mode 100644 BT Vendor/DateRangePickerViewController.h create mode 100644 BT Vendor/DateRangePickerViewController.m create mode 100644 BT Vendor/EmmocoMobileFramework/Assets/system.json create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/ArrayValue.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v12.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v13.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnection.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnectionListManager.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnectionManager.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EMDeviceBasicDescription.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EMResourceValue.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EMSchema.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EMUIKit.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/EnumValue.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/FileValue.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/IntValue.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/NumberValue.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/StringValue.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/StructValue.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Classes/VoidValue.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionDelegate.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionType.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionTypeScannerDelegate.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMDeviceDelegate.html create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMResourceValueProtocol.html create mode 100755 BT Vendor/EmmocoMobileFramework/Docs/css/styles.css create mode 100755 BT Vendor/EmmocoMobileFramework/Docs/css/stylesPrint.css create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/hierarchy.html create mode 100755 BT Vendor/EmmocoMobileFramework/Docs/img/button_bar_background.png create mode 100755 BT Vendor/EmmocoMobileFramework/Docs/img/disclosure.png create mode 100755 BT Vendor/EmmocoMobileFramework/Docs/img/disclosure_open.png create mode 100755 BT Vendor/EmmocoMobileFramework/Docs/img/library_background.png create mode 100755 BT Vendor/EmmocoMobileFramework/Docs/img/title_background.png create mode 100644 BT Vendor/EmmocoMobileFramework/Docs/index.html create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMBluetoothLowEnergyConnectionType.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMChecksum.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMConnection.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMConnectionListManager.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMConnectionManager.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMConnectionType.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMDeviceBasicDescription.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMFramework.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMRSSIFilter.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMResourceValue+CocoaAdditions.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMResourceValue.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMSchema.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMSerialPacket.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMSignalStrengthFilter.h create mode 100644 BT Vendor/EmmocoMobileFramework/Headers/EMTypes.h create mode 100644 BT Vendor/EmmocoMobileFramework/README.md create mode 100644 BT Vendor/FirstAppExample/BT Vendor-Info.plist create mode 100644 BT Vendor/FirstAppExample/BT Vendor-Prefix.pch create mode 100644 BT Vendor/FirstAppExample/BTAppDelegate.h create mode 100644 BT Vendor/FirstAppExample/BTAppDelegate.m create mode 100644 BT Vendor/FirstAppExample/Base.lproj/EMConnectingView.xib create mode 100644 BT Vendor/FirstAppExample/Base.lproj/MainStoryboard.storyboard create mode 100644 BT Vendor/FirstAppExample/DUREXAppViewController.h create mode 100644 BT Vendor/FirstAppExample/DUREXAppViewController.m create mode 100644 BT Vendor/FirstAppExample/EMDevicePickerViewController.h create mode 100644 BT Vendor/FirstAppExample/EMDevicePickerViewController.m create mode 100644 BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/29 - App Icon_2x.png create mode 100644 BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/40 - App Icon_2x.png create mode 100644 BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/60 - App Icon_2x.png create mode 100644 BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_1x.png create mode 100644 BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_2x.png create mode 100644 BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/Contents.json create mode 100644 BT Vendor/FirstAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json create mode 100644 BT Vendor/FirstAppExample/en.lproj/EMConnectingView.strings create mode 100644 BT Vendor/FirstAppExample/en.lproj/MainStoryboard.strings create mode 100644 BT Vendor/FirstAppExample/es.lproj/EMConnectingView.strings create mode 100644 BT Vendor/FirstAppExample/es.lproj/MainStoryboard.strings create mode 100644 BT Vendor/FirstAppExample/main.m create mode 100644 BT Vendor/FirstAppExampleTests/FirstAppTests-Info.plist create mode 100644 BT Vendor/FirstAppExampleTests/TestAppExampleTests.m create mode 100644 BT Vendor/FirstAppExampleTests/en.lproj/InfoPlist.strings create mode 100644 BT Vendor/Incident.h create mode 100644 BT Vendor/Incident.m create mode 100644 BT Vendor/IncidentLog.h create mode 100644 BT Vendor/IncidentLog.m create mode 100644 BT Vendor/InitialViewController.h create mode 100644 BT Vendor/InitialViewController.m create mode 100644 BT Vendor/MenuTableViewController.h create mode 100644 BT Vendor/MenuTableViewController.m create mode 100644 BT Vendor/NameChangerViewController.h create mode 100644 BT Vendor/NameChangerViewController.m create mode 100644 BT Vendor/PriceChangerViewController.h create mode 100644 BT Vendor/PriceChangerViewController.m create mode 100644 BT Vendor/Sale.h create mode 100644 BT Vendor/Sale.m create mode 100644 BT Vendor/SalesLog.h create mode 100644 BT Vendor/SalesLog.m create mode 100644 BT Vendor/Sensors.h create mode 100644 BT Vendor/Sensors.m create mode 100644 BT Vendor/Stack.h create mode 100644 BT Vendor/Stack.m create mode 100755 BT Vendor/UIView+Toast.h create mode 100755 BT Vendor/UIView+Toast.m create mode 100644 BT Vendor/bluetooth.png create mode 100644 BT Vendor/carat-open.png create mode 100644 BT Vendor/carat.png create mode 100644 BT Vendor/en.lproj/DatePickerViewController.strings create mode 100644 BT Vendor/en.lproj/DatePickerViewController_Landscape.strings create mode 100644 BT Vendor/en.lproj/DatePickerViewController_iPad.strings create mode 100644 BT Vendor/en.lproj/DatePickerViewController_iPad_Landscape.strings create mode 100644 BT Vendor/en.lproj/DateRangePickerViewController.strings create mode 100644 BT Vendor/en.lproj/DateRangePickerViewController_Landscape.strings create mode 100644 BT Vendor/en.lproj/DateRangePickerViewController_iPad.strings create mode 100644 BT Vendor/en.lproj/DateRangePickerViewController_iPad_Landscape.strings create mode 100644 BT Vendor/en.lproj/EMConnectingView_Landscape.strings create mode 100644 BT Vendor/en.lproj/EMConnectingView_iPad.strings create mode 100644 BT Vendor/en.lproj/EMConnectingView_iPad_Landscape.strings create mode 100644 BT Vendor/en.lproj/Localizable.strings create mode 100644 BT Vendor/en.lproj/MainStoryboard.strings create mode 100644 BT Vendor/en.lproj/NameChangerViewController.strings create mode 100644 BT Vendor/en.lproj/NameChangerViewController_Landscape.strings create mode 100644 BT Vendor/en.lproj/NameChangerViewController_iPad.strings create mode 100644 BT Vendor/en.lproj/NameChangerViewController_iPad_Landscape.strings create mode 100644 BT Vendor/en.lproj/PriceChangerViewController.strings create mode 100644 BT Vendor/en.lproj/PriceChangerViewController_Landscape.strings create mode 100644 BT Vendor/en.lproj/PriceChangerViewController_iPad.strings create mode 100644 BT Vendor/en.lproj/PriceChangerViewController_iPad_Landscape.strings create mode 100644 BT Vendor/en.lproj/back_arrow.png create mode 100644 BT Vendor/es.lproj/DatePickerViewController.strings create mode 100644 BT Vendor/es.lproj/DatePickerViewController_Landscape.strings create mode 100644 BT Vendor/es.lproj/DatePickerViewController_iPad.strings create mode 100644 BT Vendor/es.lproj/DatePickerViewController_iPad_Landscape.strings create mode 100644 BT Vendor/es.lproj/DateRangePickerViewController.strings create mode 100644 BT Vendor/es.lproj/DateRangePickerViewController_Landscape.strings create mode 100644 BT Vendor/es.lproj/DateRangePickerViewController_iPad.strings create mode 100644 BT Vendor/es.lproj/DateRangePickerViewController_iPad_Landscape.strings create mode 100644 BT Vendor/es.lproj/EMConnectingView_Landscape.strings create mode 100644 BT Vendor/es.lproj/EMConnectingView_iPad.strings create mode 100644 BT Vendor/es.lproj/EMConnectingView_iPad_Landscape.strings create mode 100644 BT Vendor/es.lproj/Localizable.strings create mode 100644 BT Vendor/es.lproj/MainStoryboard.strings create mode 100644 BT Vendor/es.lproj/NameChangerViewController.strings create mode 100644 BT Vendor/es.lproj/NameChangerViewController_Landscape.strings create mode 100644 BT Vendor/es.lproj/NameChangerViewController_iPad.strings create mode 100644 BT Vendor/es.lproj/NameChangerViewController_iPad_Landscape.strings create mode 100644 BT Vendor/es.lproj/PriceChangerViewController.strings create mode 100644 BT Vendor/es.lproj/PriceChangerViewController_Landscape.strings create mode 100644 BT Vendor/es.lproj/PriceChangerViewController_iPad.strings create mode 100644 BT Vendor/es.lproj/PriceChangerViewController_iPad_Landscape.strings create mode 100644 BT Vendor/es.lproj/back_arrow.png create mode 100755 BT Vendor/icon_checkmark.png create mode 100755 BT Vendor/icon_delete.png create mode 100644 BT Vendor/system.json delete mode 100644 DUREX Vendor Control/BT Vendor.xcodeproj/project.pbxproj delete mode 100644 DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/contents.xcworkspacedata delete mode 100644 DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/DUREX Vendor Control.xccheckout delete mode 100644 DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/FirstApp.xccheckout delete mode 100644 DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate delete mode 100644 DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/WorkspaceSettings.xcsettings delete mode 100644 DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist delete mode 100644 DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/BT Vendor.xcscheme delete mode 100644 DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/DUREX Vendor Control.xcscheme delete mode 100644 DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/xcschememanagement.plist delete mode 100644 DUREX Vendor Control/Base.lproj/DatePickerViewController.xib delete mode 100644 DUREX Vendor Control/Base.lproj/DatePickerViewController_Landscape.xib delete mode 100644 DUREX Vendor Control/Base.lproj/DatePickerViewController_iPad.xib delete mode 100644 DUREX Vendor Control/Base.lproj/DatePickerViewController_iPad_Landscape.xib delete mode 100644 DUREX Vendor Control/Base.lproj/DateRangePickerViewController.xib delete mode 100644 DUREX Vendor Control/Base.lproj/DateRangePickerViewController_Landscape.xib delete mode 100644 DUREX Vendor Control/Base.lproj/DateRangePickerViewController_iPad.xib delete mode 100644 DUREX Vendor Control/Base.lproj/DateRangePickerViewController_iPad_Landscape.xib delete mode 100644 DUREX Vendor Control/Base.lproj/EMConnectingView_Landscape.xib delete mode 100644 DUREX Vendor Control/Base.lproj/EMConnectingView_iPad.xib delete mode 100644 DUREX Vendor Control/Base.lproj/EMConnectingView_iPad_Landscape.xib delete mode 100644 DUREX Vendor Control/Base.lproj/Localizable.strings delete mode 100644 DUREX Vendor Control/Base.lproj/NameChangerViewController.xib delete mode 100644 DUREX Vendor Control/Base.lproj/NameChangerViewController_Landscape.xib delete mode 100644 DUREX Vendor Control/Base.lproj/NameChangerViewController_iPad.xib delete mode 100644 DUREX Vendor Control/Base.lproj/NameChangerViewController_iPad_Landscape.xib delete mode 100644 DUREX Vendor Control/Base.lproj/PriceChangerViewController.xib delete mode 100644 DUREX Vendor Control/Base.lproj/PriceChangerViewController_Landscape.xib delete mode 100644 DUREX Vendor Control/Base.lproj/PriceChangerViewController_iPad.xib delete mode 100644 DUREX Vendor Control/Base.lproj/PriceChangerViewController_iPad_Landscape.xib delete mode 100644 DUREX Vendor Control/Base.lproj/back_arrow.png delete mode 100644 DUREX Vendor Control/ChildViewController.h delete mode 100644 DUREX Vendor Control/ChildViewController.m delete mode 100644 DUREX Vendor Control/CommunicationProtocol.h delete mode 100644 DUREX Vendor Control/CommunicationProtocol.m delete mode 100644 DUREX Vendor Control/DatePickerViewController.h delete mode 100644 DUREX Vendor Control/DatePickerViewController.m delete mode 100644 DUREX Vendor Control/DateRangePickerViewController.h delete mode 100644 DUREX Vendor Control/DateRangePickerViewController.m delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Assets/system.json delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/ArrayValue.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v12.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v13.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnection.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnectionListManager.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnectionManager.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMDeviceBasicDescription.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMResourceValue.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMSchema.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMUIKit.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EnumValue.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/FileValue.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/IntValue.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/NumberValue.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/StringValue.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/StructValue.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/VoidValue.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionDelegate.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionType.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionTypeScannerDelegate.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMDeviceDelegate.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMResourceValueProtocol.html delete mode 100755 DUREX Vendor Control/EmmocoMobileFramework/Docs/css/styles.css delete mode 100755 DUREX Vendor Control/EmmocoMobileFramework/Docs/css/stylesPrint.css delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/hierarchy.html delete mode 100755 DUREX Vendor Control/EmmocoMobileFramework/Docs/img/button_bar_background.png delete mode 100755 DUREX Vendor Control/EmmocoMobileFramework/Docs/img/disclosure.png delete mode 100755 DUREX Vendor Control/EmmocoMobileFramework/Docs/img/disclosure_open.png delete mode 100755 DUREX Vendor Control/EmmocoMobileFramework/Docs/img/library_background.png delete mode 100755 DUREX Vendor Control/EmmocoMobileFramework/Docs/img/title_background.png delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Docs/index.html delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMBluetoothLowEnergyConnectionType.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMChecksum.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnection.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionListManager.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionManager.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionType.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMDeviceBasicDescription.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMFramework.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMRSSIFilter.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMResourceValue+CocoaAdditions.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMResourceValue.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSchema.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSerialPacket.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSignalStrengthFilter.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/Headers/EMTypes.h delete mode 100644 DUREX Vendor Control/EmmocoMobileFramework/README.md delete mode 100644 DUREX Vendor Control/FirstAppExample/BT Vendor-Info.plist delete mode 100644 DUREX Vendor Control/FirstAppExample/BT Vendor-Prefix.pch delete mode 100644 DUREX Vendor Control/FirstAppExample/BTAppDelegate.h delete mode 100644 DUREX Vendor Control/FirstAppExample/BTAppDelegate.m delete mode 100644 DUREX Vendor Control/FirstAppExample/Base.lproj/EMConnectingView.xib delete mode 100644 DUREX Vendor Control/FirstAppExample/Base.lproj/MainStoryboard.storyboard delete mode 100644 DUREX Vendor Control/FirstAppExample/DUREXAppViewController.h delete mode 100644 DUREX Vendor Control/FirstAppExample/DUREXAppViewController.m delete mode 100644 DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.h delete mode 100644 DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.m delete mode 100644 DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/29 - App Icon_2x.png delete mode 100644 DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/40 - App Icon_2x.png delete mode 100644 DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/60 - App Icon_2x.png delete mode 100644 DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_1x.png delete mode 100644 DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_2x.png delete mode 100644 DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/Contents.json delete mode 100644 DUREX Vendor Control/FirstAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json delete mode 100644 DUREX Vendor Control/FirstAppExample/en.lproj/EMConnectingView.strings delete mode 100644 DUREX Vendor Control/FirstAppExample/en.lproj/MainStoryboard.strings delete mode 100644 DUREX Vendor Control/FirstAppExample/es.lproj/EMConnectingView.strings delete mode 100644 DUREX Vendor Control/FirstAppExample/es.lproj/MainStoryboard.strings delete mode 100644 DUREX Vendor Control/FirstAppExample/main.m delete mode 100644 DUREX Vendor Control/FirstAppExampleTests/FirstAppTests-Info.plist delete mode 100644 DUREX Vendor Control/FirstAppExampleTests/TestAppExampleTests.m delete mode 100644 DUREX Vendor Control/FirstAppExampleTests/en.lproj/InfoPlist.strings delete mode 100644 DUREX Vendor Control/Incident.h delete mode 100644 DUREX Vendor Control/Incident.m delete mode 100644 DUREX Vendor Control/IncidentLog.h delete mode 100644 DUREX Vendor Control/IncidentLog.m delete mode 100644 DUREX Vendor Control/InitialViewController.h delete mode 100644 DUREX Vendor Control/InitialViewController.m delete mode 100644 DUREX Vendor Control/MenuTableViewController.h delete mode 100644 DUREX Vendor Control/MenuTableViewController.m delete mode 100644 DUREX Vendor Control/NameChangerViewController.h delete mode 100644 DUREX Vendor Control/NameChangerViewController.m delete mode 100644 DUREX Vendor Control/PriceChangerViewController.h delete mode 100644 DUREX Vendor Control/PriceChangerViewController.m delete mode 100644 DUREX Vendor Control/Sale.h delete mode 100644 DUREX Vendor Control/Sale.m delete mode 100644 DUREX Vendor Control/SalesLog.h delete mode 100644 DUREX Vendor Control/SalesLog.m delete mode 100644 DUREX Vendor Control/Sensors.h delete mode 100644 DUREX Vendor Control/Sensors.m delete mode 100644 DUREX Vendor Control/Stack.h delete mode 100644 DUREX Vendor Control/Stack.m delete mode 100755 DUREX Vendor Control/UIView+Toast.h delete mode 100755 DUREX Vendor Control/UIView+Toast.m delete mode 100644 DUREX Vendor Control/bluetooth.png delete mode 100644 DUREX Vendor Control/carat-open.png delete mode 100644 DUREX Vendor Control/carat.png delete mode 100644 DUREX Vendor Control/en.lproj/DatePickerViewController.strings delete mode 100644 DUREX Vendor Control/en.lproj/DatePickerViewController_Landscape.strings delete mode 100644 DUREX Vendor Control/en.lproj/DatePickerViewController_iPad.strings delete mode 100644 DUREX Vendor Control/en.lproj/DatePickerViewController_iPad_Landscape.strings delete mode 100644 DUREX Vendor Control/en.lproj/DateRangePickerViewController.strings delete mode 100644 DUREX Vendor Control/en.lproj/DateRangePickerViewController_Landscape.strings delete mode 100644 DUREX Vendor Control/en.lproj/DateRangePickerViewController_iPad.strings delete mode 100644 DUREX Vendor Control/en.lproj/DateRangePickerViewController_iPad_Landscape.strings delete mode 100644 DUREX Vendor Control/en.lproj/EMConnectingView_Landscape.strings delete mode 100644 DUREX Vendor Control/en.lproj/EMConnectingView_iPad.strings delete mode 100644 DUREX Vendor Control/en.lproj/EMConnectingView_iPad_Landscape.strings delete mode 100644 DUREX Vendor Control/en.lproj/Localizable.strings delete mode 100644 DUREX Vendor Control/en.lproj/MainStoryboard.strings delete mode 100644 DUREX Vendor Control/en.lproj/NameChangerViewController.strings delete mode 100644 DUREX Vendor Control/en.lproj/NameChangerViewController_Landscape.strings delete mode 100644 DUREX Vendor Control/en.lproj/NameChangerViewController_iPad.strings delete mode 100644 DUREX Vendor Control/en.lproj/NameChangerViewController_iPad_Landscape.strings delete mode 100644 DUREX Vendor Control/en.lproj/PriceChangerViewController.strings delete mode 100644 DUREX Vendor Control/en.lproj/PriceChangerViewController_Landscape.strings delete mode 100644 DUREX Vendor Control/en.lproj/PriceChangerViewController_iPad.strings delete mode 100644 DUREX Vendor Control/en.lproj/PriceChangerViewController_iPad_Landscape.strings delete mode 100644 DUREX Vendor Control/en.lproj/back_arrow.png delete mode 100644 DUREX Vendor Control/es.lproj/DatePickerViewController.strings delete mode 100644 DUREX Vendor Control/es.lproj/DatePickerViewController_Landscape.strings delete mode 100644 DUREX Vendor Control/es.lproj/DatePickerViewController_iPad.strings delete mode 100644 DUREX Vendor Control/es.lproj/DatePickerViewController_iPad_Landscape.strings delete mode 100644 DUREX Vendor Control/es.lproj/DateRangePickerViewController.strings delete mode 100644 DUREX Vendor Control/es.lproj/DateRangePickerViewController_Landscape.strings delete mode 100644 DUREX Vendor Control/es.lproj/DateRangePickerViewController_iPad.strings delete mode 100644 DUREX Vendor Control/es.lproj/DateRangePickerViewController_iPad_Landscape.strings delete mode 100644 DUREX Vendor Control/es.lproj/EMConnectingView_Landscape.strings delete mode 100644 DUREX Vendor Control/es.lproj/EMConnectingView_iPad.strings delete mode 100644 DUREX Vendor Control/es.lproj/EMConnectingView_iPad_Landscape.strings delete mode 100644 DUREX Vendor Control/es.lproj/Localizable.strings delete mode 100644 DUREX Vendor Control/es.lproj/MainStoryboard.strings delete mode 100644 DUREX Vendor Control/es.lproj/NameChangerViewController.strings delete mode 100644 DUREX Vendor Control/es.lproj/NameChangerViewController_Landscape.strings delete mode 100644 DUREX Vendor Control/es.lproj/NameChangerViewController_iPad.strings delete mode 100644 DUREX Vendor Control/es.lproj/NameChangerViewController_iPad_Landscape.strings delete mode 100644 DUREX Vendor Control/es.lproj/PriceChangerViewController.strings delete mode 100644 DUREX Vendor Control/es.lproj/PriceChangerViewController_Landscape.strings delete mode 100644 DUREX Vendor Control/es.lproj/PriceChangerViewController_iPad.strings delete mode 100644 DUREX Vendor Control/es.lproj/PriceChangerViewController_iPad_Landscape.strings delete mode 100644 DUREX Vendor Control/es.lproj/back_arrow.png delete mode 100755 DUREX Vendor Control/icon_checkmark.png delete mode 100755 DUREX Vendor Control/icon_delete.png delete mode 100644 DUREX Vendor Control/system.json diff --git a/BT Vendor/BT Vendor.xcodeproj/project.pbxproj b/BT Vendor/BT Vendor.xcodeproj/project.pbxproj new file mode 100644 index 0000000..2efaecb --- /dev/null +++ b/BT Vendor/BT Vendor.xcodeproj/project.pbxproj @@ -0,0 +1,899 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 46; + objects = { + +/* Begin PBXBuildFile section */ + 3471866118070D9300FA0FB2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3471866018070D9300FA0FB2 /* Foundation.framework */; }; + 3471866318070D9300FA0FB2 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3471866218070D9300FA0FB2 /* CoreGraphics.framework */; }; + 3471866518070D9300FA0FB2 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3471866418070D9300FA0FB2 /* UIKit.framework */; }; + 347186A618070E7200FA0FB2 /* libEMFramework.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 347186A518070E7200FA0FB2 /* libEMFramework.a */; }; + 347186AC18070FAB00FA0FB2 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 347186AB18070FAB00FA0FB2 /* CoreBluetooth.framework */; }; + 34AAB883189804FF0019860D /* BTAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB877189804FF0019860D /* BTAppDelegate.m */; }; + 34AAB885189804FF0019860D /* EMDevicePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB87A189804FF0019860D /* EMDevicePickerViewController.m */; }; + 34AAB889189804FF0019860D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB880189804FF0019860D /* main.m */; }; + 34AAB88D189805300019860D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 34AAB88C189805300019860D /* Images.xcassets */; }; + F9015D9019B73052006C7882 /* DatePickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9015D9219B73052006C7882 /* DatePickerViewController.xib */; }; + F9015D9719B7305E006C7882 /* DatePickerViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9015D9919B7305E006C7882 /* DatePickerViewController_iPad.xib */; }; + F90416FC19CC776E00333AD8 /* DateRangePickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F90416FE19CC776E00333AD8 /* DateRangePickerViewController.xib */; }; + F915612919C3D16D00126FE2 /* DateRangePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F915612719C3D16D00126FE2 /* DateRangePickerViewController.m */; }; + F92F567919B75F5E00A1EACA /* PriceChangerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F92F567719B75F5E00A1EACA /* PriceChangerViewController.m */; }; + F92F567D19B7609C00A1EACA /* PriceChangerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F92F567F19B7609C00A1EACA /* PriceChangerViewController.xib */; }; + F92F568419B760A800A1EACA /* PriceChangerViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F92F568619B760A800A1EACA /* PriceChangerViewController_iPad.xib */; }; + F92F569019B763FD00A1EACA /* NameChangerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F92F568E19B763FD00A1EACA /* NameChangerViewController.m */; }; + F92F569219B7665F00A1EACA /* NameChangerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F92F569419B7665F00A1EACA /* NameChangerViewController.xib */; }; + F92F569B19B76A5D00A1EACA /* NameChangerViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F92F569D19B76A5D00A1EACA /* NameChangerViewController_iPad.xib */; }; + F933F80419B6819400521B90 /* DatePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F933F80219B6819400521B90 /* DatePickerViewController.m */; }; + F95C3F2B19E87B8700C040C0 /* ChildViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F95C3F2A19E87B8700C040C0 /* ChildViewController.m */; }; + F961D804199A5F1000E9282C /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F961D806199A5F1000E9282C /* MainStoryboard.storyboard */; }; + F961D80C199A5F2D00E9282C /* back_arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = F961D80E199A5F2D00E9282C /* back_arrow.png */; }; + F961D816199A5FA000E9282C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F961D814199A5FA000E9282C /* Localizable.strings */; }; + F961D819199A711300E9282C /* EMConnectingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F961D81B199A711300E9282C /* EMConnectingView.xib */; }; + F975ADAC19E8248000CA4442 /* DatePickerViewController_iPad_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADAE19E8248000CA4442 /* DatePickerViewController_iPad_Landscape.xib */; }; + F975ADBB19E827EC00CA4442 /* EMConnectingView_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADBD19E827EC00CA4442 /* EMConnectingView_Landscape.xib */; }; + F975ADC219E827F500CA4442 /* EMConnectingView_iPad_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADC419E827F500CA4442 /* EMConnectingView_iPad_Landscape.xib */; }; + F975ADD519E82B7D00CA4442 /* DatePickerViewController_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADD719E82B7D00CA4442 /* DatePickerViewController_Landscape.xib */; }; + F975ADDC19E82B9800CA4442 /* PriceChangerViewController_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADDE19E82B9800CA4442 /* PriceChangerViewController_Landscape.xib */; }; + F975ADE719E82C5D00CA4442 /* PriceChangerViewController_iPad_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADE919E82C5D00CA4442 /* PriceChangerViewController_iPad_Landscape.xib */; }; + F975ADEE19E82D1400CA4442 /* NameChangerViewController_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADF019E82D1400CA4442 /* NameChangerViewController_Landscape.xib */; }; + F975ADF519E82D9F00CA4442 /* NameChangerViewController_iPad_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADF719E82D9F00CA4442 /* NameChangerViewController_iPad_Landscape.xib */; }; + F975ADFC19E8347700CA4442 /* DateRangePickerViewController_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADFE19E8347700CA4442 /* DateRangePickerViewController_Landscape.xib */; }; + F975AE0319E8359B00CA4442 /* DateRangePickerViewController_iPad_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975AE0519E8359B00CA4442 /* DateRangePickerViewController_iPad_Landscape.xib */; }; + F97B90CB19B859F500DDA9EF /* icon_checkmark.png in Resources */ = {isa = PBXBuildFile; fileRef = F97B90C919B859F500DDA9EF /* icon_checkmark.png */; }; + F97B90CC19B859F500DDA9EF /* icon_delete.png in Resources */ = {isa = PBXBuildFile; fileRef = F97B90CA19B859F500DDA9EF /* icon_delete.png */; }; + F98356D6192E835F00EA6821 /* InitialViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F98356D5192E835F00EA6821 /* InitialViewController.m */; }; + F98356D8192E906600EA6821 /* bluetooth.png in Resources */ = {isa = PBXBuildFile; fileRef = F98356D7192E906600EA6821 /* bluetooth.png */; }; + F98356DB192EAFD400EA6821 /* CommunicationProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */; }; + F98356E1192EC84700EA6821 /* MenuTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F98356E0192EC84700EA6821 /* MenuTableViewController.m */; }; + F98446F019B9EAE9005C4992 /* Sensors.m in Sources */ = {isa = PBXBuildFile; fileRef = F98446EF19B9EAE9005C4992 /* Sensors.m */; }; + F989B5FB19BBC80300657DD9 /* carat-open.png in Resources */ = {isa = PBXBuildFile; fileRef = F989B5F919BBC80300657DD9 /* carat-open.png */; }; + F989B5FC19BBC80300657DD9 /* carat.png in Resources */ = {isa = PBXBuildFile; fileRef = F989B5FA19BBC80300657DD9 /* carat.png */; }; + F989B5FF19BCD7A100657DD9 /* Sale.m in Sources */ = {isa = PBXBuildFile; fileRef = F989B5FE19BCD7A100657DD9 /* Sale.m */; }; + F989B60219BCE28C00657DD9 /* SalesLog.m in Sources */ = {isa = PBXBuildFile; fileRef = F989B60119BCE28C00657DD9 /* SalesLog.m */; }; + F996591219CC7F3D00667BEC /* DateRangePickerViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F996591419CC7F3D00667BEC /* DateRangePickerViewController_iPad.xib */; }; + F9A8EF7C192FE201009E7532 /* Stack.m in Sources */ = {isa = PBXBuildFile; fileRef = F9A8EF7B192FE201009E7532 /* Stack.m */; }; + F9B9100919E59773006D4D06 /* IncidentLog.m in Sources */ = {isa = PBXBuildFile; fileRef = F9B9100819E59773006D4D06 /* IncidentLog.m */; }; + F9B9100C19E5A0A1006D4D06 /* Incident.m in Sources */ = {isa = PBXBuildFile; fileRef = F9B9100B19E5A0A1006D4D06 /* Incident.m */; }; + F9C77F50192CDE30002DBE8A /* system.json in Resources */ = {isa = PBXBuildFile; fileRef = F9C77F4F192CDE30002DBE8A /* system.json */; }; + F9CED59A19BE086E008F3764 /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = F9CED59919BE086E008F3764 /* UIView+Toast.m */; }; + F9E4D8FD19B8FD32009A7359 /* EMConnectingView_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9E4D8FF19B8FD32009A7359 /* EMConnectingView_iPad.xib */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 3471865D18070D9300FA0FB2 /* BT Vendor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "BT Vendor.app"; sourceTree = BUILT_PRODUCTS_DIR; }; + 3471866018070D9300FA0FB2 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; + 3471866218070D9300FA0FB2 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; + 3471866418070D9300FA0FB2 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; + 3471867918070D9300FA0FB2 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; + 3471869118070E6500FA0FB2 /* EMBluetoothLowEnergyConnectionType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMBluetoothLowEnergyConnectionType.h; sourceTree = ""; }; + 3471869218070E6500FA0FB2 /* EMChecksum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMChecksum.h; sourceTree = ""; }; + 3471869318070E6500FA0FB2 /* EMConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMConnection.h; sourceTree = ""; }; + 3471869518070E6500FA0FB2 /* EMConnectionListManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMConnectionListManager.h; sourceTree = ""; }; + 3471869718070E6500FA0FB2 /* EMConnectionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMConnectionManager.h; sourceTree = ""; }; + 3471869918070E6500FA0FB2 /* EMConnectionType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMConnectionType.h; sourceTree = ""; }; + 3471869A18070E6500FA0FB2 /* EMDeviceBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMDeviceBasicDescription.h; sourceTree = ""; }; + 3471869B18070E6500FA0FB2 /* EMFramework.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMFramework.h; sourceTree = ""; }; + 3471869E18070E6500FA0FB2 /* EMResourceValue+CocoaAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EMResourceValue+CocoaAdditions.h"; sourceTree = ""; }; + 3471869F18070E6500FA0FB2 /* EMResourceValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMResourceValue.h; sourceTree = ""; }; + 347186A018070E6500FA0FB2 /* EMSchema.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMSchema.h; sourceTree = ""; }; + 347186A118070E6500FA0FB2 /* EMSerialPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMSerialPacket.h; sourceTree = ""; }; + 347186A218070E6500FA0FB2 /* EMSignalStrengthFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMSignalStrengthFilter.h; sourceTree = ""; }; + 347186A318070E6500FA0FB2 /* EMTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMTypes.h; sourceTree = ""; }; + 347186A518070E7200FA0FB2 /* libEMFramework.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libEMFramework.a; path = EmmocoMobileFramework/Framework/libEMFramework.a; sourceTree = SOURCE_ROOT; }; + 347186AB18070FAB00FA0FB2 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; }; + 34AAB876189804FF0019860D /* BTAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BTAppDelegate.h; path = FirstAppExample/BTAppDelegate.h; sourceTree = SOURCE_ROOT; }; + 34AAB877189804FF0019860D /* BTAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BTAppDelegate.m; path = FirstAppExample/BTAppDelegate.m; sourceTree = SOURCE_ROOT; }; + 34AAB879189804FF0019860D /* EMDevicePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EMDevicePickerViewController.h; path = FirstAppExample/EMDevicePickerViewController.h; sourceTree = SOURCE_ROOT; }; + 34AAB87A189804FF0019860D /* EMDevicePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EMDevicePickerViewController.m; path = FirstAppExample/EMDevicePickerViewController.m; sourceTree = SOURCE_ROOT; }; + 34AAB87E189804FF0019860D /* BT Vendor-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "BT Vendor-Info.plist"; path = "FirstAppExample/BT Vendor-Info.plist"; sourceTree = SOURCE_ROOT; }; + 34AAB87F189804FF0019860D /* BT Vendor-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "BT Vendor-Prefix.pch"; path = "FirstAppExample/BT Vendor-Prefix.pch"; sourceTree = SOURCE_ROOT; }; + 34AAB880189804FF0019860D /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = FirstAppExample/main.m; sourceTree = SOURCE_ROOT; }; + 34AAB88C189805300019860D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = FirstAppExample/Images.xcassets; sourceTree = SOURCE_ROOT; }; + F9015D9119B73052006C7882 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DatePickerViewController.xib; sourceTree = ""; }; + F9015D9419B73056006C7882 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickerViewController.strings; sourceTree = ""; }; + F9015D9619B73057006C7882 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatePickerViewController.strings; sourceTree = ""; }; + F9015D9819B7305E006C7882 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DatePickerViewController_iPad.xib; sourceTree = ""; }; + F9015D9B19B73062006C7882 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickerViewController_iPad.strings; sourceTree = ""; }; + F9015D9D19B73062006C7882 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatePickerViewController_iPad.strings; sourceTree = ""; }; + F90416FD19CC776E00333AD8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DateRangePickerViewController.xib; sourceTree = ""; }; + F904170019CC777200333AD8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DateRangePickerViewController.strings; sourceTree = ""; }; + F904170219CC777300333AD8 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DateRangePickerViewController.strings; sourceTree = ""; }; + F915612619C3D16D00126FE2 /* DateRangePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateRangePickerViewController.h; sourceTree = SOURCE_ROOT; }; + F915612719C3D16D00126FE2 /* DateRangePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DateRangePickerViewController.m; sourceTree = SOURCE_ROOT; }; + F92F567619B75F5E00A1EACA /* PriceChangerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PriceChangerViewController.h; sourceTree = SOURCE_ROOT; }; + F92F567719B75F5E00A1EACA /* PriceChangerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PriceChangerViewController.m; sourceTree = SOURCE_ROOT; }; + F92F567E19B7609C00A1EACA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PriceChangerViewController.xib; sourceTree = ""; }; + F92F568119B760A100A1EACA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PriceChangerViewController.strings; sourceTree = ""; }; + F92F568519B760A800A1EACA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PriceChangerViewController_iPad.xib; sourceTree = ""; }; + F92F568819B760AA00A1EACA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PriceChangerViewController_iPad.strings; sourceTree = ""; }; + F92F568A19B760AB00A1EACA /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PriceChangerViewController_iPad.strings; sourceTree = ""; }; + F92F568C19B7616200A1EACA /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PriceChangerViewController.strings; sourceTree = ""; }; + F92F568D19B763FD00A1EACA /* NameChangerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NameChangerViewController.h; sourceTree = SOURCE_ROOT; }; + F92F568E19B763FD00A1EACA /* NameChangerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NameChangerViewController.m; sourceTree = SOURCE_ROOT; }; + F92F569319B7665F00A1EACA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NameChangerViewController.xib; sourceTree = ""; }; + F92F569619B7666300A1EACA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NameChangerViewController.strings; sourceTree = ""; }; + F92F569819B7666400A1EACA /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/NameChangerViewController.strings; sourceTree = ""; }; + F92F569C19B76A5D00A1EACA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NameChangerViewController_iPad.xib; sourceTree = ""; }; + F92F569F19B76A6300A1EACA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NameChangerViewController_iPad.strings; sourceTree = ""; }; + F92F56A119B76A6400A1EACA /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/NameChangerViewController_iPad.strings; sourceTree = ""; }; + F933F80119B6819400521B90 /* DatePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatePickerViewController.h; sourceTree = SOURCE_ROOT; }; + F933F80219B6819400521B90 /* DatePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DatePickerViewController.m; sourceTree = SOURCE_ROOT; }; + F95C3F2919E87B8700C040C0 /* ChildViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChildViewController.h; sourceTree = SOURCE_ROOT; }; + F95C3F2A19E87B8700C040C0 /* ChildViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChildViewController.m; sourceTree = SOURCE_ROOT; }; + F961D807199A5F1800E9282C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainStoryboard.storyboard; sourceTree = ""; }; + F961D809199A5F2200E9282C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/MainStoryboard.strings; sourceTree = ""; }; + F961D80B199A5F2300E9282C /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/MainStoryboard.strings; sourceTree = ""; }; + F961D80D199A5F2D00E9282C /* Base */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Base; path = Base.lproj/back_arrow.png; sourceTree = ""; }; + F961D80F199A5F3100E9282C /* en */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = en; path = en.lproj/back_arrow.png; sourceTree = ""; }; + F961D810199A5F3100E9282C /* es */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = es; path = es.lproj/back_arrow.png; sourceTree = ""; }; + F961D815199A5FA000E9282C /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; + F961D817199A5FA300E9282C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; + F961D818199A5FA500E9282C /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; + F961D81A199A711300E9282C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/EMConnectingView.xib; sourceTree = ""; }; + F961D81D199A711600E9282C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/EMConnectingView.strings; sourceTree = ""; }; + F961D81F199A711700E9282C /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/EMConnectingView.strings; sourceTree = ""; }; + F975ADAD19E8248000CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DatePickerViewController_iPad_Landscape.xib; sourceTree = ""; }; + F975ADB019E8248200CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickerViewController_iPad_Landscape.strings; sourceTree = ""; }; + F975ADB219E8248300CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatePickerViewController_iPad_Landscape.strings; sourceTree = ""; }; + F975ADBC19E827EC00CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/EMConnectingView_Landscape.xib; sourceTree = ""; }; + F975ADBF19E827F000CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/EMConnectingView_Landscape.strings; sourceTree = ""; }; + F975ADC119E827F100CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/EMConnectingView_Landscape.strings; sourceTree = ""; }; + F975ADC319E827F500CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/EMConnectingView_iPad_Landscape.xib; sourceTree = ""; }; + F975ADC619E827F900CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/EMConnectingView_iPad_Landscape.strings; sourceTree = ""; }; + F975ADC819E827F900CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/EMConnectingView_iPad_Landscape.strings; sourceTree = ""; }; + F975ADD619E82B7D00CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DatePickerViewController_Landscape.xib; sourceTree = ""; }; + F975ADD919E82B8000CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickerViewController_Landscape.strings; sourceTree = ""; }; + F975ADDB19E82B8100CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatePickerViewController_Landscape.strings; sourceTree = ""; }; + F975ADDD19E82B9800CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PriceChangerViewController_Landscape.xib; sourceTree = ""; }; + F975ADE419E82BE200CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PriceChangerViewController_Landscape.strings; sourceTree = ""; }; + F975ADE619E82BE300CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PriceChangerViewController_Landscape.strings; sourceTree = ""; }; + F975ADE819E82C5D00CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PriceChangerViewController_iPad_Landscape.xib; sourceTree = ""; }; + F975ADEB19E82C6200CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PriceChangerViewController_iPad_Landscape.strings; sourceTree = ""; }; + F975ADED19E82C6200CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PriceChangerViewController_iPad_Landscape.strings; sourceTree = ""; }; + F975ADEF19E82D1400CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NameChangerViewController_Landscape.xib; sourceTree = ""; }; + F975ADF219E82D1600CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NameChangerViewController_Landscape.strings; sourceTree = ""; }; + F975ADF419E82D1600CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/NameChangerViewController_Landscape.strings; sourceTree = ""; }; + F975ADF619E82D9F00CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NameChangerViewController_iPad_Landscape.xib; sourceTree = ""; }; + F975ADF919E82DA100CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NameChangerViewController_iPad_Landscape.strings; sourceTree = ""; }; + F975ADFB19E82DA200CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/NameChangerViewController_iPad_Landscape.strings; sourceTree = ""; }; + F975ADFD19E8347700CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DateRangePickerViewController_Landscape.xib; sourceTree = ""; }; + F975AE0019E8347900CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DateRangePickerViewController_Landscape.strings; sourceTree = ""; }; + F975AE0219E8347A00CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DateRangePickerViewController_Landscape.strings; sourceTree = ""; }; + F975AE0419E8359B00CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DateRangePickerViewController_iPad_Landscape.xib; sourceTree = ""; }; + F975AE0719E8359D00CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DateRangePickerViewController_iPad_Landscape.strings; sourceTree = ""; }; + F975AE0919E8359E00CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DateRangePickerViewController_iPad_Landscape.strings; sourceTree = ""; }; + F97B90C919B859F500DDA9EF /* icon_checkmark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_checkmark.png; sourceTree = SOURCE_ROOT; }; + F97B90CA19B859F500DDA9EF /* icon_delete.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_delete.png; sourceTree = SOURCE_ROOT; }; + F98356D4192E835F00EA6821 /* InitialViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InitialViewController.h; sourceTree = SOURCE_ROOT; }; + F98356D5192E835F00EA6821 /* InitialViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InitialViewController.m; sourceTree = SOURCE_ROOT; }; + F98356D7192E906600EA6821 /* bluetooth.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bluetooth.png; sourceTree = SOURCE_ROOT; }; + F98356D9192EAFD400EA6821 /* CommunicationProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommunicationProtocol.h; sourceTree = SOURCE_ROOT; }; + F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CommunicationProtocol.m; sourceTree = SOURCE_ROOT; }; + F98356DF192EC84700EA6821 /* MenuTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuTableViewController.h; sourceTree = SOURCE_ROOT; }; + F98356E0192EC84700EA6821 /* MenuTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MenuTableViewController.m; sourceTree = SOURCE_ROOT; }; + F98446EE19B9EAE9005C4992 /* Sensors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sensors.h; sourceTree = SOURCE_ROOT; }; + F98446EF19B9EAE9005C4992 /* Sensors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Sensors.m; sourceTree = SOURCE_ROOT; }; + F989B5F919BBC80300657DD9 /* carat-open.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "carat-open.png"; sourceTree = SOURCE_ROOT; }; + F989B5FA19BBC80300657DD9 /* carat.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = carat.png; sourceTree = SOURCE_ROOT; }; + F989B5FD19BCD7A100657DD9 /* Sale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sale.h; sourceTree = SOURCE_ROOT; }; + F989B5FE19BCD7A100657DD9 /* Sale.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Sale.m; sourceTree = SOURCE_ROOT; }; + F989B60019BCE28C00657DD9 /* SalesLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SalesLog.h; sourceTree = SOURCE_ROOT; }; + F989B60119BCE28C00657DD9 /* SalesLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SalesLog.m; sourceTree = SOURCE_ROOT; }; + F996591319CC7F3D00667BEC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DateRangePickerViewController_iPad.xib; sourceTree = ""; }; + F996591619CC7F4400667BEC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DateRangePickerViewController_iPad.strings; sourceTree = ""; }; + F996591819CC7F4500667BEC /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DateRangePickerViewController_iPad.strings; sourceTree = ""; }; + F9A8EF7A192FE201009E7532 /* Stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Stack.h; sourceTree = SOURCE_ROOT; }; + F9A8EF7B192FE201009E7532 /* Stack.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Stack.m; sourceTree = SOURCE_ROOT; }; + F9B9100719E59773006D4D06 /* IncidentLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IncidentLog.h; sourceTree = SOURCE_ROOT; }; + F9B9100819E59773006D4D06 /* IncidentLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IncidentLog.m; sourceTree = SOURCE_ROOT; }; + F9B9100A19E5A0A1006D4D06 /* Incident.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Incident.h; sourceTree = SOURCE_ROOT; }; + F9B9100B19E5A0A1006D4D06 /* Incident.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Incident.m; sourceTree = SOURCE_ROOT; }; + F9C77F4F192CDE30002DBE8A /* system.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = system.json; sourceTree = SOURCE_ROOT; }; + F9CED59819BE086E008F3764 /* UIView+Toast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Toast.h"; sourceTree = SOURCE_ROOT; }; + F9CED59919BE086E008F3764 /* UIView+Toast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Toast.m"; sourceTree = SOURCE_ROOT; }; + F9E4D8FE19B8FD32009A7359 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/EMConnectingView_iPad.xib; sourceTree = ""; }; + F9E4D90119B8FD36009A7359 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/EMConnectingView_iPad.strings; sourceTree = ""; }; + F9E4D90319B8FD37009A7359 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/EMConnectingView_iPad.strings; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 3471865A18070D9300FA0FB2 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 347186AC18070FAB00FA0FB2 /* CoreBluetooth.framework in Frameworks */, + 3471866318070D9300FA0FB2 /* CoreGraphics.framework in Frameworks */, + 3471866518070D9300FA0FB2 /* UIKit.framework in Frameworks */, + 347186A618070E7200FA0FB2 /* libEMFramework.a in Frameworks */, + 3471866118070D9300FA0FB2 /* Foundation.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 3471865418070D9300FA0FB2 = { + isa = PBXGroup; + children = ( + 3471866618070D9300FA0FB2 /* BT Vendor */, + 3471865F18070D9300FA0FB2 /* Frameworks */, + 3471865E18070D9300FA0FB2 /* Products */, + ); + sourceTree = ""; + }; + 3471865E18070D9300FA0FB2 /* Products */ = { + isa = PBXGroup; + children = ( + 3471865D18070D9300FA0FB2 /* BT Vendor.app */, + ); + name = Products; + sourceTree = ""; + }; + 3471865F18070D9300FA0FB2 /* Frameworks */ = { + isa = PBXGroup; + children = ( + 347186AB18070FAB00FA0FB2 /* CoreBluetooth.framework */, + 3471866018070D9300FA0FB2 /* Foundation.framework */, + 3471866218070D9300FA0FB2 /* CoreGraphics.framework */, + 3471866418070D9300FA0FB2 /* UIKit.framework */, + 3471867918070D9300FA0FB2 /* XCTest.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 3471866618070D9300FA0FB2 /* BT Vendor */ = { + isa = PBXGroup; + children = ( + F9CED59719BE0863008F3764 /* Toast View */, + 3471868F18070E4300FA0FB2 /* Framework */, + 347186A718070F7F00FA0FB2 /* Device Picker */, + 347186B91807290E00FA0FB2 /* Schemas */, + 3471866718070D9300FA0FB2 /* Supporting Files */, + F9ED745419B89E4600C7298D /* Views */, + F9ED745519B89E7700C7298D /* Headers */, + 34AAB877189804FF0019860D /* BTAppDelegate.m */, + F98356D5192E835F00EA6821 /* InitialViewController.m */, + F98356E0192EC84700EA6821 /* MenuTableViewController.m */, + F9A8EF7B192FE201009E7532 /* Stack.m */, + F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */, + F933F80219B6819400521B90 /* DatePickerViewController.m */, + F92F567719B75F5E00A1EACA /* PriceChangerViewController.m */, + F92F568E19B763FD00A1EACA /* NameChangerViewController.m */, + F915612719C3D16D00126FE2 /* DateRangePickerViewController.m */, + 34AAB880189804FF0019860D /* main.m */, + F98446EF19B9EAE9005C4992 /* Sensors.m */, + F989B5FE19BCD7A100657DD9 /* Sale.m */, + F989B60119BCE28C00657DD9 /* SalesLog.m */, + F9B9100B19E5A0A1006D4D06 /* Incident.m */, + F9B9100819E59773006D4D06 /* IncidentLog.m */, + F95C3F2A19E87B8700C040C0 /* ChildViewController.m */, + ); + name = "BT Vendor"; + path = TestAppExample; + sourceTree = ""; + }; + 3471866718070D9300FA0FB2 /* Supporting Files */ = { + isa = PBXGroup; + children = ( + F9ED745719B89EF000C7298D /* Images */, + F961D814199A5FA000E9282C /* Localizable.strings */, + 34AAB87E189804FF0019860D /* BT Vendor-Info.plist */, + 34AAB87F189804FF0019860D /* BT Vendor-Prefix.pch */, + ); + name = "Supporting Files"; + sourceTree = ""; + }; + 3471868F18070E4300FA0FB2 /* Framework */ = { + isa = PBXGroup; + children = ( + 347186A518070E7200FA0FB2 /* libEMFramework.a */, + 3471869018070E6500FA0FB2 /* Headers */, + ); + name = Framework; + sourceTree = ""; + }; + 3471869018070E6500FA0FB2 /* Headers */ = { + isa = PBXGroup; + children = ( + 3471869118070E6500FA0FB2 /* EMBluetoothLowEnergyConnectionType.h */, + 3471869218070E6500FA0FB2 /* EMChecksum.h */, + 3471869318070E6500FA0FB2 /* EMConnection.h */, + 3471869518070E6500FA0FB2 /* EMConnectionListManager.h */, + 3471869718070E6500FA0FB2 /* EMConnectionManager.h */, + 3471869918070E6500FA0FB2 /* EMConnectionType.h */, + 3471869A18070E6500FA0FB2 /* EMDeviceBasicDescription.h */, + 3471869B18070E6500FA0FB2 /* EMFramework.h */, + 3471869E18070E6500FA0FB2 /* EMResourceValue+CocoaAdditions.h */, + 3471869F18070E6500FA0FB2 /* EMResourceValue.h */, + 347186A018070E6500FA0FB2 /* EMSchema.h */, + 347186A118070E6500FA0FB2 /* EMSerialPacket.h */, + 347186A218070E6500FA0FB2 /* EMSignalStrengthFilter.h */, + 347186A318070E6500FA0FB2 /* EMTypes.h */, + ); + name = Headers; + path = EmmocoMobileFramework/Headers; + sourceTree = SOURCE_ROOT; + }; + 347186A718070F7F00FA0FB2 /* Device Picker */ = { + isa = PBXGroup; + children = ( + F961D81B199A711300E9282C /* EMConnectingView.xib */, + F975ADBD19E827EC00CA4442 /* EMConnectingView_Landscape.xib */, + F9E4D8FF19B8FD32009A7359 /* EMConnectingView_iPad.xib */, + F975ADC419E827F500CA4442 /* EMConnectingView_iPad_Landscape.xib */, + 34AAB879189804FF0019860D /* EMDevicePickerViewController.h */, + 34AAB87A189804FF0019860D /* EMDevicePickerViewController.m */, + ); + name = "Device Picker"; + sourceTree = ""; + }; + 347186B91807290E00FA0FB2 /* Schemas */ = { + isa = PBXGroup; + children = ( + F9C77F4F192CDE30002DBE8A /* system.json */, + ); + name = Schemas; + sourceTree = ""; + }; + F9CED59719BE0863008F3764 /* Toast View */ = { + isa = PBXGroup; + children = ( + F9CED59819BE086E008F3764 /* UIView+Toast.h */, + F9CED59919BE086E008F3764 /* UIView+Toast.m */, + ); + name = "Toast View"; + sourceTree = ""; + }; + F9ED745419B89E4600C7298D /* Views */ = { + isa = PBXGroup; + children = ( + F961D806199A5F1000E9282C /* MainStoryboard.storyboard */, + F9015D9219B73052006C7882 /* DatePickerViewController.xib */, + F975ADD719E82B7D00CA4442 /* DatePickerViewController_Landscape.xib */, + F9015D9919B7305E006C7882 /* DatePickerViewController_iPad.xib */, + F975ADAE19E8248000CA4442 /* DatePickerViewController_iPad_Landscape.xib */, + F92F567F19B7609C00A1EACA /* PriceChangerViewController.xib */, + F975ADDE19E82B9800CA4442 /* PriceChangerViewController_Landscape.xib */, + F92F568619B760A800A1EACA /* PriceChangerViewController_iPad.xib */, + F975ADE919E82C5D00CA4442 /* PriceChangerViewController_iPad_Landscape.xib */, + F92F569419B7665F00A1EACA /* NameChangerViewController.xib */, + F975ADF019E82D1400CA4442 /* NameChangerViewController_Landscape.xib */, + F92F569D19B76A5D00A1EACA /* NameChangerViewController_iPad.xib */, + F975ADF719E82D9F00CA4442 /* NameChangerViewController_iPad_Landscape.xib */, + F90416FE19CC776E00333AD8 /* DateRangePickerViewController.xib */, + F975ADFE19E8347700CA4442 /* DateRangePickerViewController_Landscape.xib */, + F996591419CC7F3D00667BEC /* DateRangePickerViewController_iPad.xib */, + F975AE0519E8359B00CA4442 /* DateRangePickerViewController_iPad_Landscape.xib */, + ); + name = Views; + sourceTree = ""; + }; + F9ED745519B89E7700C7298D /* Headers */ = { + isa = PBXGroup; + children = ( + 34AAB876189804FF0019860D /* BTAppDelegate.h */, + F98356D4192E835F00EA6821 /* InitialViewController.h */, + F98356DF192EC84700EA6821 /* MenuTableViewController.h */, + F98356D9192EAFD400EA6821 /* CommunicationProtocol.h */, + F9A8EF7A192FE201009E7532 /* Stack.h */, + F933F80119B6819400521B90 /* DatePickerViewController.h */, + F92F567619B75F5E00A1EACA /* PriceChangerViewController.h */, + F92F568D19B763FD00A1EACA /* NameChangerViewController.h */, + F915612619C3D16D00126FE2 /* DateRangePickerViewController.h */, + F98446EE19B9EAE9005C4992 /* Sensors.h */, + F989B5FD19BCD7A100657DD9 /* Sale.h */, + F989B60019BCE28C00657DD9 /* SalesLog.h */, + F9B9100A19E5A0A1006D4D06 /* Incident.h */, + F9B9100719E59773006D4D06 /* IncidentLog.h */, + F95C3F2919E87B8700C040C0 /* ChildViewController.h */, + ); + name = Headers; + sourceTree = ""; + }; + F9ED745719B89EF000C7298D /* Images */ = { + isa = PBXGroup; + children = ( + 34AAB88C189805300019860D /* Images.xcassets */, + F989B5F919BBC80300657DD9 /* carat-open.png */, + F989B5FA19BBC80300657DD9 /* carat.png */, + F97B90C919B859F500DDA9EF /* icon_checkmark.png */, + F97B90CA19B859F500DDA9EF /* icon_delete.png */, + F961D80E199A5F2D00E9282C /* back_arrow.png */, + F98356D7192E906600EA6821 /* bluetooth.png */, + ); + name = Images; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 3471865C18070D9300FA0FB2 /* BT Vendor */ = { + isa = PBXNativeTarget; + buildConfigurationList = 3471868918070D9300FA0FB2 /* Build configuration list for PBXNativeTarget "BT Vendor" */; + buildPhases = ( + 3471865918070D9300FA0FB2 /* Sources */, + 3471865A18070D9300FA0FB2 /* Frameworks */, + 3471865B18070D9300FA0FB2 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "BT Vendor"; + productName = TestAppExample; + productReference = 3471865D18070D9300FA0FB2 /* BT Vendor.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 3471865518070D9300FA0FB2 /* Project object */ = { + isa = PBXProject; + attributes = { + CLASSPREFIX = EM; + LastUpgradeCheck = 0510; + ORGANIZATIONNAME = Emmoco; + }; + buildConfigurationList = 3471865818070D9300FA0FB2 /* Build configuration list for PBXProject "BT Vendor" */; + compatibilityVersion = "Xcode 3.2"; + developmentRegion = English; + hasScannedForEncodings = 0; + knownRegions = ( + en, + es, + Base, + ); + mainGroup = 3471865418070D9300FA0FB2; + productRefGroup = 3471865E18070D9300FA0FB2 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 3471865C18070D9300FA0FB2 /* BT Vendor */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 3471865B18070D9300FA0FB2 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F975ADC219E827F500CA4442 /* EMConnectingView_iPad_Landscape.xib in Resources */, + F975ADF519E82D9F00CA4442 /* NameChangerViewController_iPad_Landscape.xib in Resources */, + F975AE0319E8359B00CA4442 /* DateRangePickerViewController_iPad_Landscape.xib in Resources */, + F975ADD519E82B7D00CA4442 /* DatePickerViewController_Landscape.xib in Resources */, + F97B90CC19B859F500DDA9EF /* icon_delete.png in Resources */, + F9015D9019B73052006C7882 /* DatePickerViewController.xib in Resources */, + F9E4D8FD19B8FD32009A7359 /* EMConnectingView_iPad.xib in Resources */, + F975ADDC19E82B9800CA4442 /* PriceChangerViewController_Landscape.xib in Resources */, + F98356D8192E906600EA6821 /* bluetooth.png in Resources */, + F9015D9719B7305E006C7882 /* DatePickerViewController_iPad.xib in Resources */, + F961D819199A711300E9282C /* EMConnectingView.xib in Resources */, + F975ADE719E82C5D00CA4442 /* PriceChangerViewController_iPad_Landscape.xib in Resources */, + F9C77F50192CDE30002DBE8A /* system.json in Resources */, + F989B5FC19BBC80300657DD9 /* carat.png in Resources */, + F92F569B19B76A5D00A1EACA /* NameChangerViewController_iPad.xib in Resources */, + F92F567D19B7609C00A1EACA /* PriceChangerViewController.xib in Resources */, + F92F569219B7665F00A1EACA /* NameChangerViewController.xib in Resources */, + F90416FC19CC776E00333AD8 /* DateRangePickerViewController.xib in Resources */, + F975ADFC19E8347700CA4442 /* DateRangePickerViewController_Landscape.xib in Resources */, + F975ADAC19E8248000CA4442 /* DatePickerViewController_iPad_Landscape.xib in Resources */, + F975ADEE19E82D1400CA4442 /* NameChangerViewController_Landscape.xib in Resources */, + F996591219CC7F3D00667BEC /* DateRangePickerViewController_iPad.xib in Resources */, + F961D80C199A5F2D00E9282C /* back_arrow.png in Resources */, + F961D816199A5FA000E9282C /* Localizable.strings in Resources */, + F97B90CB19B859F500DDA9EF /* icon_checkmark.png in Resources */, + 34AAB88D189805300019860D /* Images.xcassets in Resources */, + F989B5FB19BBC80300657DD9 /* carat-open.png in Resources */, + F92F568419B760A800A1EACA /* PriceChangerViewController_iPad.xib in Resources */, + F975ADBB19E827EC00CA4442 /* EMConnectingView_Landscape.xib in Resources */, + F961D804199A5F1000E9282C /* MainStoryboard.storyboard in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 3471865918070D9300FA0FB2 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + F915612919C3D16D00126FE2 /* DateRangePickerViewController.m in Sources */, + F92F569019B763FD00A1EACA /* NameChangerViewController.m in Sources */, + F933F80419B6819400521B90 /* DatePickerViewController.m in Sources */, + F989B5FF19BCD7A100657DD9 /* Sale.m in Sources */, + F98356D6192E835F00EA6821 /* InitialViewController.m in Sources */, + F9B9100C19E5A0A1006D4D06 /* Incident.m in Sources */, + F9CED59A19BE086E008F3764 /* UIView+Toast.m in Sources */, + F9A8EF7C192FE201009E7532 /* Stack.m in Sources */, + 34AAB885189804FF0019860D /* EMDevicePickerViewController.m in Sources */, + F9B9100919E59773006D4D06 /* IncidentLog.m in Sources */, + F989B60219BCE28C00657DD9 /* SalesLog.m in Sources */, + F95C3F2B19E87B8700C040C0 /* ChildViewController.m in Sources */, + F92F567919B75F5E00A1EACA /* PriceChangerViewController.m in Sources */, + 34AAB883189804FF0019860D /* BTAppDelegate.m in Sources */, + F98356DB192EAFD400EA6821 /* CommunicationProtocol.m in Sources */, + F98356E1192EC84700EA6821 /* MenuTableViewController.m in Sources */, + F98446F019B9EAE9005C4992 /* Sensors.m in Sources */, + 34AAB889189804FF0019860D /* main.m in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + F9015D9219B73052006C7882 /* DatePickerViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + F9015D9119B73052006C7882 /* Base */, + F9015D9419B73056006C7882 /* en */, + F9015D9619B73057006C7882 /* es */, + ); + name = DatePickerViewController.xib; + sourceTree = SOURCE_ROOT; + }; + F9015D9919B7305E006C7882 /* DatePickerViewController_iPad.xib */ = { + isa = PBXVariantGroup; + children = ( + F9015D9819B7305E006C7882 /* Base */, + F9015D9B19B73062006C7882 /* en */, + F9015D9D19B73062006C7882 /* es */, + ); + name = DatePickerViewController_iPad.xib; + sourceTree = SOURCE_ROOT; + }; + F90416FE19CC776E00333AD8 /* DateRangePickerViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + F90416FD19CC776E00333AD8 /* Base */, + F904170019CC777200333AD8 /* en */, + F904170219CC777300333AD8 /* es */, + ); + name = DateRangePickerViewController.xib; + sourceTree = SOURCE_ROOT; + }; + F92F567F19B7609C00A1EACA /* PriceChangerViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + F92F567E19B7609C00A1EACA /* Base */, + F92F568119B760A100A1EACA /* en */, + F92F568C19B7616200A1EACA /* es */, + ); + name = PriceChangerViewController.xib; + sourceTree = SOURCE_ROOT; + }; + F92F568619B760A800A1EACA /* PriceChangerViewController_iPad.xib */ = { + isa = PBXVariantGroup; + children = ( + F92F568519B760A800A1EACA /* Base */, + F92F568819B760AA00A1EACA /* en */, + F92F568A19B760AB00A1EACA /* es */, + ); + name = PriceChangerViewController_iPad.xib; + sourceTree = SOURCE_ROOT; + }; + F92F569419B7665F00A1EACA /* NameChangerViewController.xib */ = { + isa = PBXVariantGroup; + children = ( + F92F569319B7665F00A1EACA /* Base */, + F92F569619B7666300A1EACA /* en */, + F92F569819B7666400A1EACA /* es */, + ); + name = NameChangerViewController.xib; + sourceTree = SOURCE_ROOT; + }; + F92F569D19B76A5D00A1EACA /* NameChangerViewController_iPad.xib */ = { + isa = PBXVariantGroup; + children = ( + F92F569C19B76A5D00A1EACA /* Base */, + F92F569F19B76A6300A1EACA /* en */, + F92F56A119B76A6400A1EACA /* es */, + ); + name = NameChangerViewController_iPad.xib; + sourceTree = SOURCE_ROOT; + }; + F961D806199A5F1000E9282C /* MainStoryboard.storyboard */ = { + isa = PBXVariantGroup; + children = ( + F961D807199A5F1800E9282C /* Base */, + F961D809199A5F2200E9282C /* en */, + F961D80B199A5F2300E9282C /* es */, + ); + name = MainStoryboard.storyboard; + path = FirstAppExample; + sourceTree = SOURCE_ROOT; + }; + F961D80E199A5F2D00E9282C /* back_arrow.png */ = { + isa = PBXVariantGroup; + children = ( + F961D80D199A5F2D00E9282C /* Base */, + F961D80F199A5F3100E9282C /* en */, + F961D810199A5F3100E9282C /* es */, + ); + name = back_arrow.png; + sourceTree = SOURCE_ROOT; + }; + F961D814199A5FA000E9282C /* Localizable.strings */ = { + isa = PBXVariantGroup; + children = ( + F961D815199A5FA000E9282C /* Base */, + F961D817199A5FA300E9282C /* en */, + F961D818199A5FA500E9282C /* es */, + ); + name = Localizable.strings; + sourceTree = ""; + }; + F961D81B199A711300E9282C /* EMConnectingView.xib */ = { + isa = PBXVariantGroup; + children = ( + F961D81A199A711300E9282C /* Base */, + F961D81D199A711600E9282C /* en */, + F961D81F199A711700E9282C /* es */, + ); + name = EMConnectingView.xib; + path = FirstAppExample; + sourceTree = SOURCE_ROOT; + }; + F975ADAE19E8248000CA4442 /* DatePickerViewController_iPad_Landscape.xib */ = { + isa = PBXVariantGroup; + children = ( + F975ADAD19E8248000CA4442 /* Base */, + F975ADB019E8248200CA4442 /* en */, + F975ADB219E8248300CA4442 /* es */, + ); + name = DatePickerViewController_iPad_Landscape.xib; + sourceTree = SOURCE_ROOT; + }; + F975ADBD19E827EC00CA4442 /* EMConnectingView_Landscape.xib */ = { + isa = PBXVariantGroup; + children = ( + F975ADBC19E827EC00CA4442 /* Base */, + F975ADBF19E827F000CA4442 /* en */, + F975ADC119E827F100CA4442 /* es */, + ); + name = EMConnectingView_Landscape.xib; + sourceTree = SOURCE_ROOT; + }; + F975ADC419E827F500CA4442 /* EMConnectingView_iPad_Landscape.xib */ = { + isa = PBXVariantGroup; + children = ( + F975ADC319E827F500CA4442 /* Base */, + F975ADC619E827F900CA4442 /* en */, + F975ADC819E827F900CA4442 /* es */, + ); + name = EMConnectingView_iPad_Landscape.xib; + sourceTree = SOURCE_ROOT; + }; + F975ADD719E82B7D00CA4442 /* DatePickerViewController_Landscape.xib */ = { + isa = PBXVariantGroup; + children = ( + F975ADD619E82B7D00CA4442 /* Base */, + F975ADD919E82B8000CA4442 /* en */, + F975ADDB19E82B8100CA4442 /* es */, + ); + name = DatePickerViewController_Landscape.xib; + sourceTree = SOURCE_ROOT; + }; + F975ADDE19E82B9800CA4442 /* PriceChangerViewController_Landscape.xib */ = { + isa = PBXVariantGroup; + children = ( + F975ADDD19E82B9800CA4442 /* Base */, + F975ADE419E82BE200CA4442 /* en */, + F975ADE619E82BE300CA4442 /* es */, + ); + name = PriceChangerViewController_Landscape.xib; + sourceTree = SOURCE_ROOT; + }; + F975ADE919E82C5D00CA4442 /* PriceChangerViewController_iPad_Landscape.xib */ = { + isa = PBXVariantGroup; + children = ( + F975ADE819E82C5D00CA4442 /* Base */, + F975ADEB19E82C6200CA4442 /* en */, + F975ADED19E82C6200CA4442 /* es */, + ); + name = PriceChangerViewController_iPad_Landscape.xib; + sourceTree = SOURCE_ROOT; + }; + F975ADF019E82D1400CA4442 /* NameChangerViewController_Landscape.xib */ = { + isa = PBXVariantGroup; + children = ( + F975ADEF19E82D1400CA4442 /* Base */, + F975ADF219E82D1600CA4442 /* en */, + F975ADF419E82D1600CA4442 /* es */, + ); + name = NameChangerViewController_Landscape.xib; + sourceTree = SOURCE_ROOT; + }; + F975ADF719E82D9F00CA4442 /* NameChangerViewController_iPad_Landscape.xib */ = { + isa = PBXVariantGroup; + children = ( + F975ADF619E82D9F00CA4442 /* Base */, + F975ADF919E82DA100CA4442 /* en */, + F975ADFB19E82DA200CA4442 /* es */, + ); + name = NameChangerViewController_iPad_Landscape.xib; + sourceTree = SOURCE_ROOT; + }; + F975ADFE19E8347700CA4442 /* DateRangePickerViewController_Landscape.xib */ = { + isa = PBXVariantGroup; + children = ( + F975ADFD19E8347700CA4442 /* Base */, + F975AE0019E8347900CA4442 /* en */, + F975AE0219E8347A00CA4442 /* es */, + ); + name = DateRangePickerViewController_Landscape.xib; + sourceTree = SOURCE_ROOT; + }; + F975AE0519E8359B00CA4442 /* DateRangePickerViewController_iPad_Landscape.xib */ = { + isa = PBXVariantGroup; + children = ( + F975AE0419E8359B00CA4442 /* Base */, + F975AE0719E8359D00CA4442 /* en */, + F975AE0919E8359E00CA4442 /* es */, + ); + name = DateRangePickerViewController_iPad_Landscape.xib; + sourceTree = SOURCE_ROOT; + }; + F996591419CC7F3D00667BEC /* DateRangePickerViewController_iPad.xib */ = { + isa = PBXVariantGroup; + children = ( + F996591319CC7F3D00667BEC /* Base */, + F996591619CC7F4400667BEC /* en */, + F996591819CC7F4500667BEC /* es */, + ); + name = DateRangePickerViewController_iPad.xib; + sourceTree = SOURCE_ROOT; + }; + F9E4D8FF19B8FD32009A7359 /* EMConnectingView_iPad.xib */ = { + isa = PBXVariantGroup; + children = ( + F9E4D8FE19B8FD32009A7359 /* Base */, + F9E4D90119B8FD36009A7359 /* en */, + F9E4D90319B8FD37009A7359 /* es */, + ); + name = EMConnectingView_iPad.xib; + sourceTree = SOURCE_ROOT; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 3471868718070D9300FA0FB2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + 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 = "iPhone Developer"; + "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.1; + ONLY_ACTIVE_ARCH = YES; + OTHER_CODE_SIGN_FLAGS = "-gta"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 3471868818070D9300FA0FB2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + 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 = "iPhone Developer"; + "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.1; + OTHER_CODE_SIGN_FLAGS = "-gta"; + SDKROOT = iphoneos; + TARGETED_DEVICE_FAMILY = "1,2"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 3471868A18070D9300FA0FB2 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "FirstAppExample/BT Vendor-Prefix.pch"; + INFOPLIST_FILE = "FirstAppExample/BT Vendor-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + EmmocoMobileFramework/Framework, + ); + OTHER_LDFLAGS = "-all_load"; + PRODUCT_NAME = "BT Vendor"; + WRAPPER_EXTENSION = app; + }; + name = Debug; + }; + 3471868B18070D9300FA0FB2 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; + GCC_PRECOMPILE_PREFIX_HEADER = YES; + GCC_PREFIX_HEADER = "FirstAppExample/BT Vendor-Prefix.pch"; + INFOPLIST_FILE = "FirstAppExample/BT Vendor-Info.plist"; + LIBRARY_SEARCH_PATHS = ( + "$(inherited)", + EmmocoMobileFramework/Framework, + ); + OTHER_LDFLAGS = "-all_load"; + PRODUCT_NAME = "BT Vendor"; + WRAPPER_EXTENSION = app; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 3471865818070D9300FA0FB2 /* Build configuration list for PBXProject "BT Vendor" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3471868718070D9300FA0FB2 /* Debug */, + 3471868818070D9300FA0FB2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 3471868918070D9300FA0FB2 /* Build configuration list for PBXNativeTarget "BT Vendor" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 3471868A18070D9300FA0FB2 /* Debug */, + 3471868B18070D9300FA0FB2 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 3471865518070D9300FA0FB2 /* Project object */; +} diff --git a/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..e7ac746 --- /dev/null +++ b/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/DUREX Vendor Control.xccheckout b/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/DUREX Vendor Control.xccheckout new file mode 100644 index 0000000..cde8688 --- /dev/null +++ b/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/DUREX Vendor Control.xccheckout @@ -0,0 +1,46 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + 5E047851-FD9C-4741-AB1E-249FB7E14E28 + IDESourceControlProjectName + DUREX Vendor Control + IDESourceControlProjectOriginsDictionary + + 910DC6DA-E12E-46D3-A774-09A58FE8ED66 + svn://server/durex + + IDESourceControlProjectPath + DUREX Vendor Control/DUREX Vendor Control.xcodeproj/project.xcworkspace + IDESourceControlProjectRelativeInstallPathDictionary + + 910DC6DA-E12E-46D3-A774-09A58FE8ED66 + ../../.. + + IDESourceControlProjectRepositoryRootDictionary + + 910DC6DA-E12E-46D3-A774-09A58FE8ED66 + svn://server/durex + + IDESourceControlProjectURL + svn://server/durex/DUREX%20Vendor%20Control/DUREX%20Vendor%20Control.xcodeproj + IDESourceControlProjectVersion + 110 + IDESourceControlProjectWCCIdentifier + 910DC6DA-E12E-46D3-A774-09A58FE8ED66 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.subversion + IDESourceControlWCCIdentifierKey + 910DC6DA-E12E-46D3-A774-09A58FE8ED66 + IDESourceControlWCCName + durex + + + + diff --git a/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/FirstApp.xccheckout b/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/FirstApp.xccheckout new file mode 100644 index 0000000..ad60022 --- /dev/null +++ b/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/FirstApp.xccheckout @@ -0,0 +1,46 @@ + + + + + IDESourceControlProjectFavoriteDictionaryKey + + IDESourceControlProjectIdentifier + F3823CA7-4E1F-42C9-83E6-7F9A3B0B4380 + IDESourceControlProjectName + FirstApp + IDESourceControlProjectOriginsDictionary + + C52D274C-DEEC-4CDB-BD77-3B4747652588 + svn://imanolbarba.net/durex + + IDESourceControlProjectPath + ios-examples-13.4.9/FirstApp/FirstApp.xcodeproj/project.xcworkspace + IDESourceControlProjectRelativeInstallPathDictionary + + C52D274C-DEEC-4CDB-BD77-3B4747652588 + ../../../.. + + IDESourceControlProjectRepositoryRootDictionary + + C52D274C-DEEC-4CDB-BD77-3B4747652588 + svn://imanolbarba.net/durex + + IDESourceControlProjectURL + svn://imanolbarba.net/durex/ios-examples-13.4.9/FirstApp/FirstApp.xcodeproj + IDESourceControlProjectVersion + 110 + IDESourceControlProjectWCCIdentifier + C52D274C-DEEC-4CDB-BD77-3B4747652588 + IDESourceControlProjectWCConfigurations + + + IDESourceControlRepositoryExtensionIdentifierKey + public.vcs.subversion + IDESourceControlWCCIdentifierKey + C52D274C-DEEC-4CDB-BD77-3B4747652588 + IDESourceControlWCCName + durex + + + + diff --git a/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate b/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000..fe25d99 Binary files /dev/null and b/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate differ diff --git a/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/WorkspaceSettings.xcsettings b/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/WorkspaceSettings.xcsettings new file mode 100644 index 0000000..659c876 --- /dev/null +++ b/BT Vendor/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/WorkspaceSettings.xcsettings @@ -0,0 +1,10 @@ + + + + + HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges + + SnapshotAutomaticallyBeforeSignificantChanges + + + diff --git a/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist new file mode 100644 index 0000000..b08e8dc --- /dev/null +++ b/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist @@ -0,0 +1,757 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/BT Vendor.xcscheme b/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/BT Vendor.xcscheme new file mode 100644 index 0000000..21d0961 --- /dev/null +++ b/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/BT Vendor.xcscheme @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/DUREX Vendor Control.xcscheme b/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/DUREX Vendor Control.xcscheme new file mode 100644 index 0000000..21d0961 --- /dev/null +++ b/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/DUREX Vendor Control.xcscheme @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/xcschememanagement.plist b/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/xcschememanagement.plist new file mode 100644 index 0000000..7d118c8 --- /dev/null +++ b/BT Vendor/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/xcschememanagement.plist @@ -0,0 +1,34 @@ + + + + + SchemeUserState + + BT Vendor.xcscheme + + orderHint + 1 + + DUREX Vendor Control.xcscheme + + isShown + + orderHint + 0 + + + SuppressBuildableAutocreation + + 3471865C18070D9300FA0FB2 + + primary + + + 3471867718070D9300FA0FB2 + + primary + + + + + diff --git a/BT Vendor/Base.lproj/DatePickerViewController.xib b/BT Vendor/Base.lproj/DatePickerViewController.xib new file mode 100644 index 0000000..2d2118c --- /dev/null +++ b/BT Vendor/Base.lproj/DatePickerViewController.xib @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ +y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ +5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g +8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ +AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg +DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ +HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g +KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ +OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg +Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ +VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg +Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ +cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg +f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/DatePickerViewController_Landscape.xib b/BT Vendor/Base.lproj/DatePickerViewController_Landscape.xib new file mode 100644 index 0000000..4798830 --- /dev/null +++ b/BT Vendor/Base.lproj/DatePickerViewController_Landscape.xib @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ +y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ +5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g +8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ +AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg +DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ +HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g +KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ +OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg +Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ +VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg +Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ +cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg +f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/DatePickerViewController_iPad.xib b/BT Vendor/Base.lproj/DatePickerViewController_iPad.xib new file mode 100644 index 0000000..8320152 --- /dev/null +++ b/BT Vendor/Base.lproj/DatePickerViewController_iPad.xib @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ +y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ +5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g +8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ +AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg +DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ +HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g +KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ +OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg +Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ +VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg +Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ +cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg +f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/DatePickerViewController_iPad_Landscape.xib b/BT Vendor/Base.lproj/DatePickerViewController_iPad_Landscape.xib new file mode 100644 index 0000000..aab2a23 --- /dev/null +++ b/BT Vendor/Base.lproj/DatePickerViewController_iPad_Landscape.xib @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ +y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ +5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g +8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ +AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg +DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ +HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g +KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ +OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg +Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ +VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg +Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ +cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg +f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA +AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/DateRangePickerViewController.xib b/BT Vendor/Base.lproj/DateRangePickerViewController.xib new file mode 100644 index 0000000..2b0c9b8 --- /dev/null +++ b/BT Vendor/Base.lproj/DateRangePickerViewController.xib @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/DateRangePickerViewController_Landscape.xib b/BT Vendor/Base.lproj/DateRangePickerViewController_Landscape.xib new file mode 100644 index 0000000..b506f05 --- /dev/null +++ b/BT Vendor/Base.lproj/DateRangePickerViewController_Landscape.xib @@ -0,0 +1,173 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/DateRangePickerViewController_iPad.xib b/BT Vendor/Base.lproj/DateRangePickerViewController_iPad.xib new file mode 100644 index 0000000..b3f2518 --- /dev/null +++ b/BT Vendor/Base.lproj/DateRangePickerViewController_iPad.xib @@ -0,0 +1,168 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/DateRangePickerViewController_iPad_Landscape.xib b/BT Vendor/Base.lproj/DateRangePickerViewController_iPad_Landscape.xib new file mode 100644 index 0000000..8fe159d --- /dev/null +++ b/BT Vendor/Base.lproj/DateRangePickerViewController_iPad_Landscape.xib @@ -0,0 +1,169 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/EMConnectingView_Landscape.xib b/BT Vendor/Base.lproj/EMConnectingView_Landscape.xib new file mode 100644 index 0000000..a2ad04e --- /dev/null +++ b/BT Vendor/Base.lproj/EMConnectingView_Landscape.xib @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/EMConnectingView_iPad.xib b/BT Vendor/Base.lproj/EMConnectingView_iPad.xib new file mode 100644 index 0000000..24ff55d --- /dev/null +++ b/BT Vendor/Base.lproj/EMConnectingView_iPad.xib @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/EMConnectingView_iPad_Landscape.xib b/BT Vendor/Base.lproj/EMConnectingView_iPad_Landscape.xib new file mode 100644 index 0000000..d94f2db --- /dev/null +++ b/BT Vendor/Base.lproj/EMConnectingView_iPad_Landscape.xib @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/Localizable.strings b/BT Vendor/Base.lproj/Localizable.strings new file mode 100644 index 0000000..33a1df1 --- /dev/null +++ b/BT Vendor/Base.lproj/Localizable.strings @@ -0,0 +1,116 @@ +/* + Localizable.strings + DUREX test + + Created by Imanol Barba on 8/11/14. + Copyright (c) 2014 Emmoco. All rights reserved. +*/ + +"PIECE OF CRAP 2000 PRO ULTRA" = "PIECE OF CRAP 2000 PRO ULTRA"; +"FUCKING ONLINE" = "FUCKING ONLINE"; +"Maintenance" = "Maintenance"; +"Basic Configuration" = "Basic Configuration"; +"Sending a Report" = "Sending a Report"; +"Sensors" = "Sensors"; +"Commands" = "Commands"; +"Channels Present" = "Channels Present"; +"Channel 1" = "Channel 1"; +"Channel 2" = "Channel 2"; +"Channel 3" = "Channel 3"; +"Channel 4" = "Channel 4"; +"Channel 5" = "Channel 5"; +"Channel 6" = "Channel 6"; +"Channel 7" = "Channel 7"; +"Channel 8" = "Channel 8"; +"Channel 9" = "Channel 9"; +"Channel 10" = "Channel 10"; +"Channel 11" = "Channel 11"; +"Channel 12" = "Channel 12"; +"Channel 13" = "Channel 13"; +"Channel 14" = "Channel 14"; +"Channel 15" = "Channel 15"; +"Channel 16" = "Channel 16"; +"Product Present in Channel" = "Product Present in Channel"; +"Channel Engine Status" = "Channel Engine Status"; +"Door Sensor" = "Door Sensor"; +"Coil Sensor" = "Coil Sensor"; +"OPEN" = "OPEN"; +"CLOSED" = "CLOSED"; +"Money Collected" = "Money Collected"; +"Money Returned" = "Money Returned"; +"Products Sold" = "Products Sold"; +"Product 1" = "Product 1"; +"Product 2" = "Product 2"; +"Product 3" = "Product 3"; +"Product 4" = "Product 4"; +"Product 5" = "Product 5"; +"Product 6" = "Product 6"; +"Product 7" = "Product 7"; +"Product 8" = "Product 8"; +"Product 9" = "Product 9"; +"Product 10" = "Product 10"; +"Product 11" = "Product 11"; +"Product 12" = "Product 12"; +"Product 13" = "Product 13"; +"Product 14" = "Product 14"; +"Product 15" = "Product 15"; +"Product 16" = "Product 16"; +"Change Available" = "Change Available"; +"Sales log" = "Sales log"; +"Incident report" = "Incident report"; +"Send report" = "Send report"; +"Communication error" = "Communication error"; +"Error while trying to connect to the device" = "Error while trying to connect to the device"; +"Signal Strength: %0.0f" = "Signal Strength: %0.0f"; +"Searching for devices..." = "Searching for devices..."; +"Connection Failed" = "Connection Failed"; +"An error occurred while trying to connect to the selected device" = "An error occurred while trying to connect to the selected device"; +"Close" = "Close"; +"20€ Notes" = "20€ Notes"; +"10€ Notes" = "10€ Notes"; +"5€ Notes" = "5€ Notes"; +"2€ Coins" = "2€ Coins"; +"1€ Coins" = "1€ Coins"; +"50c Coins" = "50c Coins"; +"Channel" = "Channel"; +"Product Code" = "Product Code"; +"Product Price" = "Product Price"; +"Discounted Price" = "Discounted Price"; +"1€ Change" = "1€ Change"; +"50c Change" = "50c Change"; +"Money Paid" = "Money Paid"; +"Update Date & Time" = "Update Date & Time"; +"Update product price" = "Update product price"; +"Update product name" = "Update product name"; +"Sale on" = "Sale on"; +"Report sent successfully" = "Report sent successfully"; +"Success!" = "Success!"; +"Connection to server failed" = "Connection to server failed"; +"Error" = "Error"; +"Product" = "Product"; +"Entered price has an invalid format" = "Entered price has an invalid format"; +"Entered product code has an invalid format" = "Entered product code has an invalid format"; +"Entered channel has an invalid format" = "Entered channel has an invalid format"; +"Missing channel" = "Missing channel"; +"Missing product code" = "Missing product code"; +"Time and Date changed successfully" = "Time and Date changed successfully"; +"Time and Date change returned error" = "Time and Date change returned error"; +"Product price changed successfully" = "Product price changed successfully"; +"Product price change returned error" = "Product price change returned error"; +"Product name changed successfully" = "Product name changed successfully"; +"Product name change returned error" = "Product name change returned error"; +"Error occurred while reading answer from device" = "Error occurred while reading answer from device"; +"Error occurred while sending command to device" = "Error occurred while sending command to device"; +"Connection lost" = "Connection lost"; +"Device answer timeout occurred" = "Device answer timeout occurred"; +"Incident log" = "Incident log"; +"Error Code" = "Error Code"; +"Error Value" = "Error Value"; +"Error obtaining data from URL" = "Error obtaining data from URL"; +"Missing fields version and/or commands in JSON file" = "Missing fields version and/or commands in JSON file"; +"Version mismatch" = "Version mismatch"; +"Do you want to run batch command file" = "Do you want to run batch command file"; +"WARNING: Machine ID does not match currently connected machine. Do you wish to continue?" = "WARNING: Machine ID does not match currently connected machine. Do you wish to continue?"; +"Confirmation" = "Confirmation"; +"OK" = "OK"; +"Cancel" = "Cancel"; \ No newline at end of file diff --git a/BT Vendor/Base.lproj/NameChangerViewController.xib b/BT Vendor/Base.lproj/NameChangerViewController.xib new file mode 100644 index 0000000..b0f47ba --- /dev/null +++ b/BT Vendor/Base.lproj/NameChangerViewController.xib @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/NameChangerViewController_Landscape.xib b/BT Vendor/Base.lproj/NameChangerViewController_Landscape.xib new file mode 100644 index 0000000..ef8a3fa --- /dev/null +++ b/BT Vendor/Base.lproj/NameChangerViewController_Landscape.xib @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/NameChangerViewController_iPad.xib b/BT Vendor/Base.lproj/NameChangerViewController_iPad.xib new file mode 100644 index 0000000..e37d32d --- /dev/null +++ b/BT Vendor/Base.lproj/NameChangerViewController_iPad.xib @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/NameChangerViewController_iPad_Landscape.xib b/BT Vendor/Base.lproj/NameChangerViewController_iPad_Landscape.xib new file mode 100644 index 0000000..4180225 --- /dev/null +++ b/BT Vendor/Base.lproj/NameChangerViewController_iPad_Landscape.xib @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/PriceChangerViewController.xib b/BT Vendor/Base.lproj/PriceChangerViewController.xib new file mode 100644 index 0000000..9aabf3a --- /dev/null +++ b/BT Vendor/Base.lproj/PriceChangerViewController.xib @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/PriceChangerViewController_Landscape.xib b/BT Vendor/Base.lproj/PriceChangerViewController_Landscape.xib new file mode 100644 index 0000000..d7838d2 --- /dev/null +++ b/BT Vendor/Base.lproj/PriceChangerViewController_Landscape.xib @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/PriceChangerViewController_iPad.xib b/BT Vendor/Base.lproj/PriceChangerViewController_iPad.xib new file mode 100644 index 0000000..8465b16 --- /dev/null +++ b/BT Vendor/Base.lproj/PriceChangerViewController_iPad.xib @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/PriceChangerViewController_iPad_Landscape.xib b/BT Vendor/Base.lproj/PriceChangerViewController_iPad_Landscape.xib new file mode 100644 index 0000000..3f8d17e --- /dev/null +++ b/BT Vendor/Base.lproj/PriceChangerViewController_iPad_Landscape.xib @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/Base.lproj/back_arrow.png b/BT Vendor/Base.lproj/back_arrow.png new file mode 100644 index 0000000..02b7278 Binary files /dev/null and b/BT Vendor/Base.lproj/back_arrow.png differ diff --git a/BT Vendor/ChildViewController.h b/BT Vendor/ChildViewController.h new file mode 100644 index 0000000..54b47b3 --- /dev/null +++ b/BT Vendor/ChildViewController.h @@ -0,0 +1,24 @@ +// +// ChildViewController.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 10/10/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +@class ChildViewController; + +#import + +@protocol ChildViewControllerDelegate +- (void)removeChildFromParentController:(ChildViewController*)controller; + +@end + +@interface ChildViewController : UIViewController + +- (void) parentViewControllerDidRotateWithOrientation: (UIDeviceOrientation) orientation; +- (void) parentViewControllerWillRotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration: (NSTimeInterval)duration; + +@property (nonatomic, strong) id childDelegate; +@end diff --git a/BT Vendor/ChildViewController.m b/BT Vendor/ChildViewController.m new file mode 100644 index 0000000..8cd3cb8 --- /dev/null +++ b/BT Vendor/ChildViewController.m @@ -0,0 +1,59 @@ +// +// ChildViewController.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 10/10/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "ChildViewController.h" + +@interface ChildViewController () + +@end + +@implementation ChildViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view. +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender +{ + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +- (void) parentViewControllerDidRotateWithOrientation:(UIDeviceOrientation)orientation +{ + //STUB +} + +- (void) parentViewControllerWillRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration +{ + //STUB +} + +@end diff --git a/BT Vendor/CommunicationProtocol.h b/BT Vendor/CommunicationProtocol.h new file mode 100644 index 0000000..f69bb85 --- /dev/null +++ b/BT Vendor/CommunicationProtocol.h @@ -0,0 +1,49 @@ +// +// CommunicationProtocol.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 5/23/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +@class CommunicationProtocol; + +#import +#import "EMFramework.h" + +#define SLEEP_TIME ((NSTimeInterval)1) +#define MAX_STRING_LENGTH ((int)200) +#define MAX_RETRIES ((int)3) +#define MAX_PRODUCT_NAME_LENGTH ((int)64) +#define MAX_CHANNELS ((int)16) +#define MONEY_IN_NUM_UNITS ((int)6) +#define MONEY_OUT_NUM_UNITS ((int)3) +#define CHANGE_NUM_UNITS ((int)2) +#define MAX_PRODUCTS ((int)16) +#define SALE_STRING_LENGTH ((int)36) +#define INCIDENT_STRING_LENGTH ((int)20) +#define REPORT_SERVER_URL @"http://seneca.upc.es:8090/machine" + +@protocol CommunicationProtocolDelegate +- (void)processMessage:(CommunicationProtocol*)protocol didFinishEnteringItem:(NSString*) response; +- (void) reportProtocolError: (CommunicationProtocol*)protocol didFinishEnteringItem:(NSString*) error; +@end + +@interface CommunicationProtocol : NSObject + +@property (nonatomic, strong) id delegate; + +-(void) writeMessage: (NSString*) message; +-(void) readMessage; +-(void) establishConnection; +-(void) disconnect; +-(void) updateTime: (NSDateComponents*) date; +-(void) updatePrice: (uint8_t) channel : (uint8_t) product : (uint8_t) eur : (uint8_t) cents; +-(void) updateProductName: (uint8_t) channel : (uint8_t) product : (NSString*) name; +-(void) readSensorData; +-(void) readSalesLog: (NSDateComponents*) start : (NSDateComponents*) end; +-(void) readIncidentLog: (NSDateComponents*) start : (NSDateComponents*) end; +//-(void) testA9 : (NSMutableString*) testString; ++(id) sharedProtocol; + +@end diff --git a/BT Vendor/CommunicationProtocol.m b/BT Vendor/CommunicationProtocol.m new file mode 100644 index 0000000..47fa530 --- /dev/null +++ b/BT Vendor/CommunicationProtocol.m @@ -0,0 +1,366 @@ +// +// CommunicationProtocol.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 5/23/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "CommunicationProtocol.h" + +@interface CommunicationProtocol () + +@property Boolean messageAvailableMobile; +@property Boolean messageAvailableDevice; +@property NSMutableString *message; +@property NSUInteger currentIndex; +@property NSUInteger remainingBytes; +@property NSInteger numPackets; + +@end + +@implementation CommunicationProtocol + ++ (id)sharedProtocol +{ + static CommunicationProtocol *shared = nil; + static dispatch_once_t onceToken; + dispatch_once(&onceToken, ^{ + shared = [[self alloc] init]; + [shared setMessageAvailableDevice:FALSE]; + [shared setMessageAvailableMobile:FALSE]; + }); + return shared; +} + +-(void) readMessage +{ + [self setMessage:[NSMutableString stringWithFormat:@""]]; + self.numPackets = -1; + [self waitForMessage: 0]; +} + +- (void) readNextFragment +{ + __block NSUInteger numBytes; + [[EMConnectionManager sharedManager] readResource:@"numBytes" onSuccess:^(id readValue) + { + numBytes = [readValue unsignedCharValue]; + NSLog(@"[CommunicationProtocol.m]: numBytes read: %d",numBytes); + [[EMConnectionManager sharedManager] readResource:@"data" onSuccess:^(id readValue) + { + NSString *readData = [readValue substringToIndex:numBytes]; + if([readValue length] < numBytes) + { + NSLog(@"[CommunicationProtocol.m]: WARNING: Device issued wrong numBytes, possible truncated message."); + } + [self.message appendString:readData]; + NSLog(@"[CommunicationProtocol.m]: data read: %@",readData); + [[EMConnectionManager sharedManager] writeValue:@"0" toResource:@"messageAvailableDevice" onSuccess:^ + { + NSLog(@"[CommunicationProtocol.m]: messageAvailableDevice set to FALSE"); + NSLog(@"[CommunicationProtocol.m]: packet read"); + self.numPackets--; + if(self.numPackets) + { + [self waitForMessage: 0]; + } + else + { + [[self delegate] processMessage:self didFinishEnteringItem:self.message]; + } + }onFail:^(NSError *error) + { + NSLog(@"[CommunicationProtocol.m]: On setMessageAvailableDevice to FALSE: %@",error); + [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while reading answer from device",nil),[error localizedDescription]]]; + }]; + }onFail:^(NSError *error) + { + NSLog(@"[CommunicationProtocol.m]: On readData: %@",error); + [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while reading answer from device",nil),[error localizedDescription]]]; + }]; + }onFail:^(NSError *error) + { + NSLog(@"[CommunicationProtocol.m]: On readNumBytes: %@",error); + [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while reading answer from device",nil),[error localizedDescription]]]; + }]; +} + +- (void) readNumPackets +{ + [[EMConnectionManager sharedManager] readResource:@"numPackets" onSuccess:^(id readValue) + { + self.numPackets = [readValue unsignedCharValue]; + NSLog(@"[CommunicationProtocol.m]: numPackets read: %d",self.numPackets); + [self readNextFragment]; + }onFail:^(NSError *error) + { + NSLog(@"[CommunicationProtocol.m]: On readNumPackets: %@",error); + [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while reading answer from device",nil),[error localizedDescription]]]; + }]; +} + +- (void) waitForMessage: (uint8_t) retries +{ + if(retries == MAX_RETRIES) + { + NSLog(@"[CommunicationProtocol.m]: Device not ready."); + NSLog(@"[CommunicationProtocol.m]: Timeout while expecting message"); + } + else + { + NSLog(@"[CommunicationProtocol.m]: Reading messageAvailable from device"); + [[EMConnectionManager sharedManager] readResource:@"messageAvailableDevice" onSuccess:^(id readValue) + { + [self setMessageAvailableDevice:[readValue intValue]]; + if(![self messageAvailableDevice]) + { + NSLog(@"[CommunicationProtocol.m]: Device not ready. Retrying..."); + [NSThread sleepForTimeInterval:SLEEP_TIME]; + [self waitForMessage:retries + 1]; + } + else + { + if(self.numPackets == -1) + { + [self readNumPackets]; + } + else + { + [self readNextFragment]; + } + } + }onFail:^(NSError *error) + { + NSLog(@"[CommunicationProtocol.m]: On waitForMessage: %@",error); + [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while reading answer from device",nil),[error localizedDescription]]]; + }]; + } +} + +-(void) writeMessage: (NSString*) message +{ + NSLog(@"[CommunicationProtocol.m]: Sending message: %@",message); + [self setMessage:[NSMutableString stringWithString:message]]; + [self setRemainingBytes:[message length]]; + [self setCurrentIndex:0]; + [[EMConnectionManager sharedManager] writeValue:[NSNumber numberWithUnsignedChar:(unsigned char)([message length]/MAX_STRING_LENGTH)+1] toResource:@"numPackets" onSuccess:^ + { + NSLog(@"[CommunicationProtocol.m]: numPackets set to %u",([message length]/MAX_STRING_LENGTH) + 1); + [self sendNextFragment]; + }onFail:^(NSError *error) + { + NSLog(@"[CommunicationProtocol.m]: On setNumPackets: %@",error); + [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while sending command to device",nil),[error localizedDescription]]]; + }]; +} + +- (void) sendNextFragment +{ + if(self.remainingBytes) + { + NSLog(@"[CommunicationProtocol.m]: Sending next fragment"); + NSUInteger numBytes; + if(self.remainingBytes > MAX_STRING_LENGTH) + { + numBytes = MAX_STRING_LENGTH; + self.remainingBytes -= MAX_STRING_LENGTH; + } + else + { + numBytes = self.remainingBytes; + self.remainingBytes = 0; + } + [[EMConnectionManager sharedManager] writeValue:[NSNumber numberWithUnsignedChar:(unsigned char)numBytes] toResource:@"numBytes" onSuccess:^ + { + NSLog(@"[CommunicationProtocol.m]: numBytes set to %d", numBytes); + NSString *data = [self.message substringWithRange:NSMakeRange(self.currentIndex, numBytes)]; + self.currentIndex += numBytes; + [[EMConnectionManager sharedManager] writeValue:data toResource:@"data" onSuccess:^ + { + NSLog(@"[CommunicationProtocol.m]: data set to: %@",data); + [[EMConnectionManager sharedManager] writeValue:@"1" toResource:@"messageAvailableMobile" onSuccess:^ + { + NSLog(@"[CommunicationProtocol.m]: messageAvailableMobile set to TRUE"); + NSLog(@"[CommunicationProtocol.m]: Packet written"); + [self readACK: 0]; + }onFail:^(NSError *error) + { + NSLog(@"[CommunicationProtocol.m]: On setMessageAvailable to TRUE: %@",error); + [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while sending command to device",nil),[error localizedDescription]]]; + }]; + }onFail:^(NSError *error) + { + NSLog(@"[CommunicationProtocol.m]: On setData: %@",error); + [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while sending command to device",nil),[error localizedDescription]]]; + }]; + }onFail:^(NSError *error) + { + NSLog(@"[CommunicationProtocol.m]: On setNumBytes: %@",error); + [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while sending command to device",nil),[error localizedDescription]]]; + }]; + } + else + { + NSLog(@"[CommunicationProtocol.m]: Finished sending message"); + [self readMessage]; + } +} + +- (void) readACK: (uint8_t) retries +{ + if(retries == MAX_RETRIES) + { + NSLog(@"[CommunicationProtocol.m]: Device not ready."); + NSLog(@"[CommunicationProtocol.m]: Timeout while expecting ACK"); + } + else + { + NSLog(@"[CommunicationProtocol.m]: Reading ACK from device"); + [[EMConnectionManager sharedManager] readResource:@"messageAvailableMobile" onSuccess:^(id readValue) + { + [self setMessageAvailableMobile:[readValue intValue]]; + if([self messageAvailableMobile]) + { + NSLog(@"[CommunicationProtocol.m]: Device not ready. Retrying..."); + [NSThread sleepForTimeInterval:SLEEP_TIME]; + [self readACK:retries + 1]; + } + else + { + [self sendNextFragment]; + } + }onFail:^(NSError *error) + { + NSLog(@"[CommunicationProtocol.m]: On readACK: %@",error); + [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while sending command to device",nil),[error localizedDescription]]]; + }]; + } +} + +-(void) establishConnection +{ + NSLog(@"[CommunicationProtocol.m]: Establishing connection..."); + [self writeMessage:@"Hello"]; + NSLog(@"[CommunicationProtocol.m]: Hello sent"); +} + +-(void) disconnect +{ + NSLog(@"[CommunicationProtocol.m]: Terminating connection..."); + [self writeMessage:@"Bye"]; + NSLog(@"[CommunicationProtocol.m]: Bye sent"); +} + +-(void) updateTime: (NSDateComponents*) date +{ + NSMutableString *command = [NSMutableString stringWithFormat: @"A5"]; + NSInteger year = [date year]; + year = year - (year/100)*100; + [command appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; + [command appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld%02ld",(long)[date month],(long)[date day],(long)[date hour],(long)[date minute],(long)[date second]]]; + [self writeMessage:command]; +} + +-(void) updatePrice: (uint8_t) channel : (uint8_t) product : (uint8_t) eur : (uint8_t) cents +{ + NSMutableString *command = [NSMutableString stringWithFormat: @"A6%01d%01d%02d%02d",channel,product,eur,cents]; + [self writeMessage:command]; +} + +-(void) updateProductName: (uint8_t) channel : (uint8_t) product : (NSString*) name +{ + if([name length] > MAX_PRODUCT_NAME_LENGTH) + { + name = [name substringToIndex:MAX_PRODUCT_NAME_LENGTH-1]; + } + NSMutableString *command = [NSMutableString stringWithFormat: @"A7%01d%01d%@",channel,product,name]; + [self writeMessage:command]; +} + +-(void) readSensorData +{ + NSString *command = @"A4"; + [self writeMessage:command]; + + /*NSMutableString *answer = [[NSMutableString alloc]initWithString:@"P4000150001500015000000010010030050020000010020101010100000000000000000000000000"];*/ +} + +-(void) readSalesLog : (NSDateComponents*) start : (NSDateComponents*) end +{ + NSMutableString *startDate = [NSMutableString stringWithString:@""]; + NSMutableString *endDate = [NSMutableString stringWithString:@""]; + NSMutableString *command = [NSMutableString stringWithString:@"A2"]; + if(start == nil) + { + [startDate setString:@""]; + } + else + { + NSInteger year = [start year]; + year = year - (year/100)*100; + [startDate appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; + [startDate appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld",(long)[start month],(long)[start day],(long)[start hour],(long)[start minute]]]; + } + if(end == nil) + { + [endDate setString:@""]; + } + else + { + NSInteger year = [end year]; + year = year - (year/100)*100; + [endDate appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; + [endDate appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld",(long)[end month],(long)[end day],(long)[end hour],(long)[end minute]]]; + } + [command appendString:startDate]; + [command appendString:@"-"]; + [command appendString:endDate]; + [self writeMessage:command]; + + //NSMutableString *answer = [[NSMutableString alloc]initWithString:@"P21408161036000001000000110450000001P21409012216000100000000220900000100P21409032307000000010502330800000000P21409070540000000020000440350000001P2P2"]; +} + +-(void) readIncidentLog:(NSDateComponents *)start :(NSDateComponents *)end +{ + NSMutableString *startDate = [NSMutableString stringWithString:@""]; + NSMutableString *endDate = [NSMutableString stringWithString:@""]; + NSMutableString *command = [NSMutableString stringWithString:@"A3"]; + if(start == nil) + { + [startDate setString:@""]; + } + else + { + NSInteger year = [start year]; + year = year - (year/100)*100; + [startDate appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; + [startDate appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld",(long)[start month],(long)[start day],(long)[start hour],(long)[start minute]]]; + } + if(end == nil) + { + [endDate setString:@""]; + } + else + { + NSInteger year = [end year]; + year = year - (year/100)*100; + [endDate appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; + [endDate appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld",(long)[end month],(long)[end day],(long)[end hour],(long)[end minute]]]; + } + [command appendString:startDate]; + [command appendString:@"-"]; + [command appendString:endDate]; + [self writeMessage:command]; + + //@"P3140816103600012222P3140910093600023333P3140921103600034444P3140927103600045555P3P3" +} + +/*-(void) testA9:(NSMutableString *)testString +{ + NSMutableString *messageA9 = [[NSMutableString alloc] initWithString:@"A9"]; + [messageA9 appendString:testString]; + [self writeMessage:messageA9]; +}*/ + +@end diff --git a/BT Vendor/DatePickerViewController.h b/BT Vendor/DatePickerViewController.h new file mode 100644 index 0000000..feaefe6 --- /dev/null +++ b/BT Vendor/DatePickerViewController.h @@ -0,0 +1,29 @@ +// +// DatePickerViewController.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 03/09/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +@class DatePickerViewController; + +#import +#import +#import "BTAppDelegate.h" + +@protocol DatePickerViewControllerDelegate +- (void)passDateViewController:(DatePickerViewController*)controller didFinishEnteringItem:(NSDate *)date; + +@end + +@interface DatePickerViewController : UIViewController + +@property (strong, nonatomic) IBOutlet UIView *datePickerView; +@property (strong, nonatomic) IBOutlet UIDatePicker *datePicker; +@property (nonatomic, strong) id delegate; + +- (void)showInView:(UIView *)aView animated:(BOOL)animated; +- (IBAction)closePopup:(id)sender; + +@end diff --git a/BT Vendor/DatePickerViewController.m b/BT Vendor/DatePickerViewController.m new file mode 100644 index 0000000..2fcc189 --- /dev/null +++ b/BT Vendor/DatePickerViewController.m @@ -0,0 +1,83 @@ +// +// DatePickerViewController.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 03/09/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "DatePickerViewController.h" + +@interface DatePickerViewController () + +@end + +@implementation DatePickerViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} + +- (void)viewDidLoad +{ + self.view.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:.7]; + self.datePickerView.layer.cornerRadius = 5; + self.datePickerView.layer.shadowOpacity = 0.8; + self.datePickerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); + + //Fix transparency glitch on iPad + [self.datePicker setDate:[NSDate dateWithTimeIntervalSince1970:NSTimeIntervalSince1970]]; + [self.datePicker setDate:[NSDate date]]; + + [super viewDidLoad]; + // Do any additional setup after loading the view from its nib. +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +- (void)showAnimate +{ + self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); + self.view.alpha = 0; + [UIView animateWithDuration:.25 animations:^{ + self.view.alpha = 1; + self.view.transform = CGAffineTransformMakeScale(1, 1); + }]; +} + +- (void)removeAnimate +{ + [UIView animateWithDuration:.25 animations:^{ + self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); + self.view.alpha = 0.0; + } completion:^(BOOL finished) { + if (finished) { + [self.view removeFromSuperview]; + } + }]; +} + +- (IBAction)closePopup:(id)sender +{ + [self.delegate passDateViewController:self didFinishEnteringItem:[[self datePicker] date]]; + [self removeAnimate]; +} + +- (void)showInView:(UIView *)aView animated:(BOOL)animated +{ + [aView addSubview:self.view]; + if (animated) { + [self showAnimate]; + } +} + +@end diff --git a/BT Vendor/DateRangePickerViewController.h b/BT Vendor/DateRangePickerViewController.h new file mode 100644 index 0000000..909c2be --- /dev/null +++ b/BT Vendor/DateRangePickerViewController.h @@ -0,0 +1,47 @@ +// +// DateRangePickerViewController.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 9/13/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +// +// DatePickerViewController.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 03/09/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +@class DateRangePickerViewController; + +#import +#import +#import "BTAppDelegate.h" +#import "ChildViewController.h" + +@protocol DateRangePickerViewControllerDelegate +- (void)passDateRangeViewController:(DateRangePickerViewController*)controller didFinishEnteringItem:(NSDate*) from : (NSDate*) to; + +@end + +@interface DateRangePickerViewController : ChildViewController + +@property (strong, nonatomic) IBOutlet UIView *dateRangePickerView; +@property (strong, nonatomic) IBOutlet UIDatePicker *fromDate; +@property (strong, nonatomic) IBOutlet UIDatePicker *toDate; +@property (strong, nonatomic) IBOutlet UISwitch *fromToggler; +@property (strong, nonatomic) IBOutlet UISwitch *toToggler; +@property (strong, nonatomic) IBOutlet UIButton *doneButton; +@property (strong, nonatomic) IBOutlet UILabel *toLabel; +@property (strong, nonatomic) IBOutlet UIScrollView *scrollView; +@property (strong, nonatomic) IBOutlet UIView *scrolledView; +@property (nonatomic, strong) id delegate; + +- (void)showInView:(UIView *)aView animated:(BOOL)animated; +- (IBAction)toggleFromDate:(id)sender; +- (IBAction)toggleToDate:(id)sender; +- (IBAction)closePopup:(id)sender; + +@end diff --git a/BT Vendor/DateRangePickerViewController.m b/BT Vendor/DateRangePickerViewController.m new file mode 100644 index 0000000..83132b6 --- /dev/null +++ b/BT Vendor/DateRangePickerViewController.m @@ -0,0 +1,240 @@ +// +// DateRangePickerViewController.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 9/13/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "DateRangePickerViewController.h" + +@interface DateRangePickerViewController () + +@property uint8_t isExtended; +@property NSUInteger currentHeight; + +@end + +@implementation DateRangePickerViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + + } + return self; +} + +- (void)viewDidLoad +{ + self.view.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:.7]; + self.dateRangePickerView.layer.cornerRadius = 5; + self.dateRangePickerView.layer.shadowOpacity = 0.8; + self.dateRangePickerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); + + //Fix transparency glitch on iPad + [self.fromDate setDate:[NSDate dateWithTimeIntervalSince1970:NSTimeIntervalSince1970]]; + [self.fromDate setDate:[NSDate date]]; + [self.toDate setDate:[NSDate dateWithTimeIntervalSince1970:NSTimeIntervalSince1970]]; + [self.toDate setDate:[NSDate date]]; + + [self setIsExtended:0]; + [self setCurrentHeight:[self scrollView].frame.size.height]; + + [super viewDidLoad]; + // Do any additional setup after loading the view from its nib. +} + +- (void) viewDidAppear:(BOOL)animated +{ + [super viewDidAppear:animated]; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +- (void) parentViewControllerDidRotateWithOrientation: (UIDeviceOrientation) orientation +{ + NSLog(@"[DateRangePickerViewController.m]: Screen did rotate"); + [self resizeViewHeight:self.scrollView :self.currentHeight :FALSE :FALSE]; + if([self.fromToggler isOn]) + { + NSUInteger height = [self fromDate].frame.size.height; + self.currentHeight -= (height + 20); + [self toggleFromDate:self]; + } + if([self.toToggler isOn]) + { + NSUInteger height = [self toDate].frame.size.height; + self.currentHeight -= (height + 20); + [self toggleToDate:self]; + } +} + +- (void) parentViewControllerWillRotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration: (NSTimeInterval)duration +{ + NSLog(@"[DateRangePickerViewController.m]: Screen will rotate"); +} + +- (void) expandScrollView +{ + +} + +- (void)showAnimate +{ + self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); + self.view.alpha = 0; + [UIView animateWithDuration:.25 animations:^{ + self.view.alpha = 1; + self.view.transform = CGAffineTransformMakeScale(1, 1); + }]; +} + +- (void)removeAnimate +{ + [UIView animateWithDuration:.25 animations:^{ + self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); + self.view.alpha = 0.0; + } completion:^(BOOL finished) { + if (finished) { + [self.view removeFromSuperview]; + } + }]; +} + +- (void) moveUp: (UIView*) view : (NSUInteger) height +{ + CGPoint position = view.center; + position.y -= height; + [UIView beginAnimations:@"MoveUp" context:NULL]; + [UIView setAnimationDuration:0.5]; + view.center = position; + [UIView commitAnimations]; +} + +- (void) moveDown: (UIView*) view : (NSUInteger) height +{ + CGPoint position = view.center; + position.y += height; + [UIView beginAnimations:@"MoveDown" context:NULL]; + [UIView setAnimationDuration:0.5]; + view.center = position; + [UIView commitAnimations]; +} + +- (void) resizeViewHeight : (UIView*) view : (NSInteger) height : (Boolean) ignoreHeight : (Boolean) realResize +{ + NSLog(@"[DateRangePickerViewController.m]: currentHeight is %lu", (unsigned long)self.currentHeight); + CGRect screenRect = [[UIScreen mainScreen] bounds]; + CGFloat screenHeight; + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + screenHeight = screenRect.size.width; + } + else + { + screenHeight = screenRect.size.height; + } + if((height > (screenHeight-40)) && !ignoreHeight) + { + NSLog(@"[DateRangePickerViewController.m]: Screen height limit reached"); + height = screenHeight-40; + } + [UIView beginAnimations:nil context:NULL]; + [UIView setAnimationDuration:0.5]; + view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width,height); + [UIView commitAnimations]; + if(realResize) + { + if(height < 0) + { + [self setIsExtended: [self isExtended] - 1]; + } + else + { + [self setIsExtended: [self isExtended] + 1]; + } + } + [self.scrollView setContentSize:CGSizeMake([self scrolledView].frame.size.width,[self currentHeight])]; + [self.scrollView flashScrollIndicators]; +} + +- (IBAction)toggleFromDate:(id)sender +{ + NSUInteger height = [self fromDate].frame.size.height; + if([[self fromToggler] isOn]) + { + [[self fromDate] setEnabled:TRUE]; + [[self fromDate] setHidden:FALSE]; + [self moveDown:[self toToggler] :height]; + [self moveDown:[self toDate] :height]; + [self moveDown:[self doneButton] :height]; + [self moveDown:[self toLabel] :height]; + [self setCurrentHeight:[self currentHeight] + height + 20]; + [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE]; + } + else + { + [[self fromDate] setEnabled:FALSE]; + [[self fromDate] setHidden:TRUE]; + [self moveUp:[self toToggler] :height]; + [self moveUp:[self toDate] :height]; + [self moveUp:[self doneButton] :height]; + [self moveUp:[self toLabel] :height]; + [self setCurrentHeight:[self currentHeight] - height - 20]; + [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE]; + } +} +- (IBAction)toggleToDate:(id)sender +{ + NSUInteger height = [self toDate].frame.size.height; + if([[self toToggler] isOn]) + { + [[self toDate] setEnabled:TRUE]; + [[self toDate] setHidden:FALSE]; + [self moveDown:[self doneButton] :height]; + [self setCurrentHeight:[self currentHeight] + height + 20]; + [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE]; + } + else + { + [[self toDate] setEnabled:FALSE]; + [[self toDate] setHidden:TRUE]; + [self moveUp:[self doneButton] :height]; + [self setCurrentHeight:[self currentHeight] - height - 20]; + [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE]; + } +} + +- (IBAction)closePopup:(id)sender +{ + NSDate *from = nil; + NSDate *to = nil; + if([[self fromToggler] isOn]) + { + from = [[self fromDate] date]; + } + if([[self toToggler] isOn]) + { + to = [[self toDate] date]; + } + [self.delegate passDateRangeViewController:self didFinishEnteringItem:from : to]; + [self.childDelegate removeChildFromParentController:self]; + [self removeAnimate]; +} + +- (void)showInView:(UIView *)aView animated:(BOOL)animated +{ + [aView addSubview:self.view]; + if (animated) + { + [self showAnimate]; + } +} + +@end \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Assets/system.json b/BT Vendor/EmmocoMobileFramework/Assets/system.json new file mode 100644 index 0000000..7a27c17 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Assets/system.json @@ -0,0 +1,196 @@ +{ + "resources": { + "$activeParameterGroup": { + "id": -10, + "align": 1, + "pack": 1, + "attributes": {"readwrite": true}, + "type": "E:system@emmoco.com.System/ParameterGroup", + "access": "rw", + "size": 1 + }, + "$schemaHash": { + "dim": 20, + "id": -6, + "align": 1, + "attributes": {"readonly": true}, + "type": "A20:u1", + "access": "r", + "size": 20 + }, + "$eapProtocolLevel": { + "id": -3, + "align": 2, + "attributes": {"readonly": true}, + "type": "u2", + "access": "r", + "size": 2 + }, + "$mcmProtocolLevel": { + "id": -2, + "align": 2, + "attributes": {"readonly": true}, + "type": "u2", + "access": "r", + "size": 2 + }, + "$mobileRssi": { + "id": -8, + "align": 1, + "attributes": {"readonly": true}, + "type": "i1", + "access": "r", + "size": 1 + }, + "$mcmDisconnect": { + "id": -9, + "align": 1, + "attributes": {"writeonly": true}, + "type": "u1", + "access": "w", + "size": 1 + }, + "$eapBuildDate": { + "dim": 8, + "id": -4, + "align": 1, + "attributes": {"readonly": true}, + "type": "A8:u1", + "access": "r", + "size": 8 + }, + "$resourceCount": { + "id": -7, + "align": 1, + "attributes": {"readonly": true}, + "type": "S:system@emmoco.com.System/ResourceCount", + "access": "r", + "size": 2 + }, + "$fileIndexReset": { + "id": -5, + "align": 2, + "attributes": {"writeonly": true}, + "type": "i2", + "access": "w", + "size": 2 + } + }, + "resourceNamesSys": [ + "$activeParameterGroup", + "$eapBuildDate", + "$eapProtocolLevel", + "$fileIndexReset", + "$mcmDisconnect", + "$mcmProtocolLevel", + "$mobileRssi", + "$resourceCount", + "$schemaHash" + ], + "manifest": { + "protocolLevel": 13, + "hash": [ + 108, + 31, + 53, + 92, + 46, + 47, + 48, + 241, + 201, + 5, + 236, + 253, + 10, + 254, + 240, + 187 + ], + "toolVersion": "13.3.0.201307022239", + "name": "System", + "$$md5": "6c1f355c2e2f30f1c905ecfd0afef0bb", + "build": [ + 99, + 80, + 140, + 161, + 63, + 1, + 0, + 0 + ], + "date": "2013-07-02T17:41:34", + "idFormat": "BINARY4", + "maxAlign": 2, + "maxSize": 20, + "version": "13.3.0" + }, + "resourceNames": [ + "$mcmProtocolLevel", + "$eapProtocolLevel", + "$eapBuildDate", + "$fileIndexReset", + "$schemaHash", + "$resourceCount", + "$mobileRssi", + "$mcmDisconnect", + "$activeParameterGroup" + ], + "attributes": { + "description": "System resources schema", + "version": "13.3.0" + }, + "types": { + "system@emmoco.com.System/ResourceCount": { + "packed": false, + "align": 1, + "type": "S:system@emmoco.com.System/ResourceCount", + "size": 2, + "fields": [ + { + "pad": 0, + "align": 1, + "name": "app", + "type": "u1", + "size": 1 + }, + { + "pad": 0, + "align": 1, + "name": "sys", + "type": "u1", + "size": 1 + } + ] + }, + "std:i2": { + "align": 2, + "size": 2 + }, + "std:i1": { + "align": 1, + "size": 1 + }, + "std:u1": { + "align": 1, + "size": 1 + }, + "system@emmoco.com.System/ParameterGroup": { + "values": [ + "GROUP_A", + "GROUP_B" + ], + "align": 1, + "pack": 1, + "type": "E:system@emmoco.com.System/ParameterGroup", + "size": 1 + }, + "std:u2": { + "align": 2, + "size": 2 + } + }, + "resourceNamesApp": [], + "imports": {"@emmoco.com.System": true} +} \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/ArrayValue.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/ArrayValue.html new file mode 100644 index 0000000..875bda7 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/ArrayValue.html @@ -0,0 +1,1231 @@ + + + + + ArrayValue Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
+ + + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

copyFromResource:

+ + + + +
- (void)copyFromResource:(EMResourceValue *)source
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

doubleValue

+ + + + +
- (double)doubleValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

enumValues

+ + + + +
- (NSArray *)enumValues
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fieldNames

+ + + + +
- (NSArray *)fieldNames
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileEof

+ + + + +
- (BOOL)fileEof
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileFetch

+ + + + +
- (void)fileFetch
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileStore

+ + + + +
- (void)fileStore
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

getDataOfSize:fromBuffer:

+ + + + +
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

index:

+ + + + +
- (EMResourceValue *)index:(int)index
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

initWithName:type:schema:

+ + + + +
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

length

+ + + + +
- (long)length
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

longValue

+ + + + +
- (long long)longValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

max

+ + + + +
- (double)max
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

min

+ + + + +
- (double)min
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

putData:

+ + + + +
- (void)putData:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

reset

+ + + + +
- (void)reset
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

select:

+ + + + +
- (EMResourceValue *)select:(NSString *)fieldName
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setDoubleValue:

+ + + + +
- (void)setDoubleValue:(double)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setLongValue:

+ + + + +
- (void)setLongValue:(long long)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setStringValue:

+ + + + +
- (void)setStringValue:(NSString *)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

step

+ + + + +
- (double)step
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

stringValue

+ + + + +
- (NSString *)stringValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType.html new file mode 100644 index 0000000..67de2aa --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType.html @@ -0,0 +1,1030 @@ + + + + + EMBluetoothLowEnergyConnectionType Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromNSObject
Conforms toCBCentralManagerDelegate
CBPeripheralDelegate
EMConnectionType
Declared inEMBluetoothLowEnergyConnectionType.h
EMBluetoothLowEnergyConnectionType.m
+ + + + +
+ +

Overview

+

EMBluethoothLowEnergyConnectionType is a concrete EMConnectionType for Bluetooth Low Energy.

+ +

If you want the framework to interact with Bluetooth Low Energy devices, add an instance of this class to EMConnectionListManager via the -addConnectionTypeToUpdates: method.

+
+ + + + + +
+ +

Tasks

+ + + +

Other Methods

+ +
    +
  • + +   discoversAllEmmocoBLEDevices +

    By default, EMBluetoothLowEnergyConnectionType will ‘discover’ devices that have a schema hash matching a schema in your application bundle. +Set this flag to ‘YES’ for an instance of this class to discover all Emmoco BLE devices. +NOTE: Most applications should not have this enabled.

    +
    + property + +
  • +
+ + + +

Other Methods

+ + + + + +

Extension Methods

+ +
    +
  • + +   connected +

    A boolean indicating whether or not there is a connection with a device.

    +
    + property + +
  • +
+ +
+ + + + + +
+ +

Properties

+ +
+ +

connected

+ + + +
+

A boolean indicating whether or not there is a connection with a device.

+
+ + +
@property (nonatomic, getter=isConnected) BOOL connected
+ + + + + + + + +
+

Discussion

+

A boolean indicating whether or not there is a connection with a device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

discoversAllEmmocoBLEDevices

+ + + +
+

By default, EMBluetoothLowEnergyConnectionType will ‘discover’ devices that have a schema hash matching a schema in your application bundle. +Set this flag to ‘YES’ for an instance of this class to discover all Emmoco BLE devices. +NOTE: Most applications should not have this enabled.

+
+ + +
@property (nonatomic) BOOL discoversAllEmmocoBLEDevices
+ + + + + + + + +
+

Discussion

+

By default, EMBluetoothLowEnergyConnectionType will ‘discover’ devices that have a schema hash matching a schema in your application bundle. +Set this flag to ‘YES’ for an instance of this class to discover all Emmoco BLE devices. +NOTE: Most applications should not have this enabled.

+
+ + + + + + + +
+

Declared In

+ EMBluetoothLowEnergyConnectionType.h
+
+ + +
+ +
+ + + + + +
+ +

Instance Methods

+ +
+ +

connectToDevice:connectionDelegate:

+ + + +
+

Establishes a connection with a device

+
+ + +
- (void)connectToDevice:(EMDeviceBasicDescription *)device connectionDelegate:(id<EMDeviceDelegate>)connDelegate
+ + + + + + + + +
+

Discussion

+

Establishes a connection with a device

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

deviceType

+ + + +
+

The type of device - this can be set to anything and retreived for printing or examining.

+
+ + +
- (NSString *)deviceType
+ + + + + + + + +
+

Discussion

+

The type of device - this can be set to anything and retreived for printing or examining.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

disconnect

+ + + +
+

disconnects the current device.

+
+ + +
- (void)disconnect
+ + + + + + + + +
+

Discussion

+

disconnects the current device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

fetch:

+ + + +
+

Fetches a resource. Can be retrieved in “lastReadValue”

+
+ + +
- (void)fetch:(EMResourceValue *)value
+ + + + + + + + +
+

Discussion

+

Fetches a resource. Can be retrieved in “lastReadValue”

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

fetchSystemResource:

+ + + +
+

Fetches a system resource. Can be retrieved in “lastReadValue”.

+
+ + +
- (void)fetchSystemResource:(EMResourceValue *)value
+ + + + + + + + +
+

Discussion

+

Fetches a system resource. Can be retrieved in “lastReadValue”.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

isAvailable

+ + + +
+

YES if available on the current device, NO if unavailable.

+
+ + +
- (BOOL)isAvailable
+ + + + + + + + +
+

Discussion

+

YES if available on the current device, NO if unavailable.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

lastReadValue

+ + + +
+

The last read resource value from the device

+
+ + +
- (EMResourceValue *)lastReadValue
+ + + + + + + + +
+

Discussion

+

The last read resource value from the device

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

setConnectionDelegate:

+ + + +
+

The delegate for connection communication

+
+ + +
- (void)setConnectionDelegate:(id<EMDeviceDelegate>)connectionDelegate
+ + + + + + + + +
+

Discussion

+

The delegate for connection communication

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

startUpdating

+ + + +
+

Tells the connection to start looking for devices of its type.

+
+ + +
- (void)startUpdating
+ + + + + + + + +
+

Discussion

+

Tells the connection to start looking for devices of its type.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

stopUpdating

+ + + +
+

Tells the connection to stop looking for devices of its type.

+
+ + +
- (void)stopUpdating
+ + + + + + + + +
+

Discussion

+

Tells the connection to stop looking for devices of its type.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

store:

+ + + +
+

writes a value to a device.

+
+ + +
- (void)store:(EMResourceValue *)value
+ + + + + + + + +
+

Discussion

+

writes a value to a device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v12.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v12.html new file mode 100644 index 0000000..2f3d888 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v12.html @@ -0,0 +1,866 @@ + + + + + EMBluetoothLowEnergyConnectionType_v12 Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromNSObject
Conforms toCBCentralManagerDelegate
CBPeripheralDelegate
EMConnectionType
Declared inEMBluetoothLowEnergyConnectionType_v12.h
EMBluetoothLowEnergyConnectionType_v12.m
+ + + + +
+ +

Overview

+

EMBluethoothLowEnergyConnectionType is a concrete EMConnectionType for Bluetooth Low Energy.

+ +

If you want the framework to interact with Bluetooth Low Energy devices, add an instance of this class to EMConnectionListManager via the -addConnectionTypeToUpdates: method.

+
+ + + + + +
+ +

Tasks

+ + + +

Other Methods

+ + + + + +

Extension Methods

+ +
    +
  • + +   connected +

    A boolean indicating whether or not there is a connection with a device.

    +
    + property + +
  • +
+ +
+ + + + + +
+ +

Properties

+ +
+ +

connected

+ + + +
+

A boolean indicating whether or not there is a connection with a device.

+
+ + +
@property (nonatomic, getter=isConnected) BOOL connected
+ + + + + + + + +
+

Discussion

+

A boolean indicating whether or not there is a connection with a device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ + + + + +
+ +

Instance Methods

+ +
+ +

connectToDevice:connectionDelegate:

+ + + +
+

Establishes a connection with a device

+
+ + +
- (void)connectToDevice:(EMDeviceBasicDescription *)device connectionDelegate:(id<EMDeviceDelegate>)connDelegate
+ + + + + + + + +
+

Discussion

+

Establishes a connection with a device

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

deviceType

+ + + +
+

The type of device - this can be set to anything and retreived for printing or examining.

+
+ + +
- (NSString *)deviceType
+ + + + + + + + +
+

Discussion

+

The type of device - this can be set to anything and retreived for printing or examining.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

disconnect

+ + + +
+

disconnects the current device.

+
+ + +
- (void)disconnect
+ + + + + + + + +
+

Discussion

+

disconnects the current device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

fetch:

+ + + +
+

Fetches a resource. Can be retrieved in “lastReadValue”

+
+ + +
- (void)fetch:(EMResourceValue *)value
+ + + + + + + + +
+

Discussion

+

Fetches a resource. Can be retrieved in “lastReadValue”

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

fetchSystemResource:

+ + + +
+

Fetches a system resource. Can be retrieved in “lastReadValue”.

+
+ + +
- (void)fetchSystemResource:(EMResourceValue *)value
+ + + + + + + + +
+

Discussion

+

Fetches a system resource. Can be retrieved in “lastReadValue”.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

isAvailable

+ + + +
+

YES if available on the current device, NO if unavailable.

+
+ + +
- (BOOL)isAvailable
+ + + + + + + + +
+

Discussion

+

YES if available on the current device, NO if unavailable.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

startUpdating

+ + + +
+

Tells the connection to start looking for devices of its type.

+
+ + +
- (void)startUpdating
+ + + + + + + + +
+

Discussion

+

Tells the connection to start looking for devices of its type.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

stopUpdating

+ + + +
+

Tells the connection to stop looking for devices of its type.

+
+ + +
- (void)stopUpdating
+ + + + + + + + +
+

Discussion

+

Tells the connection to stop looking for devices of its type.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

store:

+ + + +
+

writes a value to a device.

+
+ + +
- (void)store:(EMResourceValue *)value
+ + + + + + + + +
+

Discussion

+

writes a value to a device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v13.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v13.html new file mode 100644 index 0000000..125b2cd --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v13.html @@ -0,0 +1,866 @@ + + + + + EMBluetoothLowEnergyConnectionType_v13 Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromNSObject
Conforms toCBCentralManagerDelegate
CBPeripheralDelegate
EMConnectionType
Declared inEMBluetoothLowEnergyConnectionType_v13.h
EMBluetoothLowEnergyConnectionType_v13.m
+ + + + +
+ +

Overview

+

EMBluethoothLowEnergyConnectionType is a concrete EMConnectionType for Bluetooth Low Energy.

+ +

If you want the framework to interact with Bluetooth Low Energy devices, add an instance of this class to EMConnectionListManager via the -addConnectionTypeToUpdates: method.

+
+ + + + + +
+ +

Tasks

+ + + +

Other Methods

+ + + + + +

Extension Methods

+ +
    +
  • + +   connected +

    A boolean indicating whether or not there is a connection with a device.

    +
    + property + +
  • +
+ +
+ + + + + +
+ +

Properties

+ +
+ +

connected

+ + + +
+

A boolean indicating whether or not there is a connection with a device.

+
+ + +
@property (nonatomic, getter=isConnected) BOOL connected
+ + + + + + + + +
+

Discussion

+

A boolean indicating whether or not there is a connection with a device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ + + + + +
+ +

Instance Methods

+ +
+ +

connectToDevice:connectionDelegate:

+ + + +
+

Establishes a connection with a device

+
+ + +
- (void)connectToDevice:(EMDeviceBasicDescription *)device connectionDelegate:(id<EMDeviceDelegate>)connDelegate
+ + + + + + + + +
+

Discussion

+

Establishes a connection with a device

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

deviceType

+ + + +
+

The type of device - this can be set to anything and retreived for printing or examining.

+
+ + +
- (NSString *)deviceType
+ + + + + + + + +
+

Discussion

+

The type of device - this can be set to anything and retreived for printing or examining.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

disconnect

+ + + +
+

disconnects the current device.

+
+ + +
- (void)disconnect
+ + + + + + + + +
+

Discussion

+

disconnects the current device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

fetch:

+ + + +
+

Fetches a resource. Can be retrieved in “lastReadValue”

+
+ + +
- (void)fetch:(EMResourceValue *)value
+ + + + + + + + +
+

Discussion

+

Fetches a resource. Can be retrieved in “lastReadValue”

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

fetchSystemResource:

+ + + +
+

Fetches a system resource. Can be retrieved in “lastReadValue”.

+
+ + +
- (void)fetchSystemResource:(EMResourceValue *)value
+ + + + + + + + +
+

Discussion

+

Fetches a system resource. Can be retrieved in “lastReadValue”.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

isAvailable

+ + + +
+

YES if available on the current device, NO if unavailable.

+
+ + +
- (BOOL)isAvailable
+ + + + + + + + +
+

Discussion

+

YES if available on the current device, NO if unavailable.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

startUpdating

+ + + +
+

Tells the connection to start looking for devices of its type.

+
+ + +
- (void)startUpdating
+ + + + + + + + +
+

Discussion

+

Tells the connection to start looking for devices of its type.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

stopUpdating

+ + + +
+

Tells the connection to stop looking for devices of its type.

+
+ + +
- (void)stopUpdating
+ + + + + + + + +
+

Discussion

+

Tells the connection to stop looking for devices of its type.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

store:

+ + + +
+

writes a value to a device.

+
+ + +
- (void)store:(EMResourceValue *)value
+ + + + + + + + +
+

Discussion

+

writes a value to a device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnection.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnection.html new file mode 100644 index 0000000..2edb0eb --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnection.html @@ -0,0 +1,1105 @@ + + + + + EMConnection Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromNSObject
Conforms toEMDeviceDelegate
Declared inEMConnection.h
EMConnection.m
+ + + + +
+ +

Overview

+

The state of the current connection. Use KVO to receive updates on this property and react to changes.

+
+ + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + +
+ +

Properties

+ +
+ +

connectionAttemptTimeout

+ + + +
+

The timeout interval for a pending connection

+
+ + +
@property (atomic) NSTimeInterval connectionAttemptTimeout
+ + + + + + + + +
+

Discussion

+

The timeout interval for a pending connection

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

connectionClosedBlock

+ + + +
+

This block will be called when an open connection is closed for any reason

+
+ + +
@property (atomic, strong) EMResourceBlock connectionClosedBlock
+ + + + + + + + +
+

Discussion

+

This block will be called when an open connection is closed for any reason

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

connectionDelegate

+ + + +
+

The connection delegate. EMConnectionManager will post connect and disconnect delegate messages to this object if it is set.

+
+ + +
@property (nonatomic, unsafe_unretained) id<EMConnectionDelegate> connectionDelegate
+ + + + + + + + +
+

Discussion

+

The connection delegate. EMConnectionManager will post connect and disconnect delegate messages to this object if it is set.

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

device

+ + + +
+

The EMDeviceBasicDescription used for conenction

+
+ + +
@property (nonatomic, strong) EMDeviceBasicDescription *device
+ + + + + + + + +
+

Discussion

+

The EMDeviceBasicDescription used for conenction

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

schema

+ + + +
+

The schema for connection

+
+ + +
@property (nonatomic, strong) EMSchema *schema
+ + + + + + + + +
+

Discussion

+

The schema for connection

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ + + + + +
+ +

Instance Methods

+ +
+ +

cancelOpen

+ + + +
+

Cancels the attempt to open this EMTargetConnection, posting the open block with a failed status.

+
+ + +
- (void)cancelOpen
+ + + + + + + + +
+

Discussion

+

Cancels the attempt to open this EMTargetConnection, posting the open block with a failed status.

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

closeConnectionWithSuccess:onFail:

+ + + +
+

Closes the connection

+
+ + +
- (void)closeConnectionWithSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock
+ + +
+

Parameters

+ +
+
successBlock
+

A block to call on a successful disconnect

+
+ +
+
failBlock
+

A block to call on a failed disconnect

+
+ +
+ + + + + + + +
+

Discussion

+

Closes the connection

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

initWithDevice:

+ + + +
+

Creates a new EMConnection object. +Actual connection and disconnection to the named target occurs through calls to open and close on this object.

+
+ + +
- (id)initWithDevice:(EMDeviceBasicDescription *)device
+ + +
+

Parameters

+ +
+
device
+

The basic description of a device

+
+ +
+ + + + + + + +
+

Discussion

+

Creates a new EMConnection object. +Actual connection and disconnection to the named target occurs through calls to open and close on this object.

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

initWithDevice:schema:

+ + + +
+

Creates a new EMTargetConnection object. +Actual connection and disconnection to the named target occurs through calls to open and close on this object.

+
+ + +
- (id)initWithDevice:(EMDeviceBasicDescription *)device schema:(EMSchema *)resourceSchema
+ + +
+

Parameters

+ +
+
device
+

the name of the target device, including one of the pre-defined prefixes

+
+ +
+
resourceSchema
+

the schema describing the resources available in this connection

+
+ +
+ + + + + + + +
+

Discussion

+

Creates a new EMTargetConnection object. +Actual connection and disconnection to the named target occurs through calls to open and close on this object.

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

isConnected

+ + + +
+

Returns true if connected and false otherwise.

+
+ + +
- (BOOL)isConnected
+ + + + + + + + +
+

Discussion

+

Returns true if connected and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

openConnectionWithSuccess:onFail:

+ + + +
+

Opens a connection to the @device device property

+
+ + +
- (void)openConnectionWithSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock
+ + +
+

Parameters

+ +
+
successBlock
+

A block to call on a successful connect

+
+ +
+
failBlock
+

A block to call on a failed connect

+
+ +
+ + + + + + + +
+

Discussion

+

Opens a connection to the @device device property

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

readValueNamed:onSuccess:onFail:

+ + + +
+

Reads a value

+
+ + +
- (void)readValueNamed:(NSString *)resourceName onSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock
+ + +
+

Parameters

+ +
+
resourceName
+

The name of the resource to read

+
+ +
+
successBlock
+

A block to call on a successful read

+
+ +
+
failBlock
+

A block to call on a failed read

+
+ +
+ + + + + + + +
+

Discussion

+

Reads a value

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ +

writeResource:onSuccess:onFail:

+ + + +
+

Writes a resource to the device

+
+ + +
- (void)writeResource:(EMResourceValue *)resourceValue onSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock
+ + +
+

Parameters

+ +
+
resourceValue
+

The resource value

+
+ +
+
successBlock
+

A block to call on a successful write

+
+ +
+
failBlock
+

A block to call on a failed write

+
+ +
+ + + + + + + +
+

Discussion

+

Writes a resource to the device

+
+ + + + + + + +
+

Declared In

+ EMConnection.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnectionListManager.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnectionListManager.html new file mode 100644 index 0000000..9351c68 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnectionListManager.html @@ -0,0 +1,1200 @@ + + + + + EMConnectionListManager Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromNSObject
Conforms toEMConnectionTypeScannerDelegate
Declared inEMConnectionListManager.h
EMConnectionListManager.m
+ + + + +
+ +

Overview

+

EMConnectionListManager is a singleton class used for viewing a list of devices available for interaction.

+
+ + + + + +
+ +

Tasks

+ + + +

Other Methods

+ +
    +
  • + +   devices +

    @property devices +A list of devices that has been discovered as available by the connection list manager

    +
    + property + +
  • + +   filterPredicate +

    @property filterPredicate +A filter that allows only devices conforming to the predicate to be visible

    +
    + property + +
  • + +   updating +

    @property updating +A boolean value indicating whether or not the connection list manager is actively updating the devices list

    +
    + property + +
  • + +   updateRate +

    @property updateRate +updateRate determines the scan frequency for discovering devices

    +
    + property + +
  • + +   automaticallyConnectsToLastDevice +

    @param automaticallyConnectsToLastDevice +A boolean value indicating whether or not the connection list manager should automatically connect to the last device it was connected to if it encounters it in a scan.

    +
    + property + +
  • + + + sharedManager +

    Use the +sharedManager to get the singleton, shared instance of EMConnectionListManager

    +
    + + +
  • + + – deviceBasicDescriptionForDeviceNamed: +

    Retrieve a device description for a given unique identifier

    +
    + + +
  • + + – startUpdating +

    Tells the connection list manager to begin actively looking for devices to interact with.

    +
    + + +
  • + + – stopUpdating +

    Tells the connection list manager to stop looking for devices to interact with.

    +
    + + +
  • + + – reset +

    Manually clears out all devices on the connection list manager.

    +
    + + +
  • + + – isBluetoothAvailable +

    Detect if Bluetooth is available

    +
    + + +
  • + + – addConnectionTypeToUpdates: +

    Add your own connection type outside of bluetooth low energy

    +
    + + +
  • + + – removeConnectionToFromUpdates: +

    Remove your own connection type outside of bluetooth low energy

    +
    + + +
  • +
+ + + +

Other Methods

+ + + +
+ + + + + +
+ +

Properties

+ +
+ +

automaticallyConnectsToLastDevice

+ + + +
+

@param automaticallyConnectsToLastDevice +A boolean value indicating whether or not the connection list manager should automatically connect to the last device it was connected to if it encounters it in a scan.

+
+ + +
@property (nonatomic) BOOL automaticallyConnectsToLastDevice
+ + + + + + + + +
+

Discussion

+

@param automaticallyConnectsToLastDevice +A boolean value indicating whether or not the connection list manager should automatically connect to the last device it was connected to if it encounters it in a scan.

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ +

devices

+ + + +
+

@property devices +A list of devices that has been discovered as available by the connection list manager

+
+ + +
@property (nonatomic, strong, readonly) NSArray *devices
+ + + + + + + + +
+

Discussion

+

@property devices +A list of devices that has been discovered as available by the connection list manager

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ +

filterPredicate

+ + + +
+

@property filterPredicate +A filter that allows only devices conforming to the predicate to be visible

+
+ + +
@property (nonatomic, strong) NSPredicate *filterPredicate
+ + + + + + + + +
+

Discussion

+

@property filterPredicate +A filter that allows only devices conforming to the predicate to be visible

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ +

updateRate

+ + + +
+

@property updateRate +updateRate determines the scan frequency for discovering devices

+
+ + +
@property (nonatomic) NSTimeInterval updateRate
+ + + + + + + + +
+

Discussion

+

@property updateRate +updateRate determines the scan frequency for discovering devices

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ +

updating

+ + + +
+

@property updating +A boolean value indicating whether or not the connection list manager is actively updating the devices list

+
+ + +
@property (nonatomic, getter=isUpdating, readonly) BOOL updating
+ + + + + + + + +
+

Discussion

+

@property updating +A boolean value indicating whether or not the connection list manager is actively updating the devices list

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ + + +
+ +

Class Methods

+ +
+ +

sharedManager

+ + + +
+

Use the +sharedManager to get the singleton, shared instance of EMConnectionListManager

+
+ + +
+ (EMConnectionListManager *)sharedManager
+ + + + + + + + +
+

Discussion

+

Use the +sharedManager to get the singleton, shared instance of EMConnectionListManager

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ + + +
+ +

Instance Methods

+ +
+ +

addConnectionTypeToUpdates:

+ + + +
+

Add your own connection type outside of bluetooth low energy

+
+ + +
- (void)addConnectionTypeToUpdates:(id<EMConnectionType>)connectionType
+ + + + + + + + +
+

Discussion

+

Add your own connection type outside of bluetooth low energy

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ +

deviceBasicDescriptionForDeviceNamed:

+ + + +
+

Retrieve a device description for a given unique identifier

+
+ + +
- (EMDeviceBasicDescription *)deviceBasicDescriptionForDeviceNamed:(NSString *)name
+ + +
+

Parameters

+ +
+
name
+

The name of the device

+
+ +
+ + + + + + + +
+

Discussion

+

Retrieve a device description for a given unique identifier

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ +

deviceScanner:didFindDevice:

+ + + +
+

Tells the delegate a device was found.

+
+ + +
- (void)deviceScanner:(id<EMConnectionType>)scanner didFindDevice:(EMDeviceBasicDescription *)device
+ + + + + + + + +
+

Discussion

+

Tells the delegate a device was found.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

deviceScanner:didLoseDevice:

+ + + +
+

Tells the delegate a device was lost.

+
+ + +
- (void)deviceScanner:(id)scanner didLoseDevice:(EMDeviceBasicDescription *)device
+ + + + + + + + +
+

Discussion

+

Tells the delegate a device was lost.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

deviceScanner:didUpdateDevice:

+ + + +
+

Updates the data for a device description

+
+ + +
- (void)deviceScanner:(id)scanner didUpdateDevice:(EMDeviceBasicDescription *)device
+ + + + + + + + +
+

Discussion

+

Updates the data for a device description

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

isBluetoothAvailable

+ + + +
+

Detect if Bluetooth is available

+
+ + +
- (BOOL)isBluetoothAvailable
+ + + + + + + + +
+

Discussion

+

Detect if Bluetooth is available

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ +

removeConnectionToFromUpdates:

+ + + +
+

Remove your own connection type outside of bluetooth low energy

+
+ + +
- (void)removeConnectionToFromUpdates:(id<EMConnectionType>)connectionType
+ + + + + + + + +
+

Discussion

+

Remove your own connection type outside of bluetooth low energy

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ +

reset

+ + + +
+

Manually clears out all devices on the connection list manager.

+
+ + +
- (void)reset
+ + + + + + + + +
+

Discussion

+

Manually clears out all devices on the connection list manager.

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ +

startUpdating

+ + + +
+

Tells the connection list manager to begin actively looking for devices to interact with.

+
+ + +
- (void)startUpdating
+ + + + + + + + +
+

Discussion

+

Tells the connection list manager to begin actively looking for devices to interact with.

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ +

stopUpdating

+ + + +
+

Tells the connection list manager to stop looking for devices to interact with.

+
+ + +
- (void)stopUpdating
+ + + + + + + + +
+

Discussion

+

Tells the connection list manager to stop looking for devices to interact with.

+
+ + + + + + + +
+

Declared In

+ EMConnectionListManager.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnectionManager.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnectionManager.html new file mode 100644 index 0000000..7d585ad --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMConnectionManager.html @@ -0,0 +1,1333 @@ + + + + + EMConnectionManager Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromNSObject
Conforms toEMConnectionDelegate
Declared inEMConnectionManager.h
EMConnectionManager.m
+ + + + +
+ +

Overview

+

EMConnectionManager is a singleton class for managing a connection with a physical or mock device.

+
+ + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + +
+ +

Properties

+ +
+ +

backgroundUpdatesEnabled

+ + + +
+

@property backgroundUpdatesEnabled +@description If you set this flag to “YES”, the connection manager has the ability to persist while running in the background. By default, the connection manager severs connections when entering the background.

+
+ + +
@property (nonatomic) BOOL backgroundUpdatesEnabled
+ + + + + + + + +
+

Discussion

+

@property backgroundUpdatesEnabled +@description If you set this flag to “YES”, the connection manager has the ability to persist while running in the background. By default, the connection manager severs connections when entering the background.

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ + + +
+ +

Class Methods

+ +
+ +

sharedManager

+ + + +
+

Use the +sharedManager class method to access the application-wide singleton instance of EMConnectionManager. +Note: Accessing the connection manager in any way other is not recommended.

+
+ + +
+ (EMConnectionManager *)sharedManager
+ + + + + + + + +
+

Discussion

+

Use the +sharedManager class method to access the application-wide singleton instance of EMConnectionManager. +Note: Accessing the connection manager in any way other is not recommended.

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ + + +
+ +

Instance Methods

+ +
+ +

addSchemaSearchForFilesInDirectory:

+ + + +
+

Tells the connection manager where it should look for schemas other than the NSBundle’s mainBundle

+
+ + +
- (void)addSchemaSearchForFilesInDirectory:(NSString *)path
+ + +
+

Parameters

+ +
+
path
+

The path for the directory in which to search

+
+ +
+ + + + + + + +
+

Discussion

+

Tells the connection manager where it should look for schemas other than the NSBundle’s mainBundle

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

connectDevice:onSuccess:onFail:

+ + + +
+

Tells the connection manager to connect to a specific device.

+
+ + +
- (void)connectDevice:(EMDeviceBasicDescription *)device onSuccess:(void ( ^ ) ( void ))successBlock onFail:(void ( ^ ) ( NSError *error ))failBlock
+ + +
+

Parameters

+ +
+
device
+

An instance of EMDeviceBasicDescription the connection manager should connect to

+
+ +
+
successBlock
+

The block to run after a successful connection

+
+ +
+
failBlock
+

The block to run if the connectino fails +@description The implementation of this method calls connectDevice:timeoutInterval:onSuccess:onFail: with a default time interval of 10 seconds

+
+ +
+ + + + + + + +
+

Discussion

+

Tells the connection manager to connect to a specific device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

connectDevice:timeoutInterval:onSuccess:onFail:

+ + + +
+

Tells the connection manager to connect to a specific device.

+
+ + +
- (void)connectDevice:(EMDeviceBasicDescription *)device timeoutInterval:(NSTimeInterval)timeout onSuccess:(void ( ^ ) ( void ))successBlock onFail:(void ( ^ ) ( NSError *error ))failBlock
+ + +
+

Parameters

+ +
+
device
+

An instance of EMDeviceBasicDescription the connection manager should connect to

+
+ +
+
timeout
+

The time the connection manager should allow for a successful connection. After the specified time interval passes, the fail block will be called.

+
+ +
+
successBlock
+

The block to run after a successful connection

+
+ +
+
failBlock
+

The block to run if the connection fails +@description The implementation of this method calls connectDevice:timeoutInterval:onSuccess:onFail: with a default time interval of 10 seconds

+
+ +
+ + + + + + + +
+

Discussion

+

Tells the connection manager to connect to a specific device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

connectedDevice

+ + + +
+

Returns an array of EMDeviceBasicDescription’s for the device that is actively connected

+
+ + +
- (EMDeviceBasicDescription *)connectedDevice
+ + + + + + + + +
+

Discussion

+

Returns an array of EMDeviceBasicDescription’s for the device that is actively connected

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

disconnectWithSuccess:onFail:

+ + + +
+

Tells the connection manager to disconnect from a specific device

+
+ + +
- (void)disconnectWithSuccess:(void ( ^ ) ( void ))successBlock onFail:(void ( ^ ) ( NSError *error ))failBlock
+ + +
+

Parameters

+ +
+
successBlock
+

The block to run after a successful disconnection

+
+ +
+
failBlock
+

The block to run if the disconnection fails.

+
+ +
+ + + + + + + +
+

Discussion

+

Tells the connection manager to disconnect from a specific device

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

embeddedSystemProtocolLevel

+ + + +
+

Gets the embedded system protocol level from the schema used to connect to the device +@description This call does not send a message down to the board - the protocol level is pulled directly from the schema that was used to connect to the device.

+
+ + +
- (NSNumber *)embeddedSystemProtocolLevel
+ + + + + + + + +
+

Discussion

+

Gets the embedded system protocol level from the schema used to connect to the device +@description This call does not send a message down to the board - the protocol level is pulled directly from the schema that was used to connect to the device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

forceConnectionWithDefaultSchema:

+ + + +
+

Forces the connection manager to connect to a device with the default schema

+
+ + +
- (void)forceConnectionWithDefaultSchema:(EMDeviceBasicDescription *)device
+ + +
+

Parameters

+ +
+
device
+

The device for the forced connection +@description Use this method with extreme caution. Many undefined behaviors can come from using this method with a schema that isn’t an exact match for the specified device. EMConnectionManager uses this method internally. It is very rare that you will need to call this method directly.

+
+ +
+ + + + + + + +
+

Discussion

+

Forces the connection manager to connect to a device with the default schema

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

readResource:onSuccess:onFail:

+ + + +
+

Reads a resource from a connected device

+
+ + +
- (void)readResource:(NSString *)resourceName onSuccess:(void ( ^ ) ( id readValue ))successBlock onFail:(void ( ^ ) ( NSError *error ))failBlock
+ + +
+

Parameters

+ +
+
resourceName
+

The name of the resource to read. This is the name of the resource in the device’s schema.

+
+ +
+
successBlock
+

The block to call when a read occurs successfully. Connection manager will call this block with the value read.

+
+ +
+
failBlock
+

The block to call when a read fails.

+
+ +
+ + + + + + + +
+

Discussion

+

Reads a resource from a connected device

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

removeSchemaSearchForFilesInDirectory:

+ + + +
+

Tells the connection manager to no longer look in the specified path for schemas

+
+ + +
- (void)removeSchemaSearchForFilesInDirectory:(NSString *)path
+ + +
+

Parameters

+ +
+
path
+

The path to no longer search +@description Note: This method will never ignore the current bundle’s mainBundle

+
+ +
+ + + + + + + +
+

Discussion

+

Tells the connection manager to no longer look in the specified path for schemas

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

schemaFileNameForHashString:

+ + + +
+

Gives the schema name in the application bundle for a given hash string

+
+ + +
- (NSString *)schemaFileNameForHashString:(NSString *)hashString
+ + +
+

Parameters

+ +
+
hashString
+

A full or partial schema hash string +@description This method takes either a full hash or partial hash. If any schema begins with ‘hash string’, the file name in the bundle is returned. Returns nil if no matching schema was found in the bundle. +If one or more schemas share ‘hashString’ at the beginning of their hash, the first path will be returned.

+
+ +
+ + + + + + + +
+

Discussion

+

Gives the schema name in the application bundle for a given hash string

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

schemaForConnectedDevice

+ + + +
+

Gets the schema for the connected device. +@description Returns nil if no device is connected.

+
+ + +
- (EMSchema *)schemaForConnectedDevice
+ + + + + + + + +
+

Discussion

+

Gets the schema for the connected device. +@description Returns nil if no device is connected.

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

schemaHashForConnectedDevice

+ + + +
+

Returns a version of the the schema hash from a connected device’s firmware as it appears on em-hub

+
+ + +
- (NSString *)schemaHashForConnectedDevice
+ + + + + + + + +
+

Discussion

+

Returns a version of the the schema hash from a connected device’s firmware as it appears on em-hub

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

updateInternalSchemaCache

+ + + +
+

Tells EMConnectionManager to update its internal cache of schemas used for connection. +@description EMConnectionManager uses this method internally. It is very rare taht you will need to call this method directly.

+
+ + +
- (void)updateInternalSchemaCache
+ + + + + + + + +
+

Discussion

+

Tells EMConnectionManager to update its internal cache of schemas used for connection. +@description EMConnectionManager uses this method internally. It is very rare taht you will need to call this method directly.

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ +

writeValue:toResource:onSuccess:onFail:

+ + + +
+

Writes a value to a resource on a connected device

+
+ + +
- (void)writeValue:(id)resourceValue toResource:(NSString *)resource onSuccess:(void ( ^ ) ( void ))successBlock onFail:(void ( ^ ) ( NSError *error ))failBlock
+ + +
+

Parameters

+ +
+
resourceValue
+

The value to write to the resource. This should be an instance of NSString, NSData, NSArray, NSNumber, or NSDictionary

+
+ +
+
resource
+

The name of the resource for writing. This is the name of the resource in the schema.

+
+ +
+
successBlock
+

The block to call when the write occurs successfully.

+
+ +
+
failBlock
+

The block to call when the write fails.

+
+ +
+ + + + + + + +
+

Discussion

+

Writes a value to a resource on a connected device

+
+ + + + + + + +
+

Declared In

+ EMConnectionManager.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMDeviceBasicDescription.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMDeviceBasicDescription.html new file mode 100644 index 0000000..ae519b0 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMDeviceBasicDescription.html @@ -0,0 +1,753 @@ + + + + + EMDeviceBasicDescription Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + +
Inherits fromNSObject
Declared inEMDeviceBasicDescription.h
EMDeviceBasicDescription.m
+ + + + +
+ +

Overview

+

EMDeviceBasicDescription is a class used to describe basic device characteristics throughout the entire framework. +All devices, regardless of connection type, will have these properties.

+ +

All classes implementing the EMConnectionType protocol will receive and deliver device information in the form of an EMDeviceBasicDescription.

+
+ + + + + +
+ +

Tasks

+ + + + + +
    +
  • + +   name +

    The name of the device used thoughout the framework. +Like the unique_identifier, this property needs to be unique.

    +
    + property + +
  • + +   connectionType +

    A concrete EMConnectionType instance that will be used to send messages to the device.

    +
    + property + +
  • + +   signalStrength +

    A value between -100 and 0 used to describe signal strength.

    +
    + property + +
  • + +   signalStrengthFilter +

    The signal strength filter for smoothing

    +
    + property + +
  • + +   advertiseData +

    Data that was discovered along with the device. +Ex: When dealing with bluetooth, this is the advertising packet data

    +
    + property + +
  • + +   advertiseObject +

    An object taken from the advertise data based on the advertise resource in the device’s schema +Possible classes: NSString, NSNumber, NSDictionary, NSArray, NSData

    +
    + property + +
  • + +   shortSchemaHash +

    The first six characters of the device’s schema

    +
    + property + +
  • + +   schemaFilePath +

    The name of the schema file in your bundle that relates to this device. +NOTE: Many devices do not broadcast this information. In this case, this property will not be set

    +
    + property + +
  • +
+ +
+ + + + + +
+ +

Properties

+ +
+ +

advertiseData

+ + + +
+

Data that was discovered along with the device. +Ex: When dealing with bluetooth, this is the advertising packet data

+
+ + +
@property (nonatomic, strong) NSData *advertiseData
+ + + + + + + + +
+

Discussion

+

Data that was discovered along with the device. +Ex: When dealing with bluetooth, this is the advertising packet data

+
+ + + + + + + +
+

Declared In

+ EMDeviceBasicDescription.h
+
+ + +
+ +
+ +

advertiseObject

+ + + +
+

An object taken from the advertise data based on the advertise resource in the device’s schema +Possible classes: NSString, NSNumber, NSDictionary, NSArray, NSData

+
+ + +
@property (nonatomic, strong) id advertiseObject
+ + + + + + + + +
+

Discussion

+

An object taken from the advertise data based on the advertise resource in the device’s schema +Possible classes: NSString, NSNumber, NSDictionary, NSArray, NSData

+
+ + + + + + + +
+

Declared In

+ EMDeviceBasicDescription.h
+
+ + +
+ +
+ +

connectionType

+ + + +
+

A concrete EMConnectionType instance that will be used to send messages to the device.

+
+ + +
@property (nonatomic, strong) id<EMConnectionType> connectionType
+ + + + + + + + +
+

Discussion

+

A concrete EMConnectionType instance that will be used to send messages to the device.

+
+ + + + + + + +
+

Declared In

+ EMDeviceBasicDescription.h
+
+ + +
+ +
+ +

name

+ + + +
+

The name of the device used thoughout the framework. +Like the unique_identifier, this property needs to be unique.

+
+ + +
@property (nonatomic, strong) NSString *name
+ + + + + + + + +
+

Discussion

+

The name of the device used thoughout the framework. +Like the unique_identifier, this property needs to be unique.

+
+ + + + + + + +
+

Declared In

+ EMDeviceBasicDescription.h
+
+ + +
+ +
+ +

schemaFilePath

+ + + +
+

The name of the schema file in your bundle that relates to this device. +NOTE: Many devices do not broadcast this information. In this case, this property will not be set

+
+ + +
@property (nonatomic, strong) NSString *schemaFilePath
+ + + + + + + + +
+

Discussion

+

The name of the schema file in your bundle that relates to this device. +NOTE: Many devices do not broadcast this information. In this case, this property will not be set

+
+ + + + + + + +
+

Declared In

+ EMDeviceBasicDescription.h
+
+ + +
+ +
+ +

shortSchemaHash

+ + + +
+

The first six characters of the device’s schema

+
+ + +
@property (nonatomic, strong) NSString *shortSchemaHash
+ + + + + + + + +
+

Discussion

+

The first six characters of the device’s schema

+
+ + + + + + + +
+

Declared In

+ EMDeviceBasicDescription.h
+
+ + +
+ +
+ +

signalStrength

+ + + +
+

A value between -100 and 0 used to describe signal strength.

+
+ + +
@property (nonatomic) float signalStrength
+ + + + + + + + +
+

Discussion

+

A value between -100 and 0 used to describe signal strength.

+
+ + + + + + + +
+

Declared In

+ EMDeviceBasicDescription.h
+
+ + +
+ +
+ +

signalStrengthFilter

+ + + +
+

The signal strength filter for smoothing

+
+ + +
@property (nonatomic, strong) id<EMSignalStrengthFilter> signalStrengthFilter
+ + + + + + + + +
+

Discussion

+

The signal strength filter for smoothing

+
+ + + + + + + +
+

Declared In

+ EMDeviceBasicDescription.h
+
+ + +
+ +
+ + + + + + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMResourceValue.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMResourceValue.html new file mode 100644 index 0000000..48bf736 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMResourceValue.html @@ -0,0 +1,1963 @@ + + + + + EMResourceValue Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromNSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.h
EMResourceValue.m
+ + + + +
+ +

Overview

+

A container for different types of resource values. +Instances of this class are used to hold values for resources whose types is +either Void, Int, Enum, Num, String, Struct, Array, or File.

+ +

See also:

+ + + + +

Written by Bob Frankel and Carolyn Vaughan

+
+ + + + + +
+ +

Tasks

+ + + +

Other Methods

+ + + + + +

Other Methods

+ + + +
+ + + + + +
+ +

Properties

+ +
+ +

name

+ + + +
+

The name of the resource.

+
+ + +
@property (readonly) NSString *name
+ + + + + + + + +
+

Discussion

+

The name of the resource.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

resourceSchema

+ + + +
+

The resource schema associated with the resource.

+
+ + +
@property (readonly) EMSchema *resourceSchema
+ + + + + + + + +
+

Discussion

+

The resource schema associated with the resource.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

type

+ + + +
+

The type of the resource.

+
+ + +
@property (readonly) NSString *type
+ + + + + + + + +
+

Discussion

+

The type of the resource.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + + +
+ +

Class Methods

+ +
+ +

resourceWithName:ofType:fromSchema:

+ + + +
+

Create a EMResourceValue. This method is used internally by the framework.

+
+ + +
+ (EMResourceValue *)resourceWithName:(NSString *)name ofType:(NSString *)type fromSchema:(EMSchema *)resourceSchema
+ + +
+

Parameters

+ +
+
name
+

the name given to the newly-created value

+
+ +
+
type
+

the type of the newly-created value

+
+ +
+
resourceSchema
+

an EMSchema instance

+
+ +
+ + + +
+

Return Value

+

a new EMResourceValue instance

+
+ + + + + +
+

Discussion

+

Create a EMResourceValue. This method is used internally by the framework.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + + +
+ +

Instance Methods

+ +
+ +

copyFromResource:

+ + + + +
- (void)copyFromResource:(EMResourceValue *)source
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

doubleValue

+ + + + +
- (double)doubleValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

enumValues

+ + + + +
- (NSArray *)enumValues
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fieldNames

+ + + + +
- (NSArray *)fieldNames
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileEof

+ + + + +
- (BOOL)fileEof
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileFetch

+ + + + +
- (void)fileFetch
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileStore

+ + + + +
- (void)fileStore
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

getDataOfSize:fromBuffer:

+ + + + +
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

index:

+ + + + +
- (EMResourceValue *)index:(int)index
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

initWithName:type:schema:

+ + + + +
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isArray

+ + + +
+

Returns true if the type of this value is an Array, and false otherwise.

+
+ + +
- (BOOL)isArray
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is an Array, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isEnum

+ + + +
+

Returns true if the type of this value is an Enum, and false otherwise.

+
+ + +
- (BOOL)isEnum
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is an Enum, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isFile

+ + + +
+

Returns true if the type of this value is a File, and false otherwise.

+
+ + +
- (BOOL)isFile
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is a File, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isInt

+ + + +
+

Returns true if the type of this value is an Int, and false otherwise.

+
+ + +
- (BOOL)isInt
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is an Int, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isNum

+ + + +
+

Returns true if the type of this value is a Num, and false otherwise.

+
+ + +
- (BOOL)isNum
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is a Num, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isScalar

+ + + +
+

Returns true if the type of this value is scalar (Num, Enum, Int, String), and false otherwise.

+
+ + +
- (BOOL)isScalar
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is scalar (Num, Enum, Int, String), and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isString

+ + + +
+

Returns true if the type of this value is a String, and false otherwise.

+
+ + +
- (BOOL)isString
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is a String, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isStruct

+ + + +
+

Return true if the type of this value is a Struct, and false otherwise.

+
+ + +
- (BOOL)isStruct
+ + + + + + + + +
+

Discussion

+

Return true if the type of this value is a Struct, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isVoid

+ + + +
+

Return true if the type of this value is a Void, and false otherwise.

+
+ + +
- (BOOL)isVoid
+ + + + + + + + +
+

Discussion

+

Return true if the type of this value is a Void, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

length

+ + + + +
- (long)length
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

longValue

+ + + + +
- (long long)longValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

max

+ + + + +
- (double)max
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

min

+ + + + +
- (double)min
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

putData:

+ + + + +
- (void)putData:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

reset

+ + + + +
- (void)reset
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

select:

+ + + + +
- (EMResourceValue *)select:(NSString *)fieldName
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setDoubleValue:

+ + + + +
- (void)setDoubleValue:(double)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setLongValue:

+ + + + +
- (void)setLongValue:(long long)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setStringValue:

+ + + + +
- (void)setStringValue:(NSString *)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

step

+ + + + +
- (double)step
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

stringValue

+ + + + +
- (NSString *)stringValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMSchema.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMSchema.html new file mode 100644 index 0000000..f6f0914 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMSchema.html @@ -0,0 +1,2251 @@ + + + + + EMSchema Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + +
Inherits fromNSObject
Declared inEMSchema.h
EMSchema.m
+ + + + +
+ +

Overview

+

A set of meta-data describing a set of resources. +Written by Bob Frankel and Carolyn Vaughan

+
+ + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + +
+ +

Class Methods

+ +
+ +

schemaFromFile:

+ + + +
+

Creates a EMResourceSchema instance from the contents of a file.

+
+ + +
+ (EMSchema *)schemaFromFile:(NSString *)fileName
+ + +
+

Parameters

+ +
+
fileName
+

a file containing JSON content

+
+ +
+ + + +
+

Return Value

+

a newly created EMResourceSchema instance

+
+ + + + + +
+

Discussion

+

Creates a EMResourceSchema instance from the contents of a file.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ + + +
+ +

Instance Methods

+ +
+ +

UUID

+ + + +
+

Returns the UUID associated with this schema.

+
+ + +
- (NSString *)UUID
+ + + + + + + + +
+

Discussion

+

Returns the UUID associated with this schema.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

accessForResource:

+ + + +
+

Get the read/write/indicator access capabilities of a named resource

+
+ + +
- (EMResourceAccessType)accessForResource:(NSString *)resourceName
+ + +
+

Parameters

+ +
+
resourceName
+

a valid resource name in this schema

+
+ +
+ + + +
+

Return Value

+

an NSString containing the characters ‘r’, ‘w’, and ‘i’ as appropriate

+
+ + + + + +
+

Discussion

+

Get the read/write/indicator access capabilities of a named resource

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the resource name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

alignmentForStandardType:

+ + + +
+

Get the alignment of a standard scalar type

+
+ + +
- (int)alignmentForStandardType:(NSString *)type
+ + +
+

Parameters

+ +
+
type
+

a scalar type code

+
+ +
+ + + +
+

Return Value

+

the alignment in bytes of this standard type

+
+ + + + + +
+

Discussion

+

Get the alignment of a standard scalar type

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the type code is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

applicationResources

+ + + +
+

Returns a sorted NSArray containing all application resource names in this schema

+
+ + +
- (NSArray *)applicationResources
+ + + + + + + + +
+

Discussion

+

Returns a sorted NSArray containing all application resource names in this schema

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

broadcastResourceName

+ + + +
+

Returns the name of the resource that is being broadcast in the advertising packets. Returns nil if none.

+
+ + +
- (NSString *)broadcastResourceName
+ + + + + + + + +
+

Discussion

+

Returns the name of the resource that is being broadcast in the advertising packets. Returns nil if none.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

buildDate

+ + + +
+

Returns the build number associated with this schema as an array of numbers.

+
+ + +
- (NSArray *)buildDate
+ + + + + + + + +
+

Discussion

+

Returns the build number associated with this schema as an array of numbers.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

byteAlignmentForResource:

+ + + +
+

Get the alignment of a named resource

+
+ + +
- (int)byteAlignmentForResource:(NSString *)resourceName
+ + +
+

Parameters

+ +
+
resourceName
+

a named resource in this schema

+
+ +
+ + + +
+

Return Value

+

the alignment in bytes of this resource

+
+ + + + + +
+

Discussion

+

Get the alignment of a named resource

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the resource name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

enumValuesForType:

+ + + +
+

Get the values associated with an enum type.

+
+ + +
- (NSDictionary *)enumValuesForType:(NSString *)type
+ + +
+

Parameters

+ +
+
type
+

a valid enum type name in this schema

+
+ +
+ + + +
+

Return Value

+

a NSDictionary containing enum value names and their corresponding ordinal

+
+ + + + + +
+

Discussion

+

Get the values associated with an enum type.

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the enum type name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

fieldNamesForType:

+ + + +
+

Get the names of the fields associated with a struct type.

+
+ + +
- (NSArray *)fieldNamesForType:(NSString *)type
+ + +
+

Parameters

+ +
+
type
+

a valid struct type name in this schema

+
+ +
+ + + +
+

Return Value

+

a NSArray containing field names

+
+ + + + + +
+

Discussion

+

Get the names of the fields associated with a struct type.

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the struct type name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

fieldsForType:

+ + + +
+

Get the fields associated with a struct type.

+
+ + +
- (NSDictionary *)fieldsForType:(NSString *)type
+ + +
+

Parameters

+ +
+
type
+

a valid struct type name in this schema

+
+ +
+ + + +
+

Return Value

+

a NSDictionary containing field names and their corresponding type code

+
+ + + + + +
+

Discussion

+

Get the fields associated with a struct type.

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the struct type name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

idForResource:

+ + + +
+

Get the unique id associated with a named resource

+
+ + +
- (int)idForResource:(NSString *)resourceName
+ + +
+

Parameters

+ +
+
resourceName
+

a named resource in this schema

+
+ +
+ + + +
+

Return Value

+

the corresponding resource id

+
+ + + + + +
+

Discussion

+

Get the unique id associated with a named resource

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the resource name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

maxResourceSize

+ + + +
+

Returns the maximum size in bytes amongst all resource types in this schema.

+
+ + +
- (int)maxResourceSize
+ + + + + + + + +
+

Discussion

+

Returns the maximum size in bytes amongst all resource types in this schema.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

name

+ + + +
+

Returns the fully-qualified name of this schema.

+
+ + +
- (NSString *)name
+ + + + + + + + +
+

Discussion

+

Returns the fully-qualified name of this schema.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

nameForResourceWithID:

+ + + +
+

Get the resource name associated with this resource id

+
+ + +
- (NSString *)nameForResourceWithID:(NSInteger)resourceId
+ + +
+

Parameters

+ +
+
resourceId
+

a resource id

+
+ +
+ + + +
+

Return Value

+

the corresponding resource name

+
+ + + + + +
+

Discussion

+

Get the resource name associated with this resource id

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the resource id is invalid

+
+ +
+ + + +
+

See Also

+ +
+ + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

newResourceValueForResourceNamed:

+ + + +
+

Create a new ResourceValue instance for a named resource.

+
+ + +
- (EMResourceValue *)newResourceValueForResourceNamed:(NSString *)resourceName
+ + +
+

Parameters

+ +
+
resourceName
+

a named resource in this schema

+
+ +
+ + + +
+

Return Value

+

a newly created EMResourceValue to a value for this resource

+
+ + + + + +
+

Discussion

+

Create a new ResourceValue instance for a named resource.

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the resource name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

numberParametersForType:

+ + + +
+

Get the parameters associated with a number type.

+
+ + +
- (NSArray *)numberParametersForType:(NSString *)type
+ + +
+

Parameters

+ +
+
type
+

a valid number type name in this schema

+
+ +
+ + + +
+

Return Value

+

a four-element NSArray holding the min, max, step, and prec parameters of this type

+
+ + + + + +
+

Discussion

+

Get the parameters associated with a number type.

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the number type name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

numericRepresentationForType:

+ + + +
+

Get the representation type associated with a number type.

+
+ + +
- (NSString *)numericRepresentationForType:(NSString *)type
+ + +
+

Parameters

+ +
+
type
+

a valid number type name in this schema

+
+ +
+ + + +
+

Return Value

+

an integral representation type

+
+ + + + + +
+

Discussion

+

Get the representation type associated with a number type.

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the number type name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

numericalUUID

+ + + +
+

Returns the UUID associated with this schema as an array of numbers.

+
+ + +
- (NSArray *)numericalUUID
+ + + + + + + + +
+

Discussion

+

Returns the UUID associated with this schema as an array of numbers.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

owner

+ + + +
+

Returns the owner of the schema definition this schema was created from.

+
+ + +
- (NSString *)owner
+ + + + + + + + +
+

Discussion

+

Returns the owner of the schema definition this schema was created from.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

protocolLevel

+ + + +
+

Returns the protocol level of this schema

+
+ + +
- (int)protocolLevel
+ + + + + + + + +
+

Discussion

+

Returns the protocol level of this schema

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

resources

+ + + +
+

Returns an NSDictionary containing all resource names in this schema and their corresponding type code.

+
+ + +
- (NSDictionary *)resources
+ + + + + + + + +
+

Discussion

+

Returns an NSDictionary containing all resource names in this schema and their corresponding type code.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

schemaDescription

+ + + +
+

Returns the description associated with this schema.

+
+ + +
- (NSString *)schemaDescription
+ + + + + + + + +
+

Discussion

+

Returns the description associated with this schema.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

schemaHash

+ + + +
+

Returns the schema hash associated with this schema as an array of numbers.

+
+ + +
- (NSArray *)schemaHash
+ + + + + + + + +
+

Discussion

+

Returns the schema hash associated with this schema as an array of numbers.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

sizeForResourceNamed:

+ + + +
+

Get the size of a named resource

+
+ + +
- (int)sizeForResourceNamed:(NSString *)resourceName
+ + +
+

Parameters

+ +
+
resourceName
+

a named resource in this schema

+
+ +
+ + + +
+

Return Value

+

the size in bytes of this resource

+
+ + + + + +
+

Discussion

+

Get the size of a named resource

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the resource name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

sizeForStandardType:

+ + + +
+

Get the size of a standard scalar type

+
+ + +
- (int)sizeForStandardType:(NSString *)type
+ + +
+

Parameters

+ +
+
type
+

a scalar type code

+
+ +
+ + + +
+

Return Value

+

the size in bytes of this standard type

+
+ + + + + +
+

Discussion

+

Get the size of a standard scalar type

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the type code is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

stringLengthForType:

+ + + +
+

Get the length of this string type.

+
+ + +
- (int)stringLengthForType:(NSString *)type
+ + +
+

Parameters

+ +
+
type
+

a valid string type name in this schema

+
+ +
+ + + +
+

Return Value

+

the length of this string type

+
+ + + + + +
+

Discussion

+

Get the length of this string type.

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the string type name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

systemResources

+ + + +
+

Returns a sorted NSArray containing all system resource names in this schema

+
+ + +
- (NSArray *)systemResources
+ + + + + + + + +
+

Discussion

+

Returns a sorted NSArray containing all system resource names in this schema

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

typeOfResourceNamed:

+ + + +
+

Get the type of a named resource

+
+ + +
- (NSString *)typeOfResourceNamed:(NSString *)resourceName
+ + +
+

Parameters

+ +
+
resourceName
+

the name of a resource in this schema

+
+ +
+ + + +
+

Return Value

+

the type code associated with this resource

+
+ + + + + +
+

Discussion

+

Get the type of a named resource

+
+ + + +
+

Exceptions

+ +
+
UsageError
+

the resource name is invalid

+
+ +
+ + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ +

version

+ + + +
+

Returns the version of the schema definition this schema was created from.

+
+ + +
- (NSString *)version
+ + + + + + + + +
+

Discussion

+

Returns the version of the schema definition this schema was created from.

+
+ + + + + + + +
+

Declared In

+ EMSchema.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMUIKit.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMUIKit.html new file mode 100644 index 0000000..cf63910 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EMUIKit.html @@ -0,0 +1,299 @@ + + + + + EMUIKit Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + +
Inherits fromNSObject
Declared inEMUIKit.h
+ + + + + + + + + + + + + + + + + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/EnumValue.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EnumValue.html new file mode 100644 index 0000000..d89f813 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/EnumValue.html @@ -0,0 +1,1231 @@ + + + + + EnumValue Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
+ + + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

copyFromResource:

+ + + + +
- (void)copyFromResource:(EMResourceValue *)source
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

doubleValue

+ + + + +
- (double)doubleValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

enumValues

+ + + + +
- (NSArray *)enumValues
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fieldNames

+ + + + +
- (NSArray *)fieldNames
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileEof

+ + + + +
- (BOOL)fileEof
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileFetch

+ + + + +
- (void)fileFetch
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileStore

+ + + + +
- (void)fileStore
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

getDataOfSize:fromBuffer:

+ + + + +
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

index:

+ + + + +
- (EMResourceValue *)index:(int)index
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

initWithName:type:schema:

+ + + + +
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

length

+ + + + +
- (long)length
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

longValue

+ + + + +
- (long long)longValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

max

+ + + + +
- (double)max
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

min

+ + + + +
- (double)min
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

putData:

+ + + + +
- (void)putData:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

reset

+ + + + +
- (void)reset
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

select:

+ + + + +
- (EMResourceValue *)select:(NSString *)fieldName
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setDoubleValue:

+ + + + +
- (void)setDoubleValue:(double)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setLongValue:

+ + + + +
- (void)setLongValue:(long long)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setStringValue:

+ + + + +
- (void)setStringValue:(NSString *)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

step

+ + + + +
- (double)step
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

stringValue

+ + + + +
- (NSString *)stringValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/FileValue.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/FileValue.html new file mode 100644 index 0000000..9867a75 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/FileValue.html @@ -0,0 +1,1231 @@ + + + + + FileValue Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
+ + + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

copyFromResource:

+ + + + +
- (void)copyFromResource:(EMResourceValue *)source
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

doubleValue

+ + + + +
- (double)doubleValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

enumValues

+ + + + +
- (NSArray *)enumValues
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fieldNames

+ + + + +
- (NSArray *)fieldNames
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileEof

+ + + + +
- (BOOL)fileEof
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileFetch

+ + + + +
- (void)fileFetch
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileStore

+ + + + +
- (void)fileStore
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

getDataOfSize:fromBuffer:

+ + + + +
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

index:

+ + + + +
- (EMResourceValue *)index:(int)index
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

initWithName:type:schema:

+ + + + +
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

length

+ + + + +
- (long)length
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

longValue

+ + + + +
- (long long)longValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

max

+ + + + +
- (double)max
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

min

+ + + + +
- (double)min
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

putData:

+ + + + +
- (void)putData:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

reset

+ + + + +
- (void)reset
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

select:

+ + + + +
- (EMResourceValue *)select:(NSString *)fieldName
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setDoubleValue:

+ + + + +
- (void)setDoubleValue:(double)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setLongValue:

+ + + + +
- (void)setLongValue:(long long)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setStringValue:

+ + + + +
- (void)setStringValue:(NSString *)filePath
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

step

+ + + + +
- (double)step
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

stringValue

+ + + + +
- (NSString *)stringValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/IntValue.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/IntValue.html new file mode 100644 index 0000000..f14140b --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/IntValue.html @@ -0,0 +1,1231 @@ + + + + + IntValue Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
+ + + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

copyFromResource:

+ + + + +
- (void)copyFromResource:(EMResourceValue *)source
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

doubleValue

+ + + + +
- (double)doubleValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

enumValues

+ + + + +
- (NSArray *)enumValues
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fieldNames

+ + + + +
- (NSArray *)fieldNames
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileEof

+ + + + +
- (BOOL)fileEof
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileFetch

+ + + + +
- (void)fileFetch
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileStore

+ + + + +
- (void)fileStore
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

getDataOfSize:fromBuffer:

+ + + + +
- (void)getDataOfSize:(int)dataSize fromBuffer:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

index:

+ + + + +
- (EMResourceValue *)index:(int)index
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

initWithName:type:schema:

+ + + + +
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

length

+ + + + +
- (long)length
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

longValue

+ + + + +
- (long long)longValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

max

+ + + + +
- (double)max
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

min

+ + + + +
- (double)min
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

putData:

+ + + + +
- (void)putData:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

reset

+ + + + +
- (void)reset
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

select:

+ + + + +
- (EMResourceValue *)select:(NSString *)fieldName
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setDoubleValue:

+ + + + +
- (void)setDoubleValue:(double)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setLongValue:

+ + + + +
- (void)setLongValue:(long long)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setStringValue:

+ + + + +
- (void)setStringValue:(NSString *)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

step

+ + + + +
- (double)step
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

stringValue

+ + + + +
- (NSString *)stringValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/NumberValue.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/NumberValue.html new file mode 100644 index 0000000..d0bdc5a --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/NumberValue.html @@ -0,0 +1,1231 @@ + + + + + NumberValue Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
+ + + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

copyFromResource:

+ + + + +
- (void)copyFromResource:(EMResourceValue *)source
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

doubleValue

+ + + + +
- (double)doubleValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

enumValues

+ + + + +
- (NSArray *)enumValues
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fieldNames

+ + + + +
- (NSArray *)fieldNames
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileEof

+ + + + +
- (BOOL)fileEof
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileFetch

+ + + + +
- (void)fileFetch
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileStore

+ + + + +
- (void)fileStore
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

getDataOfSize:fromBuffer:

+ + + + +
- (void)getDataOfSize:(int)dataSize fromBuffer:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

index:

+ + + + +
- (EMResourceValue *)index:(int)index
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

initWithName:type:schema:

+ + + + +
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

length

+ + + + +
- (long)length
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

longValue

+ + + + +
- (long long)longValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

max

+ + + + +
- (double)max
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

min

+ + + + +
- (double)min
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

putData:

+ + + + +
- (void)putData:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

reset

+ + + + +
- (void)reset
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

select:

+ + + + +
- (EMResourceValue *)select:(NSString *)fieldName
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setDoubleValue:

+ + + + +
- (void)setDoubleValue:(double)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setLongValue:

+ + + + +
- (void)setLongValue:(long long)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setStringValue:

+ + + + +
- (void)setStringValue:(NSString *)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

step

+ + + + +
- (double)step
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

stringValue

+ + + + +
- (NSString *)stringValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/StringValue.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/StringValue.html new file mode 100644 index 0000000..3325a2b --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/StringValue.html @@ -0,0 +1,1231 @@ + + + + + StringValue Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
+ + + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

copyFromResource:

+ + + + +
- (void)copyFromResource:(EMResourceValue *)source
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

doubleValue

+ + + + +
- (double)doubleValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

enumValues

+ + + + +
- (NSArray *)enumValues
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fieldNames

+ + + + +
- (NSArray *)fieldNames
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileEof

+ + + + +
- (BOOL)fileEof
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileFetch

+ + + + +
- (void)fileFetch
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileStore

+ + + + +
- (void)fileStore
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

getDataOfSize:fromBuffer:

+ + + + +
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

index:

+ + + + +
- (EMResourceValue *)index:(int)index
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

initWithName:type:schema:

+ + + + +
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

length

+ + + + +
- (long)length
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

longValue

+ + + + +
- (long long)longValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

max

+ + + + +
- (double)max
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

min

+ + + + +
- (double)min
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

putData:

+ + + + +
- (void)putData:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

reset

+ + + + +
- (void)reset
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

select:

+ + + + +
- (EMResourceValue *)select:(NSString *)fieldName
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setDoubleValue:

+ + + + +
- (void)setDoubleValue:(double)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setLongValue:

+ + + + +
- (void)setLongValue:(long long)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setStringValue:

+ + + + +
- (void)setStringValue:(NSString *)newValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

step

+ + + + +
- (double)step
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

stringValue

+ + + + +
- (NSString *)stringValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/StructValue.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/StructValue.html new file mode 100644 index 0000000..c1f0feb --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/StructValue.html @@ -0,0 +1,1231 @@ + + + + + StructValue Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
+ + + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

copyFromResource:

+ + + + +
- (void)copyFromResource:(EMResourceValue *)source
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

doubleValue

+ + + + +
- (double)doubleValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

enumValues

+ + + + +
- (NSArray *)enumValues
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fieldNames

+ + + + +
- (NSArray *)fieldNames
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileEof

+ + + + +
- (BOOL)fileEof
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileFetch

+ + + + +
- (void)fileFetch
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileStore

+ + + + +
- (void)fileStore
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

getDataOfSize:fromBuffer:

+ + + + +
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

index:

+ + + + +
- (EMResourceValue *)index:(int)index
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

initWithName:type:schema:

+ + + + +
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

length

+ + + + +
- (long)length
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

longValue

+ + + + +
- (long long)longValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

max

+ + + + +
- (double)max
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

min

+ + + + +
- (double)min
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

putData:

+ + + + +
- (void)putData:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

reset

+ + + + +
- (void)reset
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

select:

+ + + + +
- (EMResourceValue *)select:(NSString *)fieldName
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setDoubleValue:

+ + + + +
- (void)setDoubleValue:(double)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setLongValue:

+ + + + +
- (void)setLongValue:(long long)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setStringValue:

+ + + + +
- (void)setStringValue:(NSString *)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

step

+ + + + +
- (double)step
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

stringValue

+ + + + +
- (NSString *)stringValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Classes/VoidValue.html b/BT Vendor/EmmocoMobileFramework/Docs/Classes/VoidValue.html new file mode 100644 index 0000000..6abbc7c --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Classes/VoidValue.html @@ -0,0 +1,1231 @@ + + + + + VoidValue Class Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + + + + +
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
+ + + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

copyFromResource:

+ + + + +
- (void)copyFromResource:(EMResourceValue *)source
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

doubleValue

+ + + + +
- (double)doubleValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

enumValues

+ + + + +
- (NSArray *)enumValues
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fieldNames

+ + + + +
- (NSArray *)fieldNames
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileEof

+ + + + +
- (BOOL)fileEof
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileFetch

+ + + + +
- (void)fileFetch
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileStore

+ + + + +
- (void)fileStore
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

getDataOfSize:fromBuffer:

+ + + + +
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

index:

+ + + + +
- (EMResourceValue *)index:(int)index
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

initWithName:type:schema:

+ + + + +
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

length

+ + + + +
- (long)length
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

longValue

+ + + + +
- (long long)longValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

max

+ + + + +
- (double)max
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

min

+ + + + +
- (double)min
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

putData:

+ + + + +
- (void)putData:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

reset

+ + + + +
- (void)reset
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

select:

+ + + + +
- (EMResourceValue *)select:(NSString *)fieldName
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setDoubleValue:

+ + + + +
- (void)setDoubleValue:(double)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setLongValue:

+ + + + +
- (void)setLongValue:(long long)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setStringValue:

+ + + + +
- (void)setStringValue:(NSString *)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

step

+ + + + +
- (double)step
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

stringValue

+ + + + +
- (NSString *)stringValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionDelegate.html b/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionDelegate.html new file mode 100644 index 0000000..717e7ce --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionDelegate.html @@ -0,0 +1,305 @@ + + + + + EMConnectionDelegate Protocol Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + +
Conforms toNSObject
Declared inEMConnection.h
+ + + + +
+ +

Overview

+

@file

+
+ + + + + + + + + + + + + + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionType.html b/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionType.html new file mode 100644 index 0000000..86b4b8d --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionType.html @@ -0,0 +1,1151 @@ + + + + + EMConnectionType Protocol Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + +
Conforms toNSObject
Declared inEMConnectionType.h
+ + + + +
+ +

Overview

+

Abstracts a given protocol for connecting to devices.

+
+ + + + + +
+ +

Tasks

+ + + + + +
    +
  • + +   scanDelegate +

    The delegate for scanning

    +
    + property + required method +
  • + +   connectionDelegate +

    The delegate for connection communication

    +
    + property + required method +
  • + +   schema +

    The schema for connection

    +
    + property + required method +
  • + +   lastReadValue +

    The last read resource value from the device

    +
    + property + required method +
  • + +   connected +

    A boolean indicating whether or not there is a connection with a device.

    +
    + property + required method +
  • + +   signalStrengthFilterClass +

    The class to use for filtering, or smoothin, signal strength values

    +
    + property + required method +
  • + + – deviceType +

    The type of device - this can be set to anything and retreived for printing or examining.

    +
    + + required method +
  • + + – startUpdating +

    Tells the connection to start looking for devices of its type.

    +
    + + required method +
  • + + – stopUpdating +

    Tells the connection to stop looking for devices of its type.

    +
    + + required method +
  • + + – isConnected +

    Returns whether or not there is a connection with a device.

    +
    + + required method +
  • + + – disconnect +

    disconnects the current device.

    +
    + + required method +
  • + + – connectToDevice:connectionDelegate: +

    Establishes a connection with a device

    +
    + + required method +
  • + + – isAvailable +

    YES if available on the current device, NO if unavailable.

    +
    + + required method +
  • + + – fetch: +

    Fetches a resource. Can be retrieved in “lastReadValue”

    +
    + + required method +
  • + + – fetchSystemResource: +

    Fetches a system resource. Can be retrieved in “lastReadValue”.

    +
    + + required method +
  • + + – store: +

    writes a value to a device.

    +
    + + required method +
  • +
+ +
+ + + + + +
+ +

Properties

+ +
+ +

connected

+ + + +
+

A boolean indicating whether or not there is a connection with a device.

+
+ + +
@property (nonatomic, readonly, getter=isConnected) BOOL connected
+ + + + + + + + +
+

Discussion

+

A boolean indicating whether or not there is a connection with a device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

connectionDelegate

+ + + +
+

The delegate for connection communication

+
+ + +
@property (nonatomic, unsafe_unretained) id<EMDeviceDelegate> connectionDelegate
+ + + + + + + + +
+

Discussion

+

The delegate for connection communication

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

lastReadValue

+ + + +
+

The last read resource value from the device

+
+ + +
@property (nonatomic, strong) EMResourceValue *lastReadValue
+ + + + + + + + +
+

Discussion

+

The last read resource value from the device

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

scanDelegate

+ + + +
+

The delegate for scanning

+
+ + +
@property (nonatomic, unsafe_unretained) id<EMConnectionTypeScannerDelegate> scanDelegate
+ + + + + + + + +
+

Discussion

+

The delegate for scanning

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

schema

+ + + +
+

The schema for connection

+
+ + +
@property (nonatomic, unsafe_unretained) EMSchema *schema
+ + + + + + + + +
+

Discussion

+

The schema for connection

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

signalStrengthFilterClass

+ + + +
+

The class to use for filtering, or smoothin, signal strength values

+
+ + +
@property (nonatomic, strong) Class<EMSignalStrengthFilter> signalStrengthFilterClass
+ + + + + + + + +
+

Discussion

+

The class to use for filtering, or smoothin, signal strength values

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ + + + + +
+ +

Instance Methods

+ +
+ +

connectToDevice:connectionDelegate:

+ + + +
+

Establishes a connection with a device

+
+ + +
- (void)connectToDevice:(EMDeviceBasicDescription *)device connectionDelegate:(id<EMDeviceDelegate>)connDelegate
+ + + + + + + + +
+

Discussion

+

Establishes a connection with a device

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

deviceType

+ + + +
+

The type of device - this can be set to anything and retreived for printing or examining.

+
+ + +
- (NSString *)deviceType
+ + + + + + + + +
+

Discussion

+

The type of device - this can be set to anything and retreived for printing or examining.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

disconnect

+ + + +
+

disconnects the current device.

+
+ + +
- (void)disconnect
+ + + + + + + + +
+

Discussion

+

disconnects the current device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

fetch:

+ + + +
+

Fetches a resource. Can be retrieved in “lastReadValue”

+
+ + +
- (void)fetch:(id)resourceValue
+ + + + + + + + +
+

Discussion

+

Fetches a resource. Can be retrieved in “lastReadValue”

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

fetchSystemResource:

+ + + +
+

Fetches a system resource. Can be retrieved in “lastReadValue”.

+
+ + +
- (void)fetchSystemResource:(id)resourceValue
+ + + + + + + + +
+

Discussion

+

Fetches a system resource. Can be retrieved in “lastReadValue”.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

isAvailable

+ + + +
+

YES if available on the current device, NO if unavailable.

+
+ + +
- (BOOL)isAvailable
+ + + + + + + + +
+

Discussion

+

YES if available on the current device, NO if unavailable.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

isConnected

+ + + +
+

Returns whether or not there is a connection with a device.

+
+ + +
- (BOOL)isConnected
+ + + + + + + + +
+

Discussion

+

Returns whether or not there is a connection with a device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

startUpdating

+ + + +
+

Tells the connection to start looking for devices of its type.

+
+ + +
- (void)startUpdating
+ + + + + + + + +
+

Discussion

+

Tells the connection to start looking for devices of its type.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

stopUpdating

+ + + +
+

Tells the connection to stop looking for devices of its type.

+
+ + +
- (void)stopUpdating
+ + + + + + + + +
+

Discussion

+

Tells the connection to stop looking for devices of its type.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

store:

+ + + +
+

writes a value to a device.

+
+ + +
- (void)store:(id)resourceValue
+ + + + + + + + +
+

Discussion

+

writes a value to a device.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionTypeScannerDelegate.html b/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionTypeScannerDelegate.html new file mode 100644 index 0000000..85abb49 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMConnectionTypeScannerDelegate.html @@ -0,0 +1,488 @@ + + + + + EMConnectionTypeScannerDelegate Protocol Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + +
Conforms toNSObject
Declared inEMConnectionType.h
+ + + + +
+ +

Overview

+

These methods are sen tto the connection delegate to inform it of devices that come available or go offline.

+
+ + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

deviceScanner:didFindDevice:

+ + + +
+

Tells the delegate a device was found.

+
+ + +
- (void)deviceScanner:(id)scanner didFindDevice:(EMDeviceBasicDescription *)device
+ + + + + + + + +
+

Discussion

+

Tells the delegate a device was found.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

deviceScanner:didLoseDevice:

+ + + +
+

Tells the delegate a device was lost.

+
+ + +
- (void)deviceScanner:(id)scanner didLoseDevice:(EMDeviceBasicDescription *)device
+ + + + + + + + +
+

Discussion

+

Tells the delegate a device was lost.

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ +

deviceScanner:didUpdateDevice:

+ + + +
+

Updates the data for a device description

+
+ + +
- (void)deviceScanner:(id)scanner didUpdateDevice:(EMDeviceBasicDescription *)device
+ + + + + + + + +
+

Discussion

+

Updates the data for a device description

+
+ + + + + + + +
+

Declared In

+ EMConnectionType.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMDeviceDelegate.html b/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMDeviceDelegate.html new file mode 100644 index 0000000..95bc4bc --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMDeviceDelegate.html @@ -0,0 +1,305 @@ + + + + + EMDeviceDelegate Protocol Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + + + + +
Conforms toNSObject
Declared inEMConnectionType.h
+ + + + +
+ +

Overview

+

EMTargetDeviceHandler is implemented by classes interested in manageing connections to devices. By default, this will be the shared instance of EMConnectionManager.

+
+ + + + + + + + + + + + + + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMResourceValueProtocol.html b/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMResourceValueProtocol.html new file mode 100644 index 0000000..b4ce878 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/Protocols/EMResourceValueProtocol.html @@ -0,0 +1,1689 @@ + + + + + EMResourceValueProtocol Protocol Reference + + + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+ +
+
+ + + +
+ +
+ + + + +
Declared inEMResourceValue.h
+ + + + +
+ +

Overview

+

A protocol to define the methods that all EMResourceValue subclasses must define.

+ +

Written by Carolyn Vaughan

+
+ + + + + +
+ +

Tasks

+ + + + + + + +
+ + + + + + + + + +
+ +

Instance Methods

+ +
+ +

copyFromResource:

+ + + + +
- (void)copyFromResource:(EMResourceValue *)source
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

doubleValue

+ + + + +
- (double)doubleValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

enumValues

+ + + + +
- (NSArray *)enumValues
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fieldNames

+ + + + +
- (NSArray *)fieldNames
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileEof

+ + + + +
- (BOOL)fileEof
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileFetch

+ + + + +
- (void)fileFetch
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

fileStore

+ + + + +
- (void)fileStore
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

getDataOfSize:fromBuffer:

+ + + + +
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

index:

+ + + + +
- (EMResourceValue *)index:(int)index
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

initWithName:type:schema:

+ + + + +
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isArray

+ + + +
+

Returns true if the type of this value is an Array, and false otherwise.

+
+ + +
- (BOOL)isArray
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is an Array, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isEnum

+ + + +
+

Returns true if the type of this value is an Enum, and false otherwise.

+
+ + +
- (BOOL)isEnum
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is an Enum, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isFile

+ + + +
+

Returns true if the type of this value is a File, and false otherwise.

+
+ + +
- (BOOL)isFile
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is a File, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isInt

+ + + +
+

Returns true if the type of this value is an Int, and false otherwise.

+
+ + +
- (BOOL)isInt
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is an Int, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isNum

+ + + +
+

Returns true if the type of this value is a Num, and false otherwise.

+
+ + +
- (BOOL)isNum
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is a Num, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isScalar

+ + + +
+

Returns true if the type of this value is scalar (Num, Enum, Int, String), and false otherwise.

+
+ + +
- (BOOL)isScalar
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is scalar (Num, Enum, Int, String), and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isString

+ + + +
+

Returns true if the type of this value is a String, and false otherwise.

+
+ + +
- (BOOL)isString
+ + + + + + + + +
+

Discussion

+

Returns true if the type of this value is a String, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isStruct

+ + + +
+

Return true if the type of this value is a Struct, and false otherwise.

+
+ + +
- (BOOL)isStruct
+ + + + + + + + +
+

Discussion

+

Return true if the type of this value is a Struct, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

isVoid

+ + + +
+

Return true if the type of this value is a Void, and false otherwise.

+
+ + +
- (BOOL)isVoid
+ + + + + + + + +
+

Discussion

+

Return true if the type of this value is a Void, and false otherwise.

+
+ + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

length

+ + + + +
- (long)length
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

longValue

+ + + + +
- (long long)longValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

max

+ + + + +
- (double)max
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

min

+ + + + +
- (double)min
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

putData:

+ + + + +
- (void)putData:(EMSerialPacket *)buffer
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

reset

+ + + + +
- (void)reset
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

select:

+ + + + +
- (EMResourceValue *)select:(NSString *)fieldName
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setDoubleValue:

+ + + + +
- (void)setDoubleValue:(double)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setLongValue:

+ + + + +
- (void)setLongValue:(long long)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

setStringValue:

+ + + + +
- (void)setStringValue:(NSString *)value
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

step

+ + + + +
- (double)step
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ +

stringValue

+ + + + +
- (NSString *)stringValue
+ + + + + + + + + + + + + + +
+

Declared In

+ EMResourceValue.h
+
+ + +
+ +
+ + +
+ + +
+
+ + + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/css/styles.css b/BT Vendor/EmmocoMobileFramework/Docs/css/styles.css new file mode 100755 index 0000000..7de7ea2 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/css/styles.css @@ -0,0 +1,585 @@ + + +body { + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + font-size: 13px; + background: #fff url(http://www.emmoco.com/images/bg_page_gradient.jpg) repeat-x 0 0; +} + +#em-wrapper { + width:960px; + margin:0 auto; + background-color: #fff; + overflow: hidden; +} + +article +{ + background-color:#fff; +} + + +code { + font-family: Courier, Consolas, monospace; + font-size: 13px; + color: #666; +} + +pre { + font-family: Courier, Consolas, monospace; + font-size: 13px; + line-height: 18px; + tab-interval: 0.5em; + border: 1px solid #C7CFD5; + background-color: #F1F5F9; + color: #666; + padding: 0.3em 1em; +} + +ul { + list-style-type: square; +} + +li { + margin-bottom: 10px; +} + +a { + text-decoration: none; + color: #36C; +} + +a:hover { + text-decoration: underline; + color: #36C; +} + +h2 { + border-bottom: 1px solid #8391A8; + color: #3C4C6C; + font-size: 187%; + font-weight: normal; + margin-top: 1.75em; + padding-bottom: 2px; +} + +/* @group Common page elements */ + +#top_header { + height: 91px; + left: 0; + min-width: 598px; + + right: 0; + top: 50px; + z-index: 900; + width: 960px; + margin: auto; + clear: both; + margin-bottom: 15px; +} + +#footer { + clear: both; + padding-top: 20px; + text-align: center; +} + +#ccontents, #overview_contents { + border-top: 1px solid #2B334F; + position: absolute; + position:relative; + top: 91px; + left: 0; + right: 0; + bottom: 0; + top: 0; + overflow-x: hidden; + overflow-y: auto; + padding-left: 2em; + padding-right: 2em; + padding-top: 1em; + min-width: 550px; + width: 950px; + margin-left: auto; + margin-right: auto; + left: auto; + clear: both; + padding-left: 10px; + padding-right: 0; +} + +#contents.isShowingTOC { + left: 230px; + left: 130px; + min-width: 320px; + width: 730px; + margin-left: auto; + margin-right: auto; + position:absolute; + position:relative; +} + +.copyright { + font-size: 12px; +} + +.generator { + font-size: 11px; +} + +.main-navigation ul li { + display: inline; + margin-left: 15px; + list-style: none; +} + +.main-navigation { + margin-right: 20px; +} + +.navigation-top { + clear: both; + float: right; + margin-right: 20px; +} + +.navigation-bottom { + clear: both; + float: right; + margin-top: 20px; + margin-bottom: -10px; + margin-right: 20px; +} + +.open > .disclosure { + background-image: url("../img/disclosure_open.png"); +} + +.disclosure { + background: url("../img/disclosure.png") no-repeat scroll 0 0; +} + +.disclosure, .nodisclosure { + display: inline-block; + height: 8px; + margin-right: 5px; + position: relative; + width: 9px; +} + +/* @end */ + +/* @group Header */ + +#top_header #library { + background: url("../img/library_background.png") repeat-x 0 0 #485E78; + background-color: #ccc; + height: 35px; + font-size: 115%; + position:relative; +} + +#top_header #library #libraryTitle { + color: #FFFFFF; + margin-left: 15px; + text-shadow: 0 -1px 0 #485E78; + top: 8px; + position: absolute; +} + +#top_header #library #developerHome { + color: #92979E; + right: 15px; + top: 8px; + position: absolute; +} + +#top_header #library a:hover { + text-decoration: none; +} + +#top_header #title { + background: url("../img/title_background.png") repeat-x 0 0 #8A98A9; + border-bottom: 1px solid #B6B6B6; + height: 25px; + overflow: hidden; + text-align: left; + padding-left: 15px; +} + +#top_header h1 { + font-size: 115%; + font-weight: normal; + margin: 0; + padding: 3px 0 2px; + text-align: center; + text-align: left; + text-shadow: 0 1px 0 #D5D5D5; + white-space: nowrap; +} + +#headerButtons { + background-color: #D8D8D8; + background-image: url("../img/button_bar_background.png"); + border-bottom: 1px solid #EDEDED; + border-top: 1px solid #2B334F; + font-size: 8pt; + height: 28px; + left: 0; + list-style: none outside none; + margin: 0; + overflow: hidden; + padding: 0; + position: absolute; + position: relative; + right: 0; + top: 61px; + top: 0; +} + +#headerButtons li { + background-repeat: no-repeat; + display: inline; + margin-top: 0; + margin-bottom: 0; + padding: 0; +} + +#toc_button button { + border-color: #ACACAC; + border-style: none solid none none; + border-width: 0 1px 0 0; + height: 28px; + margin: 0; + padding-left: 30px; + text-align: left; + width: 230px; +} + +li#jumpto_button { + left: 230px; + margin-left: 0; + position: absolute; + +} + +li#jumpto_button select { + height: 22px; + margin: 5px 2px 0 10px; + max-width: 300px; +} + +/* @end */ + +/* @group Table of contents */ + +#tocContainer.isShowingTOC { + border-right: 1px solid #ACACAC; + display: block; + overflow-x: hidden; + overflow-y: auto; + padding: 0; +} + +#tocContainer { + background-color: #E4EBF7; + border-top: 1px solid #2B334F; + bottom: 0; + display: none; + left: 0; + left: auto; + overflow: hidden; + position: absolute; + top: 91px; + top: 150px; + width: 229px; +} + +#tocContainer > ul#toc { + font-size: 11px; + margin: 0; + padding: 12px 0 18px; + width: 209px; + -moz-user-select: none; + -webkit-user-select: none; + user-select: none; +} + +#tocContainer > ul#toc > li { + margin: 0; + padding: 0 0 7px 30px; + text-indent: -15px; +} + +#tocContainer > ul#toc > li > .sectionName a { + color: #000000; + font-weight: bold; +} + +#tocContainer > ul#toc > li > .sectionName a:hover { + text-decoration: none; +} + +#tocContainer > ul#toc li.children > ul { + display: none; + height: 0; +} + +#tocContainer > ul#toc > li > ul { + margin: 0; + padding: 0; +} + +#tocContainer > ul#toc > li > ul, ul#toc > li > ul > li { + margin-left: 0; + margin-bottom: 0; + padding-left: 15px; +} + +#tocContainer > ul#toc > li ul { + list-style: none; + margin-right: 0; + padding-right: 0; +} + +#tocContainer > ul#toc li.children.open > ul { + display: block; + height: auto; + margin-left: -15px; + padding-left: 0; +} + +#tocContainer > ul#toc > li > ul, ul#toc > li > ul > li { + margin-left: 0; + padding-left: 15px; +} + +#tocContainer li ul li { + margin-top: 0.583em; + overflow: hidden; + text-overflow: ellipsis; + white-space: nowrap; +} + +#tocContainer li ul li span.sectionName { + white-space: normal; +} + +#tocContainer > ul#toc > li > ul > li > .sectionName a { + font-weight: bold; +} + +#tocContainer > ul#toc > li > ul a { + color: #4F4F4F; +} + +/* @end */ + +/* @group Index formatting */ + +.index-title { + font-size: 13px; + font-weight: normal; +} + +.index-column { + float: left; + width: 30%; + min-width: 200px; + font-size: 11px; +} + +.index-column ul { + margin: 8px 0 0 0; + padding: 0; + list-style: none; +} + +.index-column ul li { + margin: 0 0 3px 0; + padding: 0; +} + +.hierarchy-column { + min-width: 400px; +} + +.hierarchy-column ul { + margin: 3px 0 0 15px; +} + +.hierarchy-column ul li { + list-style-type: square; +} + +/* @end */ + +/* @group Common formatting elements */ + +.title { + font-weight: normal; + font-size: 215%; + margin-top:0; +} + +.subtitle { + font-weight: normal; + font-size: 180%; + color: #3C4C6C; + border-bottom: 1px solid #5088C5; +} + +.subsubtitle { + font-weight: normal; + font-size: 145%; + height: 0.7em; +} + +.warning { + border: 1px solid #5088C5; + background-color: #F0F3F7; + margin-bottom: 0.5em; + padding: 0.3em 0.8em; +} + +.bug { + border: 1px solid #000; + background-color: #ffffcc; + margin-bottom: 0.5em; + padding: 0.3em 0.8em; +} + +.deprecated { + color: #F60425; +} + +/* @end */ + +/* @group Common layout */ + +.section { + margin-top: 3em; +} + +/* @end */ + +/* @group Object specification section */ + +.section-specification { + margin-left: 2.5em; + margin-right: 2.5em; + font-size: 12px; +} + +.section-specification table { + border-top: 1px solid #d6e0e5; +} + +.section-specification td { + vertical-align: top; + border-bottom: 1px solid #d6e0e5; + padding: .6em; +} + +.section-specification .specification-title { + font-weight: bold; +} + +/* @end */ + +/* @group Tasks section */ + +.task-list { + list-style-type: none; + padding-left: 0px; +} + +.task-list li { + margin-bottom: 3px; +} + +.task-item-suffix { + color: #996; + font-size: 12px; + font-style: italic; + margin-left: 0.5em; +} + +span.tooltip span.tooltip { + font-size: 1.0em; + display: none; + padding: 0.3em; + border: 1px solid #aaa; + background-color: #fdfec8; + color: #000; + text-align: left; +} + +span.tooltip:hover span.tooltip { + display: block; + position: absolute; + margin-left: 2em; +} + +/* @end */ + +/* @group Method section */ + +.section-method { + margin-top: 2.3em; +} + +.method-title { + margin-bottom: 1.5em; +} + +.method-subtitle { + margin-top: 0.7em; + margin-bottom: 0.2em; +} + +.method-subsection p { + margin-top: 0.4em; + margin-bottom: 0.8em; +} + +.method-declaration { + margin-top:1.182em; + margin-bottom:.909em; +} + +.method-declaration code { + font:14px Courier, Consolas, monospace; + color:#000; +} + +.declaration { + color: #000; +} + +.argument-def { + margin-top: 0.3em; + margin-bottom: 0.3em; +} + +.argument-def dd { + margin-left: 1.25em; +} + +.see-also-section ul { + list-style-type: none; + padding-left: 0px; + margin-top: 0; +} + +.see-also-section li { + margin-bottom: 3px; +} + +.declared-in-ref { + color: #666; +} + +/* @end */ + diff --git a/BT Vendor/EmmocoMobileFramework/Docs/css/stylesPrint.css b/BT Vendor/EmmocoMobileFramework/Docs/css/stylesPrint.css new file mode 100755 index 0000000..dc54cd2 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/css/stylesPrint.css @@ -0,0 +1,22 @@ + +header { + display: none; +} + +div.main-navigation, div.navigation-top { + display: none; +} + +div#overview_contents, div#contents.isShowingTOC, div#contents { + overflow: visible; + position: relative; + top: 0px; + border: none; + left: 0; +} +#tocContainer.isShowingTOC { + display: none; +} +nav { + display: none; +} \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/hierarchy.html b/BT Vendor/EmmocoMobileFramework/Docs/hierarchy.html new file mode 100644 index 0000000..999e36e --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/hierarchy.html @@ -0,0 +1,216 @@ + + + + + iOS Framework Hierarchy + + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + +
+
+
+ + + + + +
+
+ + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Docs/img/button_bar_background.png b/BT Vendor/EmmocoMobileFramework/Docs/img/button_bar_background.png new file mode 100755 index 0000000..d2cd0d8 Binary files /dev/null and b/BT Vendor/EmmocoMobileFramework/Docs/img/button_bar_background.png differ diff --git a/BT Vendor/EmmocoMobileFramework/Docs/img/disclosure.png b/BT Vendor/EmmocoMobileFramework/Docs/img/disclosure.png new file mode 100755 index 0000000..147198f Binary files /dev/null and b/BT Vendor/EmmocoMobileFramework/Docs/img/disclosure.png differ diff --git a/BT Vendor/EmmocoMobileFramework/Docs/img/disclosure_open.png b/BT Vendor/EmmocoMobileFramework/Docs/img/disclosure_open.png new file mode 100755 index 0000000..ea3842b Binary files /dev/null and b/BT Vendor/EmmocoMobileFramework/Docs/img/disclosure_open.png differ diff --git a/BT Vendor/EmmocoMobileFramework/Docs/img/library_background.png b/BT Vendor/EmmocoMobileFramework/Docs/img/library_background.png new file mode 100755 index 0000000..8fa6d45 Binary files /dev/null and b/BT Vendor/EmmocoMobileFramework/Docs/img/library_background.png differ diff --git a/BT Vendor/EmmocoMobileFramework/Docs/img/title_background.png b/BT Vendor/EmmocoMobileFramework/Docs/img/title_background.png new file mode 100755 index 0000000..9001dac Binary files /dev/null and b/BT Vendor/EmmocoMobileFramework/Docs/img/title_background.png differ diff --git a/BT Vendor/EmmocoMobileFramework/Docs/index.html b/BT Vendor/EmmocoMobileFramework/Docs/index.html new file mode 100644 index 0000000..60f7122 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Docs/index.html @@ -0,0 +1,209 @@ + + + + + iOS Framework Reference + + + + + +
+ + +
+ + +

+ Em-Hub + Wiki + Android Docs + iOS Docs + Support +

+ +
+ + +
+ + + + + + + + +
+
+
+ + + + + +
+
+
+ + \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMBluetoothLowEnergyConnectionType.h b/BT Vendor/EmmocoMobileFramework/Headers/EMBluetoothLowEnergyConnectionType.h new file mode 100644 index 0000000..eb427f6 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMBluetoothLowEnergyConnectionType.h @@ -0,0 +1,34 @@ +#import +#import "EMConnectionType.h" + +#if TARGET_OS_IPHONE + #import +#else + #import +#endif + + + +/** + * EMBluethoothLowEnergyConnectionType is a concrete EMConnectionType for Bluetooth Low Energy. + * + * If you want the framework to interact with Bluetooth Low Energy devices, add an instance of this class to EMConnectionListManager via the -addConnectionTypeToUpdates: method. + */ + +@interface EMBluetoothLowEnergyConnectionType : NSObject { + +} + +@property (nonatomic) NSTimeInterval scanResetTime; + +/** + * By default, EMBluetoothLowEnergyConnectionType will 'discover' devices that have a schema hash matching a schema in your application bundle. + * Set this flag to 'YES' for an instance of this class to discover all Emmoco BLE devices. + * NOTE: Most applications should not have this enabled. + */ +@property (nonatomic) BOOL discoversAllEmmocoBLEDevices; + ++(CBUUID *)emmocoServiceUUID; ++(CBUUID *)emmocov12ServiceUUID; + +@end diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMChecksum.h b/BT Vendor/EmmocoMobileFramework/Headers/EMChecksum.h new file mode 100644 index 0000000..fb4d24c --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMChecksum.h @@ -0,0 +1,19 @@ +// +// EMChecksum.h +// Emmoco +// +// Created by bob frankel on 8/18/11. +// Copyright 2011 Emmoco, Inc.. All rights reserved. +// + +#import + +@interface EMChecksum : NSObject { + +} + +- (void)addByte:(int)byte; +- (void)clear; +- (int)sum; + +@end diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMConnection.h b/BT Vendor/EmmocoMobileFramework/Headers/EMConnection.h new file mode 100644 index 0000000..b73f2b7 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMConnection.h @@ -0,0 +1,134 @@ + +/** @file */ + +#import +#import "EMSchema.h" +#import "EMConnectionType.h" +#import "EMTypes.h" + +@class EMConnection; + +@protocol EMConnectionDelegate + +-(void)connectionDidTimeout:(EMConnection *)connection; +-(void)connectionDidDisconnect:(EMConnection *)connection; + +@end + +/** + * The state of the current connection. Use KVO to receive updates on this property and react to changes. + */ + +typedef enum { + EMConnectionStateDisconnected, // Disconnected state, no error + EMConnectionStatePending, // A connection has been started, and is pending completion + EMConnectionStateSchemaNotFound, // The schema for the connection is not in the application bundle + EMConnectionStateInvalidSchemaHash, // The device didn't respond with a valid schema hash + EMConnectionStateConnected, // Connected state, no error + EMConnectionStateDisrupted, // The connection was interrupted + EMConnectionStatePendingForDefaultSchema, // The schema could not be found and the connection is being "forced" with the provided default schema. Note: This state will only occur if you have provided a default schema and told the connection manager to force a connection with it. + EMConnectionStateTimeout // The connection timed out +} EMConnectionState; + +extern NSString * const kEMConnectionDidReceiveIndicatorNotificationName; +extern NSString * const kEMIndicatorResourceKey; +extern NSString * const kEMIndicatorNameKey; +extern NSString * const kEMConnectionErrorDomain; +extern NSString * const kEMIndicatorResourceValueKey; + +@interface EMConnection : NSObject { + @protected + EMSchema *_systemSchema; +} + +/** + * This block will be called when an open connection is closed for any reason + */ +@property (atomic, strong) EMResourceBlock connectionClosedBlock; + +/** + * The timeout interval for a pending connection + */ +@property (atomic) NSTimeInterval connectionAttemptTimeout; + +/** + * The connection delegate. EMConnectionManager will post connect and disconnect delegate messages to this object if it is set. + */ +@property (nonatomic, unsafe_unretained) id connectionDelegate; + + +/** + * The EMDeviceBasicDescription used for conenction + */ +@property (nonatomic, strong) EMDeviceBasicDescription *device; + +/** + * The schema for connection + */ +@property (nonatomic, strong) EMSchema *schema; + + +/** + * Creates a new EMConnection object. + * Actual connection and disconnection to the named target occurs through calls to open and close on this object. + * @param device The basic description of a device + */ +- (id)initWithDevice:(EMDeviceBasicDescription *)device; + +/** + * Creates a new EMTargetConnection object. + * Actual connection and disconnection to the named target occurs through calls to open and close on this object. + * @param device the name of the target device, including one of the pre-defined prefixes + * @param resourceSchema the schema describing the resources available in this connection + */ +- (id)initWithDevice:(EMDeviceBasicDescription *)device schema:(EMSchema*)resourceSchema; + + +/** + * Returns true if connected and false otherwise. + */ +- (BOOL)isConnected; + +/** + * Opens a connection to the @device device property + * @param successBlock A block to call on a successful connect + * @param failBlock A block to call on a failed connect + */ +- (void)openConnectionWithSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock; + +/** + * Cancels the attempt to open this EMTargetConnection, posting the open block with a failed status. + */ +- (void)cancelOpen; + +/** + * Closes the connection + * @param successBlock A block to call on a successful disconnect + * @param failBlock A block to call on a failed disconnect + */ +- (void)closeConnectionWithSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock; + +/** + * Reads a value + * @param resourceName The name of the resource to read + * @param successBlock A block to call on a successful read + * @param failBlock A block to call on a failed read + */ +-(void)readValueNamed:(NSString *)resourceName onSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock; + +-(void)readSystemValueNamed:(NSString *)resourceName onSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock; + +/** + * Writes a resource to the device + * @param resourceValue The resource value + * @param successBlock A block to call on a successful write + * @param failBlock A block to call on a failed write + */ + +-(void)writeResource:(EMResourceValue *)resourceValue onSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock; + +- (NSString*)connectedDeviceSchemaHash; + + +@end + diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMConnectionListManager.h b/BT Vendor/EmmocoMobileFramework/Headers/EMConnectionListManager.h new file mode 100644 index 0000000..7c75f7d --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMConnectionListManager.h @@ -0,0 +1,95 @@ +#import "EMConnectionType.h" +#import + +/** + * kEMConnectionManagerDidStartUpdating is the name of a notification that is posted when the list manager begins updating, or scanning, for available devices + */ + +extern NSString * const kEMConnectionManagerDidStartUpdating; + +/** + * kEMConnectionManagerDidStopUpdating is the name of a notification that is posted when the list manager stops updating, or scanning, for available devices + */ + +extern NSString * const kEMConnectionManagerDidStopUpdating; + +/** + * EMConnectionListManager is a singleton class used for viewing a list of devices available for interaction. + */ +@interface EMConnectionListManager : NSObject + +/** + * @property devices + * A list of devices that has been discovered as available by the connection list manager + */ +@property (nonatomic, strong, readonly) NSArray *devices; + +/** + * @property filterPredicate + * A filter that allows only devices conforming to the predicate to be visible + */ +@property (nonatomic, strong) NSPredicate *filterPredicate; + +/** + * @property updating + * A boolean value indicating whether or not the connection list manager is actively updating the devices list + */ +@property (nonatomic, getter = isUpdating, readonly) BOOL updating; + +/** + * @property updateRate + * updateRate determines the scan frequency for discovering devices + */ +@property (nonatomic) NSTimeInterval updateRate; + + +/** + * @param automaticallyConnectsToLastDevice + * A boolean value indicating whether or not the connection list manager should automatically connect to the last device it was connected to if it encounters it in a scan. + */ +@property (nonatomic) BOOL automaticallyConnectsToLastDevice; + + +/** + * Use the +sharedManager to get the singleton, shared instance of EMConnectionListManager + */ ++(EMConnectionListManager *)sharedManager; + +/** + * Retrieve a device description for a given unique identifier + * @param name The name of the device + */ + +-(EMDeviceBasicDescription *)deviceBasicDescriptionForDeviceNamed:(NSString *)name; + +/** + * Tells the connection list manager to begin actively looking for devices to interact with. + */ +-(void)startUpdating; + +/** + * Tells the connection list manager to stop looking for devices to interact with. + */ +-(void)stopUpdating; + +/** + * Manually clears out all devices on the connection list manager. + */ +-(void)reset; + +/** + * Detect if Bluetooth is available + */ +-(BOOL)isBluetoothAvailable; + +/** + * Add your own connection type outside of bluetooth low energy + */ +-(void)addConnectionTypeToUpdates:(id)connectionType; + +/** + * Remove your own connection type outside of bluetooth low energy + */ +-(void)removeConnectionToFromUpdates:(id)connectionType; + +@end diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMConnectionManager.h b/BT Vendor/EmmocoMobileFramework/Headers/EMConnectionManager.h new file mode 100644 index 0000000..65fb98c --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMConnectionManager.h @@ -0,0 +1,167 @@ +#import +#import +#import "EMConnection.h" +#import "EMSchema.h" +#import "EMConnectionType.h" + +#ifndef CB_EXTERN_CLASS +#warning "You must include CoreBluetooth in project to use Em-Framework" +#endif + +/** + * A constant for NSUserDefaults that contains the name of the last connected device, if there is one + */ + +extern NSString * const kLastConnectedDevice; + +extern NSString * const kEMConnectionManagerDidUpdateConnectionStateNotificationName; + +/** + * Various types of connection errors. + */ + +typedef enum { + EMConnectionManagerErrorNoSchemaAvailable, + EMConnectionManagerErrorCouldNotDisconnect, + EMConnectionManagerErrorDeviceNotAvailable, +} EMConnectionManagerError; + +extern NSString * const kEMConnectionManagerErrorDomain; + +@class EMTargetDevice; +@class EMConnection; + +/** + * EMConnectionManager is a singleton class for managing a connection with a physical or mock device. + */ + +@interface EMConnectionManager : NSObject + +@property (nonatomic) EMConnectionState connectionState; + +@property (nonatomic, strong) NSURL *defaultSchemaURL; + + +/** + @property backgroundUpdatesEnabled + @description If you set this flag to "YES", the connection manager has the ability to persist while running in the background. By default, the connection manager severs connections when entering the background. + */ +@property (nonatomic) BOOL backgroundUpdatesEnabled; + +/** + * Use the +sharedManager class method to access the application-wide singleton instance of EMConnectionManager. + * Note: Accessing the connection manager in any way other is not recommended. + */ + ++(EMConnectionManager *)sharedManager; + +/** + * Tells the connection manager to connect to a specific device. + * + * @param device An instance of EMDeviceBasicDescription the connection manager should connect to + * @param successBlock The block to run after a successful connection + * @param failBlock The block to run if the connectino fails + * @description The implementation of this method calls connectDevice:timeoutInterval:onSuccess:onFail: with a default time interval of 10 seconds + */ + +-(void)connectDevice:(EMDeviceBasicDescription *)device onSuccess:(void(^)(void))successBlock onFail:(void(^)(NSError *error))failBlock; + +/** + * Tells the connection manager to connect to a specific device. + * + * @param device An instance of EMDeviceBasicDescription the connection manager should connect to + * @param timeout The time the connection manager should allow for a successful connection. After the specified time interval passes, the fail block will be called. + * @param successBlock The block to run after a successful connection + * @param failBlock The block to run if the connection fails + * @description The implementation of this method calls connectDevice:timeoutInterval:onSuccess:onFail: with a default time interval of 10 seconds + */ +-(void)connectDevice:(EMDeviceBasicDescription *)device timeoutInterval:(NSTimeInterval)timeout onSuccess:(void(^)(void))successBlock onFail:(void(^)(NSError *error))failBlock; + +/** + * Tells the connection manager to disconnect from a specific device + * + * @param successBlock The block to run after a successful disconnection + * @param failBlock The block to run if the disconnection fails. + */ +-(void)disconnectWithSuccess:(void(^)(void))successBlock onFail:(void(^)(NSError *error))failBlock; + +/** + * Reads a resource from a connected device + * + * @param resourceName The name of the resource to read. This is the name of the resource in the device's schema. + * @param successBlock The block to call when a read occurs successfully. Connection manager will call this block with the value read. + * @param failBlock The block to call when a read fails. + */ +-(void)readResource:(NSString *)resourceName onSuccess:(void(^)(id readValue))successBlock onFail:(void(^)(NSError *error))failBlock; + +/** + * Writes a value to a resource on a connected device + * + * @param resourceValue The value to write to the resource. This should be an instance of NSString, NSData, NSArray, NSNumber, or NSDictionary + * @param resource The name of the resource for writing. This is the name of the resource in the schema. + * @param successBlock The block to call when the write occurs successfully. + * @param failBlock The block to call when the write fails. + */ +-(void)writeValue:(id)resourceValue toResource:(NSString *)resource onSuccess:(void(^)(void))successBlock onFail:(void(^)(NSError *error))failBlock; + +/** + * Returns an array of EMDeviceBasicDescription's for the device that is actively connected + */ +-(EMDeviceBasicDescription *)connectedDevice; + +/** + * Returns a version of the the schema hash from a connected device's firmware as it appears on em-hub + */ +-(NSString *)schemaHashForConnectedDevice; + +/** + * Tells the connection manager where it should look for schemas other than the NSBundle's mainBundle + * + * @param path The path for the directory in which to search + */ +-(void)addSchemaSearchForFilesInDirectory:(NSString *)path; + +/** + * Tells the connection manager to no longer look in the specified path for schemas + * + * @param path The path to no longer search + * @description Note: This method will never ignore the current bundle's mainBundle + */ +-(void)removeSchemaSearchForFilesInDirectory:(NSString *)path; + +/** + * Forces the connection manager to connect to a device with the default schema + * @param device The device for the forced connection + * @description Use this method with extreme caution. Many undefined behaviors can come from using this method with a schema that isn't an exact match for the specified device. EMConnectionManager uses this method internally. It is very rare that you will need to call this method directly. + */ +-(void)forceConnectionWithDefaultSchema:(EMDeviceBasicDescription *)device; + +/** + * Tells EMConnectionManager to update its internal cache of schemas used for connection. + * @description EMConnectionManager uses this method internally. It is very rare taht you will need to call this method directly. + */ +-(void)updateInternalSchemaCache; + +/** + * Gives the schema name in the application bundle for a given hash string + * @param hashString A full or partial schema hash string + * @description This method takes either a full hash or partial hash. If any schema begins with 'hash string', the file name in the bundle is returned. Returns nil if no matching schema was found in the bundle. + * If one or more schemas share 'hashString' at the beginning of their hash, the first path will be returned. + */ +-(NSString *)schemaFileNameForHashString:(NSString *)hashString; + +/** + * Gets the schema for the connected device. + * @description Returns nil if no device is connected. + */ + +-(EMSchema *)schemaForConnectedDevice; + +/** + * Gets the embedded system protocol level from the schema used to connect to the device + * @description This call does not send a message down to the board - the protocol level is pulled directly from the schema that was used to connect to the device. + */ + +-(NSNumber *)embeddedSystemProtocolLevel; + +@end diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMConnectionType.h b/BT Vendor/EmmocoMobileFramework/Headers/EMConnectionType.h new file mode 100644 index 0000000..c4dc364 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMConnectionType.h @@ -0,0 +1,134 @@ +#import +#import "EMSchema.h" +#import "EMDeviceBasicDescription.h" +#import "EMResourceValue.h" +#import "EMSignalStrengthFilter.h" + +/** + * EMTargetDeviceHandler is implemented by classes interested in manageing connections to devices. By default, this will be the shared instance of EMConnectionManager. + */ +@protocol EMDeviceDelegate +- (void)extendConnectTimeout; +- (void)postIndicatorForResource:(EMResourceValue *)indicator; +- (void)operationDone:(int)status; +@end + + +#pragma mark - EMConnectionTypeScannerDelegate Declaration + +/** + * These methods are sen tto the connection delegate to inform it of devices that come available or go offline. + */ + +@protocol EMConnectionTypeScannerDelegate + +/** + * Tells the delegate a device was found. + */ + +-(void)deviceScanner:(id)scanner didFindDevice:(EMDeviceBasicDescription *)device; + +/** + * Tells the delegate a device was lost. + */ +-(void)deviceScanner:(id)scanner didLoseDevice:(EMDeviceBasicDescription *)device; + + +/** + * Updates the data for a device description + */ +-(void)deviceScanner:(id)scanner didUpdateDevice:(EMDeviceBasicDescription *)device; + +@end + +#pragma mark - EMConnectionType Declaration + +/** + * Abstracts a given protocol for connecting to devices. + */ + +@protocol EMConnectionType + +/** + * The delegate for scanning + */ +@property (nonatomic, unsafe_unretained) id scanDelegate; + +/** + * The delegate for connection communication + */ +@property (nonatomic, unsafe_unretained) id connectionDelegate; + +/** + * The schema for connection + */ +@property (nonatomic, unsafe_unretained) EMSchema *schema; + +/** + * The last read resource value from the device + */ +@property (nonatomic, strong) EMResourceValue *lastReadValue; + +/** + * A boolean indicating whether or not there is a connection with a device. + */ +@property (nonatomic, readonly, getter = isConnected) BOOL connected; + +/** + * The class to use for filtering, or smoothin, signal strength values + */ +@property (nonatomic, strong) Class signalStrengthFilterClass; + +/** + * The type of device - this can be set to anything and retreived for printing or examining. + */ +-(NSString *)deviceType; + +/** + * Tells the connection to start looking for devices of its type. + */ +-(void)startUpdating; + +/** + * Tells the connection to stop looking for devices of its type. + */ +-(void)stopUpdating; + +/** + * Returns whether or not there is a connection with a device. + */ +-(BOOL)isConnected; + +/** + * disconnects the current device. + * + */ +-(void)disconnect; + +/** + * Establishes a connection with a device + */ +-(void)connectToDevice:(EMDeviceBasicDescription *)device connectionDelegate:(id)connDelegate; + + +/** + * YES if available on the current device, NO if unavailable. + */ +-(BOOL)isAvailable; + +/** + * Fetches a resource. Can be retrieved in "lastReadValue" + */ +-(void)fetch:(id)resourceValue; + +/** + * Fetches a system resource. Can be retrieved in "lastReadValue". + */ +- (void)fetchSystemResource:(id)resourceValue; + +/** + * writes a value to a device. + */ +-(void)store:(id)resourceValue; +@end + diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMDeviceBasicDescription.h b/BT Vendor/EmmocoMobileFramework/Headers/EMDeviceBasicDescription.h new file mode 100644 index 0000000..826f60c --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMDeviceBasicDescription.h @@ -0,0 +1,64 @@ +#import "EMSignalStrengthFilter.h" + +@protocol EMConnectionType; + +/** + * EMDeviceBasicDescription is a class used to describe basic device characteristics throughout the entire framework. + * All devices, regardless of connection type, will have these properties. + * + * All classes implementing the EMConnectionType protocol will receive and deliver device information in the form of an EMDeviceBasicDescription. + */ + +@interface EMDeviceBasicDescription : NSObject + +/** + * The name of the device used thoughout the framework. + * Like the unique_identifier, this property needs to be unique. + */ +@property (nonatomic, strong) NSString *name; + +/** + * A concrete EMConnectionType instance that will be used to send messages to the device. + */ +@property (nonatomic, strong) id connectionType; + +/* + * An object that can describe the device to the provided connection type. + * For example, for bluetooth, this might be an instance of CBPeripheral. + */ +@property (nonatomic, strong) id deviceObject; + +/** + * A value between -100 and 0 used to describe signal strength. + */ +@property (nonatomic) float signalStrength; + +/** + * The signal strength filter for smoothing + */ +@property (nonatomic, strong) id signalStrengthFilter; + +/** + Data that was discovered along with the device. + Ex: When dealing with bluetooth, this is the advertising packet data + */ +@property (nonatomic, strong) NSData *advertiseData; + +/** + * An object taken from the advertise data based on the advertise resource in the device's schema + * Possible classes: NSString, NSNumber, NSDictionary, NSArray, NSData + */ +@property (nonatomic, strong) id advertiseObject; + +/** + The first six characters of the device's schema + */ +@property (nonatomic, strong) NSString *shortSchemaHash; + +/** + The name of the schema file in your bundle that relates to this device. + NOTE: Many devices do not broadcast this information. In this case, this property will not be set + */ +@property (nonatomic, strong) NSString *schemaFilePath; + +@end diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMFramework.h b/BT Vendor/EmmocoMobileFramework/Headers/EMFramework.h new file mode 100644 index 0000000..bd5a435 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMFramework.h @@ -0,0 +1,28 @@ +// +// EMFramework.h +// Emmoco +// +// Created by bob frankel on 8/22/11. +// Copyright 2011 Emmoco, Inc.. All rights reserved. +// + +#import +#import "EMConnectionManager.h" +#import "EMConnectionListManager.h" +#import "EMConnection.h" +#import "EMBluetoothLowEnergyConnectionType.h" +#import "EMSchema.h" +#import "EMResourceValue.h" + +#define EMFrameworkProtocol_11 + +#define EMMinFramework @"12" +#define EMMaxFramework @"13" + +#define SIGNAL_STRENGTH_UNAVAILABLE FLT_MIN + +#ifdef DEBUG +#define EMLog(format, ...) NSLog(@"<%@:(%d)> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(format), ##__VA_ARGS__]) +#else +#define EMLog(format, ...) +#endif \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMRSSIFilter.h b/BT Vendor/EmmocoMobileFramework/Headers/EMRSSIFilter.h new file mode 100644 index 0000000..847cd9c --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMRSSIFilter.h @@ -0,0 +1,19 @@ +// +// EMRSSIFilter.h +// EMFramework +// +// Created by Dexter Weiss on 8/9/13. +// Copyright (c) 2013 Emmoco. All rights reserved. +// + +#import +#import "EMSignalStrengthFilter.h" + +@interface EMRSSIFilter : NSObject + ++(EMRSSIFilter *)filterWithInitialRSSI:(float)rssi; + +-(id)initWithInitialSignalStrengthValue:(float)signalStrengthValue; +-(float)addSignalStrengthValue:(float)signalStrengthValue; + +@end diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMResourceValue+CocoaAdditions.h b/BT Vendor/EmmocoMobileFramework/Headers/EMResourceValue+CocoaAdditions.h new file mode 100644 index 0000000..7de58f9 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMResourceValue+CocoaAdditions.h @@ -0,0 +1,9 @@ +#import "EMResourceValue.h" + +@interface EMResourceValue (CocoaAdditions) + +-(void)setNSObjectValue:(id)object; + +-(id)NSObjectValue; + +@end diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMResourceValue.h b/BT Vendor/EmmocoMobileFramework/Headers/EMResourceValue.h new file mode 100644 index 0000000..44e36c5 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMResourceValue.h @@ -0,0 +1,246 @@ +// +// EMResourceValue.h +// Emmoco +// +// Created by bob frankel on 8/8/11. +// Copyright 2011 Emmoco, Inc.. All rights reserved. +// + +#import +#import "EMSerialPacket.h" + +@class EMSchema; +@class EMSerialPacket; +@class EMResourceValue; + +/** + * A protocol to define the methods that all EMResourceValue subclasses must define. + * + * Written by Carolyn Vaughan + */ + +@protocol EMResourceValueProtocol + +/** + * Internal initialization method used by EMResourceValue subclasses + * @param theName the name of this value + * @param theType the type of this value + * @param theResourceSchema the schema associated with this value + * @return this value + */ +- (id)initWithName:(NSString*)theName type:(NSString*)theType schema:(EMSchema*)theResourceSchema; + +/** + * Returns true if the type of this value is an Array, and false otherwise. + */ +- (BOOL)isArray; + +/** + * Returns true if the type of this value is a Num, and false otherwise. + */ +- (BOOL)isNum; + +/** + * Returns true if the type of this value is an Enum, and false otherwise. + */ +- (BOOL)isEnum; + +/** + * Returns true if the type of this value is a File, and false otherwise. + */ +- (BOOL)isFile; + +/** + * Returns true if the type of this value is an Int, and false otherwise. + */ +- (BOOL)isInt; + +/** + * Returns true if the type of this value is a String, and false otherwise. + */ +- (BOOL)isString; + +/** + * Returns true if the type of this value is scalar (Num, Enum, Int, String), and false otherwise. + */ +- (BOOL)isScalar; + +/** + * Return true if the type of this value is a Struct, and false otherwise. + */ +- (BOOL)isStruct; + +/** + * Return true if the type of this value is a Void, and false otherwise. + */ +- (BOOL)isVoid; + +/** + * Used to put the resource's value to the device + * @param buffer the data buffer being sent to the device + * + * The PUT is based on RESTful resourcing + */ +- (void)putData:(EMSerialPacket*)buffer; + +/** + * Used to get the resource's value from the device + * @param buffer the data buffer being received from the device + * @param size the amount of data the buffer holds + * + * The GET is based on RESTful resourcing + */ +- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket*)buffer; + +/** + * Assign a double value to a resource. + * @param value the value to be assigned, represented as a double + */ +- (void)setDoubleValue:(double)value; + +/** + * Assign a long value to a resource. For Num and Enum resources, this sets the ordinal value for the resource instead of setting the value directly. + * @param value the value to be assigned, represented as a long + */ +- (void)setLongValue:(long long)value; + +/** + * Assign a string value to a resource. + * @param value the value to be assigned, represented as a String + */ +- (void)setStringValue:(NSString*)value; + +/** + * This ResourceValue, as a double. + * @exception UsageError the type of this value is not a Num + */ +- (double)doubleValue; + +/** + * This ResourceValue, as a long. For Num and Enum resources, this returns the ordinal value for the resource instead of the actual value. + * @exception UsageError the type of this value is not a Scalar + */ +- (long long)longValue; + +/** + * This ResourceValue, as a String. + * @exception UsageError the type of this value is not a Scalar + */ +- (NSString*)stringValue; + +/** + * Assign another resource value's value to this resource value + * @param source the ResourceValue who's value you wish to assign to this EMResourceValue instance + */ +- (void)copyFromResource:(EMResourceValue*)source; + +/** + * Reset this ResourceValue to its initial state upon creation + */ +- (void)reset; + +/** + * The minimum numerical value for this ResourceValue. + */ +- (double)min; + +/** + * The maximum numerical value for this ResourceValue. + */ +- (double)max; + +/** + * The step for this ResourceValue. + */ +- (double)step; + +/** + * The maximum number of distinct values for this ResourceValue. + */ +- (long)length; + +/** + * An array of acceptable enum values for this ResourceValue. + */ +- (NSArray *)enumValues; + +/** + * An array of acceptable field names for this ResourceValue. + */ +- (NSArray *)fieldNames; + +/** + * Select a ResourceValue element from a ResourceValue Array by index + * @param index the element to be selected + * @return the indexed element + */ +- (EMResourceValue*)index:(int)index; + +/** + * Select a ResourceValue element from a ResourceValue Struct by field name + * @param fieldName the element to be selected + * @return the ResourceValue held in the selected field + */ +- (EMResourceValue*)select:(NSString*)fieldName; + +/** + * Return the end-of-file status for this ResourceValue File. For internal use only. + */ +- (BOOL)fileEof; + +/** + * Prepare a local file associated with this ResourceValue File for reading. For internal use only; + d*/ +- (void)fileFetch; + +/** + * Prepare a local file associated with this ResourceValue File for writing. For internal use only; + */ +- (void)fileStore; + +-(NSData *)fileData; + +@end + +/** + * A container for different types of resource values. + * Instances of this class are used to hold values for resources whose types is + * either Void, Int, Enum, Num, String, Struct, Array, or File. + * + * See also: + * + * - [EMSchema newResourceValueForResourceNamed:] + * + * Written by Bob Frankel and Carolyn Vaughan + */ +@interface EMResourceValue : NSObject { + +} + +/** + * The name of the resource. + */ +@property(readonly) NSString* name; + +/** + * The resource schema associated with the resource. + */ +@property(readonly) EMSchema* resourceSchema; + +/** + * The type of the resource. + */ +@property(readonly) NSString* type; + +- (int)valueSize; +/** + * Create a EMResourceValue. This method is used internally by the framework. + * @param name the name given to the newly-created value + * @param type the type of the newly-created value + * @param resourceSchema an EMSchema instance + * @return a new EMResourceValue instance + */ ++ (EMResourceValue*)resourceWithName:(NSString*)name ofType:(NSString*)type fromSchema:(EMSchema*)resourceSchema; + +@end + diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMSchema.h b/BT Vendor/EmmocoMobileFramework/Headers/EMSchema.h new file mode 100644 index 0000000..e219126 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMSchema.h @@ -0,0 +1,237 @@ +// +// EMSchema.h +// Emmoco +// +// Created by bob frankel on 8/7/11. +// Copyright 2011 Emmoco, Inc.. All rights reserved. +// + +#import +#import "EMResourceValue.h" + +typedef enum { + EMResourceAccessTypeRead = 1 << 0, + EMResourceAccessTypeWrite = 1 << 1, + EMResourceAccessTypeIndicate = 1 << 2, +} EMResourceAccessType; + +@class EMResourceValue; + +/** + * A set of meta-data describing a set of resources. + * Written by Bob Frankel and Carolyn Vaughan + */ +@interface EMSchema : NSObject { + +} + +/** + * Creates a EMResourceSchema instance from the contents of a file. + * @param fileName a file containing JSON content + * @return a newly created EMResourceSchema instance + */ ++ (EMSchema*)schemaFromFile:(NSString*)fileName; + +/** + * Get the read/write/indicator access capabilities of a named resource + * @param resourceName a valid resource name in this schema + * @return an NSString containing the characters 'r', 'w', and 'i' as appropriate + * @exception UsageError the resource name is invalid + */ +- (EMResourceAccessType)accessForResource:(NSString*)resourceName; + +/** + * Returns a sorted NSArray containing all application resource names in this schema + */ +- (NSArray*)applicationResources; + +/** + * Get the parameters associated with a number type. + * @param type a valid number type name in this schema + * @return a four-element NSArray holding the min, max, step, and prec parameters of this type + * @exception UsageError the number type name is invalid + */ +- (NSArray*)numberParametersForType:(NSString*)type; + +/** +* Get the representation type associated with a number type. +* @param type a valid number type name in this schema +* @return an integral representation type +* @exception UsageError the number type name is invalid +*/ +- (NSString*)numericRepresentationForType:(NSString*)type; + +/** + * Get the values associated with an enum type. + * @param type a valid enum type name in this schema + * @return a NSDictionary containing enum value names and their corresponding ordinal + * @exception UsageError the enum type name is invalid + */ +- (NSDictionary*)enumValuesForType:(NSString*)type; + +/** + * Get the names of the fields associated with a struct type. + * @param type a valid struct type name in this schema + * @return a NSArray containing field names + * @exception UsageError the struct type name is invalid + */ +- (NSArray*)fieldNamesForType:(NSString*)type; + +/** + * Get the fields associated with a struct type. + * @param type a valid struct type name in this schema + * @return a NSDictionary containing field names and their corresponding type code + * @exception UsageError the struct type name is invalid + */ +- (NSDictionary*)fieldsForType:(NSString*)type; + +/** + * Get the length of this string type. + * @param type a valid string type name in this schema + * @return the length of this string type + * @exception UsageError the string type name is invalid + */ +- (int)stringLengthForType:(NSString*)type; + +/** + * Returns the fully-qualified name of this schema. + */ +- (NSString*)name; + +/** + * Returns the protocol level of this schema + */ +- (int)protocolLevel; + +/** + * Returns an NSDictionary containing all resource names in this schema and their corresponding type code. + */ +- (NSDictionary*)resources; + +/** + * Returns the maximum size in bytes amongst all resource types in this schema. + */ +- (int)maxResourceSize; + +/** + * Get the alignment of a named resource + * @param resourceName a named resource in this schema + * @return the alignment in bytes of this resource + * @exception UsageError the resource name is invalid + */ +- (int)byteAlignmentForResource:(NSString*)resourceName; + +/** + * Get the unique id associated with a named resource + * @param resourceName a named resource in this schema + * @return the corresponding resource id + * @exception UsageError the resource name is invalid + */ +- (int)idForResource:(NSString*)resourceName; + +/** + * Get the resource name associated with this resource id + * @param resourceId a resource id + * @return the corresponding resource name + * @exception UsageError the resource id is invalid + * @see idForResource: + */ +- (NSString*)nameForResourceWithID:(NSInteger)resourceId; + +/** + * Get the size of a named resource + * @param resourceName a named resource in this schema + * @return the size in bytes of this resource + * @exception UsageError the resource name is invalid + */ +- (int)sizeForResourceNamed:(NSString*)resourceName; + +/** + * Get the size of a standard scalar type + * @param type a scalar type code + * @return the size in bytes of this standard type + * @exception UsageError the type code is invalid + */ +- (int)sizeForStandardType:(NSString*)type; + +/** + * Get the alignment of a standard scalar type + * @param type a scalar type code + * @return the alignment in bytes of this standard type + * @exception UsageError the type code is invalid + */ +- (int)alignmentForStandardType:(NSString*)type; + +/** + * Returns a sorted NSArray containing all system resource names in this schema + */ +- (NSArray*)systemResources; + +/** + * Get the type of a named resource + * @param resourceName the name of a resource in this schema + * @return the type code associated with this resource + * @exception UsageError the resource name is invalid + */ +- (NSString*)typeOfResourceNamed:(NSString*)resourceName; + +/** + * Returns the owner of the schema definition this schema was created from. + */ +- (NSString*)owner; + +/** + * Returns the version of the schema definition this schema was created from. + */ +- (NSString*)version; + +/** + * Returns the description associated with this schema. + */ +- (NSString*)schemaDescription; + +/** + * Returns the UUID associated with this schema. + */ +- (NSString*)UUID; + +/** + * Returns the UUID associated with this schema as an array of numbers. + */ +- (NSArray *)numericalUUID; + +/** + * Returns the build number associated with this schema as an array of numbers. + */ +- (NSArray *)buildDate; + +/** + * Returns the schema hash associated with this schema as an array of numbers. + */ +- (NSArray *)schemaHash; + +/** + * Returns the name of the resource that is being broadcast in the advertising packets. Returns nil if none. + */ +-(NSString *)broadcastResourceName; + +/** + * Create a new ResourceValue instance for a named resource. + * @param resourceName a named resource in this schema + * @return a newly created EMResourceValue to a value for this resource + * @exception UsageError the resource name is invalid + */ +- (EMResourceValue*)newResourceValueForResourceNamed:(NSString*)resourceName; + +/* + * TODO - fill in this documentation + */ +- (BOOL)validateResourceNamed:(NSString*)resourceName withAccess:(EMResourceAccessType)access; + +-(NSNumber *)embeddedProtocolNumber; + +-(int)packedSizeForType:(NSString*)type; +-(int)unpackedSizeForType:(NSString*)type; +-(NSArray *)fieldPackingsForType:(NSString*)type; + +@end diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMSerialPacket.h b/BT Vendor/EmmocoMobileFramework/Headers/EMSerialPacket.h new file mode 100644 index 0000000..4e10fbf --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMSerialPacket.h @@ -0,0 +1,46 @@ +// +// EMSerialPacket.h +// Emmoco +// +// Created by bob frankel on 8/18/11. +// Copyright 2011 Emmoco, Inc.. All rights reserved. +// + +#import +#import "EMSchema.h" +#import "EMChecksum.h" + +@class EMSchema; + +#define EM_MAX_DATA_SIZE 240 +#define EM_HEADER_SIZE 4 + +enum { + EMSerialPacket_NOP = 1 << 0, + EMSerialPacket_FETCH = 1 << 1, + EMSerialPacket_FETCH_DONE = 1 << 2, + EMSerialPacket_STORE = 1 << 3, + EMSerialPacket_STORE_DONE = 1 << 4, + EMSerialPacket_INDICATOR = 1 << 5 +}; +typedef NSUInteger EMSerialPacketKind; + +typedef struct EMSerialPacketHeader { + int size; + EMSerialPacketKind kind; + int resourceId; +} EMSerialPacketHeader; + +@interface EMSerialPacket : NSObject { + +} + +@property(readonly) uint8_t* buffer; +@property(readonly) int length; + +- (void)addInteger:(long long)anInt forByteSize:(int)size; +- (void)alignTo:(int)align; +- (void)rewind; +- (long long)scanIntegerForByteSize:(int)size asUnsigned:(BOOL)isUnsigned; + +@end diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMSignalStrengthFilter.h b/BT Vendor/EmmocoMobileFramework/Headers/EMSignalStrengthFilter.h new file mode 100644 index 0000000..241d8fc --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMSignalStrengthFilter.h @@ -0,0 +1,16 @@ +// +// EMSignalStrengthFilter.h +// EMFramework +// +// Created by Dexter Weiss on 8/9/13. +// Copyright (c) 2013 Emmoco. All rights reserved. +// + +#import + +@protocol EMSignalStrengthFilter + +-(id)initWithInitialSignalStrengthValue:(float)signalStrengthValue; +-(float)addSignalStrengthValue:(float)signalStrengthValue; + +@end diff --git a/BT Vendor/EmmocoMobileFramework/Headers/EMTypes.h b/BT Vendor/EmmocoMobileFramework/Headers/EMTypes.h new file mode 100644 index 0000000..9aa20fb --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/Headers/EMTypes.h @@ -0,0 +1,21 @@ +// +// EMDevice.h +// Emmoco +// +// Copyright 2012 Emmoco, Inc.. All rights reserved. +// + +typedef enum { + EMOperationStatusSuccess, + EMOperationStatusFailure +} EMOperationStatus; + +/* + * Block type used to doing callbacks to user programs. User programs define callbacks conforming to this + * block signature and the framework calls them back suppling status value and data object + */ +typedef void(^EMResourceBlock)(EMOperationStatus status, EMResourceValue *value); + +typedef void(^EMStatusBlock)(EMOperationStatus status); + +typedef void(^EMFailBlock)(NSError *error); \ No newline at end of file diff --git a/BT Vendor/EmmocoMobileFramework/README.md b/BT Vendor/EmmocoMobileFramework/README.md new file mode 100644 index 0000000..a2ec505 --- /dev/null +++ b/BT Vendor/EmmocoMobileFramework/README.md @@ -0,0 +1,18 @@ +# Adding EMFramework to your project +================== +### Library dependencies +1) libEMFramework.a +2) CoreBluetooth.framework + +================== + +### Add the headers to your project + +All headers found in the `EmmocoMobileFramework/Headers` folder should be included. + +================== + +### Add Schemas to your project + +Add the system.json file from the Assets/ directory into your application bundle. + diff --git a/BT Vendor/FirstAppExample/BT Vendor-Info.plist b/BT Vendor/FirstAppExample/BT Vendor-Info.plist new file mode 100644 index 0000000..c2dd093 --- /dev/null +++ b/BT Vendor/FirstAppExample/BT Vendor-Info.plist @@ -0,0 +1,82 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleDocumentTypes + + + CFBundleTypeIconFiles + + CFBundleTypeName + BT Vendor batch command file + CFBundleTypeRole + Editor + LSHandlerRank + Owner + LSItemContentTypes + + com.emmoco.BT-Vendor.batchfile + + + + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.emmoco.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1.0 + LSRequiresIPhoneOS + + UIMainStoryboardFile + MainStoryboard + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UTExportedTypeDeclarations + + + UTTypeConformsTo + + public.data + + UTTypeDescription + BT Vendor batch command file + UTTypeIdentifier + com.emmoco.BT-Vendor.batchfile + UTTypeTagSpecification + + public.filename-extension + + btvb + + public.mime-type + + application/btvendor + + + + + + diff --git a/BT Vendor/FirstAppExample/BT Vendor-Prefix.pch b/BT Vendor/FirstAppExample/BT Vendor-Prefix.pch new file mode 100644 index 0000000..743435c --- /dev/null +++ b/BT Vendor/FirstAppExample/BT Vendor-Prefix.pch @@ -0,0 +1,16 @@ +// +// 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/BT Vendor/FirstAppExample/BTAppDelegate.h b/BT Vendor/FirstAppExample/BTAppDelegate.h new file mode 100644 index 0000000..13b3d26 --- /dev/null +++ b/BT Vendor/FirstAppExample/BTAppDelegate.h @@ -0,0 +1,20 @@ +// +// DUREXAppDelegate.h +// TestAppExample +// +// Created by Dexter Weiss on 10/10/13. +// Copyright (c) 2013 Emmoco. All rights reserved. +// + +#import + +@interface BTAppDelegate : UIResponder + +@property (strong, nonatomic) UIWindow *window; +@property (nonatomic, strong) IBOutlet UINavigationController *navController; +@property (strong, nonatomic) NSURL *handledURL; +@property (strong,nonatomic) NSString *currentVersion; + + + +@end diff --git a/BT Vendor/FirstAppExample/BTAppDelegate.m b/BT Vendor/FirstAppExample/BTAppDelegate.m new file mode 100644 index 0000000..e11f3a7 --- /dev/null +++ b/BT Vendor/FirstAppExample/BTAppDelegate.m @@ -0,0 +1,101 @@ +// +// DUREXAppDelegate.m +// TestAppExample +// +// Created by Dexter Weiss on 10/10/13. +// Copyright (c) 2013 Emmoco. All rights reserved. +// + +#import "BTAppDelegate.h" +#import "EMFramework.h" +#import "EMDevicePickerViewController.h" +#import "MenuTableViewController.h" + +@interface BTAppDelegate () +{ + +} + +@end + +@implementation BTAppDelegate + +- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions +{ + UINavigationController *navController = (UINavigationController *)[[self window] rootViewController]; + [self setNavController:navController]; + [[self navController] setDelegate:self]; + + [[EMConnectionListManager sharedManager] startUpdating]; + + self.handledURL = nil; + self.currentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; + return YES; +} + +- (void)applicationWillResignActive:(UIApplication *)application +{ + // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. + // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. +} + +- (void)applicationDidEnterBackground:(UIApplication *)application +{ + // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. + // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. +} + +- (void)applicationWillEnterForeground:(UIApplication *)application +{ + [[EMConnectionListManager sharedManager] startUpdating]; +} + +- (void)applicationDidBecomeActive:(UIApplication *)application +{ + // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. +} + +- (void)applicationWillTerminate:(UIApplication *)application +{ + // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. +} + +#pragma mark - Navigation Controller + +- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated +{ + if ([viewController isKindOfClass:[EMDevicePickerViewController class]]) + { + [[EMConnectionManager sharedManager] disconnectWithSuccess:^ + { + + } + onFail:^(NSError *error) + { + + } + ]; + } +} + +- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url +{ + NSLog(@"[DUREXAppDelegate.m]: Handling URL %@",url); + if ([self.navController.topViewController isKindOfClass:[MenuTableViewController class]]) + { + MenuTableViewController *viewController = (MenuTableViewController*) self.navController.topViewController; + if (url != nil && [url isFileURL]) + { + NSLog(@"[DUREXAppDelegate.m]: Pushing URL to MenuTableViewController..."); + [viewController handleOpenURL:url]; + } + } + else + { + NSLog(@"[DUREXAppDelegate.m]: Storing handled URL..."); + self.handledURL = url; + } + return YES; +} + +@end diff --git a/BT Vendor/FirstAppExample/Base.lproj/EMConnectingView.xib b/BT Vendor/FirstAppExample/Base.lproj/EMConnectingView.xib new file mode 100644 index 0000000..c6ced56 --- /dev/null +++ b/BT Vendor/FirstAppExample/Base.lproj/EMConnectingView.xib @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/FirstAppExample/Base.lproj/MainStoryboard.storyboard b/BT Vendor/FirstAppExample/Base.lproj/MainStoryboard.storyboard new file mode 100644 index 0000000..4c52fae --- /dev/null +++ b/BT Vendor/FirstAppExample/Base.lproj/MainStoryboard.storyboard @@ -0,0 +1,294 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/BT Vendor/FirstAppExample/DUREXAppViewController.h b/BT Vendor/FirstAppExample/DUREXAppViewController.h new file mode 100644 index 0000000..a729ea2 --- /dev/null +++ b/BT Vendor/FirstAppExample/DUREXAppViewController.h @@ -0,0 +1,8 @@ +#import + + +@interface DUREXAppViewController : UITableViewController + + + +@end diff --git a/BT Vendor/FirstAppExample/DUREXAppViewController.m b/BT Vendor/FirstAppExample/DUREXAppViewController.m new file mode 100644 index 0000000..05c3af0 --- /dev/null +++ b/BT Vendor/FirstAppExample/DUREXAppViewController.m @@ -0,0 +1,80 @@ +#import "DUREXAppViewController.h" +#import "EMFramework.h" +#import "CommunicationProtocol.h" + +@interface DUREXAppViewController () +{ + IBOutlet UIActivityIndicatorView *_activityIndicator; + NSTimer *_writeTimer; +} +@property (nonatomic,strong) CommunicationProtocol* protocol; + +@end + +@implementation DUREXAppViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) + { + // Custom initialization + } + return self; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + [_activityIndicator setHidden:YES]; + [self setTitle:@"DUREX Vendor Control"]; + _protocol = [CommunicationProtocol sharedProtocol]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveNotification:) name:kEMConnectionDidReceiveIndicatorNotificationName object:nil]; + [[EMConnectionManager sharedManager] addObserver:self forKeyPath:@"connectionState" options:0 context:NULL]; + [_protocol setMessageAvailable:false]; +} + +-(void)didReceiveNotification:(NSNotification*) notification +{ + id notificationValue = [[notification userInfo] objectForKey:kEMIndicatorResourceValueKey]; + NSString *resourceName = [[notification userInfo] objectForKey:kEMIndicatorNameKey]; + if([resourceName isEqualToString:@"messageAvailable"]) + { + NSString *resourceValue = [notificationValue stringValue]; + if([resourceValue isEqualToString:@"TRUE"]) + { + [_protocol setMessageAvailable:TRUE]; + } + else + { + [_protocol setMessageAvailable:FALSE]; + } + } +} + +-(void)dealloc +{ + [[EMConnectionManager sharedManager] removeObserver:self forKeyPath:@"connectionState"]; + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context +{ + if (object == [EMConnectionManager sharedManager]) + { + if ([keyPath isEqualToString:@"connectionState"]) + { + if ([[EMConnectionManager sharedManager] connectionState] == EMConnectionStateDisrupted) + { + [[self navigationController] popToRootViewControllerAnimated:YES]; + } + } + } +} + +#pragma mark - Interface actions + + + + +@end \ No newline at end of file diff --git a/BT Vendor/FirstAppExample/EMDevicePickerViewController.h b/BT Vendor/FirstAppExample/EMDevicePickerViewController.h new file mode 100644 index 0000000..6caaba7 --- /dev/null +++ b/BT Vendor/FirstAppExample/EMDevicePickerViewController.h @@ -0,0 +1,13 @@ +// +// EMDevicePickerViewController.h +// TestAppExample +// +// Created by Dexter Weiss on 10/10/13. +// Copyright (c) 2013 Emmoco. All rights reserved. +// + +#import + +@interface EMDevicePickerViewController : UITableViewController + +@end diff --git a/BT Vendor/FirstAppExample/EMDevicePickerViewController.m b/BT Vendor/FirstAppExample/EMDevicePickerViewController.m new file mode 100644 index 0000000..6f5ec4f --- /dev/null +++ b/BT Vendor/FirstAppExample/EMDevicePickerViewController.m @@ -0,0 +1,144 @@ +// +// EMDevicePickerViewController.m +// TestAppExample +// +// Created by Dexter Weiss on 10/10/13. +// Copyright (c) 2013 Emmoco. All rights reserved. +// + +#import "EMDevicePickerViewController.h" +#import "EMFramework.h" +#import + +@interface EMDevicePickerViewController () + +@property (nonatomic, strong) IBOutlet UIView *connectingView; +@property (nonatomic, strong) IBOutlet UIActivityIndicatorView *activityIndicator; +@property (nonatomic, strong) IBOutlet UIView *popoverView; + +@end + +@implementation EMDevicePickerViewController + + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) + { + // Custom initialization + } + return self; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + [[EMConnectionManager sharedManager] setBackgroundUpdatesEnabled:TRUE]; + [[EMConnectionListManager sharedManager] addObserver:self forKeyPath:@"devices" options:0 context:NULL]; +} + +-(void)_showConnectingView +{ + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + [[NSBundle mainBundle] loadNibNamed:@"EMConnectingView_iPad_Landscape" owner:self options:nil]; + } + else + { + [[NSBundle mainBundle] loadNibNamed:@"EMConnectingView_iPad" owner:self options:nil]; + } + } + else + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + [[NSBundle mainBundle] loadNibNamed:@"EMConnectingView" owner:self options:nil]; + } + else + { + [[NSBundle mainBundle] loadNibNamed:@"EMConnectingView_Landscape" owner:self options:nil]; + } + } + [[[self popoverView] layer] setCornerRadius:10.0f]; + [[self view] addSubview:[self connectingView]]; + [[self activityIndicator] startAnimating]; +} + +-(void)_hideConnectingView +{ + [[self activityIndicator] stopAnimating]; + [[self connectingView] removeFromSuperview]; +} + +-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context +{ + if (object == [EMConnectionListManager sharedManager]) + { + [[self tableView] reloadData]; + } +} + +#pragma mark - Table View Methods + +-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return 1; +} + +-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return MAX([[[EMConnectionListManager sharedManager] devices] count], 1); +} + +-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + UITableViewCell *deviceCell = [tableView dequeueReusableCellWithIdentifier:@"DeviceCell"]; + [[deviceCell detailTextLabel] setTextColor:[UIColor darkGrayColor]]; + + EMDeviceBasicDescription *description = nil; + if ([indexPath row] < [[[EMConnectionListManager sharedManager] devices] count]) + { + description = [[[EMConnectionListManager sharedManager] devices] objectAtIndex:[indexPath row]]; + } + + if (description) + { + [[deviceCell textLabel] setText:[description name]]; + [[deviceCell detailTextLabel] setText:[NSString stringWithFormat:NSLocalizedString(@"Signal Strength: %0.0f",nil), [description signalStrength]]]; + } + else + { + [[deviceCell textLabel] setText:NSLocalizedString(@"Searching for devices...", @"No devices found string")]; + [[deviceCell detailTextLabel] setText:nil]; + } + + return deviceCell; +} + +-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + [self performSegueWithIdentifier:@"ConnectionSegue" sender:self]; + if(![[[[tableView cellForRowAtIndexPath:indexPath] textLabel] text] isEqualToString:NSLocalizedString(@"Searching for devices...",nil)]) + { + [self _showConnectingView]; + EMDeviceBasicDescription *description = [[[EMConnectionListManager sharedManager] devices] objectAtIndex:[indexPath row]]; + [[EMConnectionManager sharedManager] connectDevice:description onSuccess:^ + { + [self _hideConnectingView]; + [self performSegueWithIdentifier:@"ConnectionSegue" sender:self]; + } + onFail:^(NSError *error) + { + [self _hideConnectingView]; + UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Connection Failed", @"Alert title") message:NSLocalizedString(@"An error occurred while trying to connect to the selected device", @"Alert message") delegate:nil cancelButtonTitle:NSLocalizedString(@"Close", @"Close button") otherButtonTitles:nil]; + [alert show]; + } + ]; + } + [tableView deselectRowAtIndexPath:indexPath animated:YES]; +} + +@end diff --git a/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/29 - App Icon_2x.png b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/29 - App Icon_2x.png new file mode 100644 index 0000000..b21e3ee Binary files /dev/null and b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/29 - App Icon_2x.png differ diff --git a/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/40 - App Icon_2x.png b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/40 - App Icon_2x.png new file mode 100644 index 0000000..afa08ea Binary files /dev/null and b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/40 - App Icon_2x.png differ diff --git a/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/60 - App Icon_2x.png b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/60 - App Icon_2x.png new file mode 100644 index 0000000..40c2e1d Binary files /dev/null and b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/60 - App Icon_2x.png differ diff --git a/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_1x.png b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_1x.png new file mode 100644 index 0000000..3185ed8 Binary files /dev/null and b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_1x.png differ diff --git a/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_2x.png b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_2x.png new file mode 100644 index 0000000..162af87 Binary files /dev/null and b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_2x.png differ diff --git a/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/Contents.json b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..406ab94 --- /dev/null +++ b/BT Vendor/FirstAppExample/Images.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,93 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "1x" + }, + { + "size" : "29x29", + "idiom" : "iphone", + "filename" : "29 - App Icon_2x.png", + "scale" : "2x" + }, + { + "size" : "40x40", + "idiom" : "iphone", + "filename" : "40 - App Icon_2x.png", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "1x" + }, + { + "idiom" : "iphone", + "size" : "57x57", + "scale" : "2x" + }, + { + "size" : "60x60", + "idiom" : "iphone", + "filename" : "60 - App Icon_2x.png", + "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" : "50x50", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "50x50", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "72x72", + "scale" : "2x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "76 - App Icon_1x.png", + "scale" : "1x" + }, + { + "size" : "76x76", + "idiom" : "ipad", + "filename" : "76 - App Icon_2x.png", + "scale" : "2x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/BT Vendor/FirstAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json b/BT Vendor/FirstAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json new file mode 100644 index 0000000..c79ebd3 --- /dev/null +++ b/BT Vendor/FirstAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json @@ -0,0 +1,23 @@ +{ + "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" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/BT Vendor/FirstAppExample/en.lproj/EMConnectingView.strings b/BT Vendor/FirstAppExample/en.lproj/EMConnectingView.strings new file mode 100644 index 0000000..9388121 --- /dev/null +++ b/BT Vendor/FirstAppExample/en.lproj/EMConnectingView.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "vOa-V6-aku"; */ +"vOa-V6-aku.text" = "Connecting to device"; diff --git a/BT Vendor/FirstAppExample/en.lproj/MainStoryboard.strings b/BT Vendor/FirstAppExample/en.lproj/MainStoryboard.strings new file mode 100644 index 0000000..7b6aa31 --- /dev/null +++ b/BT Vendor/FirstAppExample/en.lproj/MainStoryboard.strings @@ -0,0 +1,24 @@ + +/* Class = "IBUILabel"; text = "Subtitle"; ObjectID = "0cU-st-98u"; */ +"0cU-st-98u.text" = "Subtitle"; + +/* Class = "IBUILabel"; text = "Detail"; ObjectID = "2Zv-NQ-q8W"; */ +"2Zv-NQ-q8W.text" = "Detail"; + +/* Class = "IBUINavigationItem"; title = "Connected to: "; ObjectID = "2rA-9H-FRE"; */ +"2rA-9H-FRE.title" = "Connected to: "; + +/* Class = "IBUILabel"; text = "Title"; ObjectID = "C5J-Ml-IpR"; */ +"C5J-Ml-IpR.text" = "Title"; + +/* Class = "IBUILabel"; text = "Title"; ObjectID = "W3U-nk-SlV"; */ +"W3U-nk-SlV.text" = "Title"; + +/* Class = "IBUINavigationItem"; title = "Select device"; ObjectID = "exc-MP-jDa"; */ +"exc-MP-jDa.title" = "Select device"; + +/* Class = "IBUILabel"; text = "Title"; ObjectID = "iCG-eW-H8x"; */ +"iCG-eW-H8x.text" = "Title"; + +/* Class = "IBUILabel"; text = "Connect to Device"; ObjectID = "oyW-sA-Lfb"; */ +"oyW-sA-Lfb.text" = "Connect to Device"; diff --git a/BT Vendor/FirstAppExample/es.lproj/EMConnectingView.strings b/BT Vendor/FirstAppExample/es.lproj/EMConnectingView.strings new file mode 100644 index 0000000..aed6276 --- /dev/null +++ b/BT Vendor/FirstAppExample/es.lproj/EMConnectingView.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "vOa-V6-aku"; */ +"vOa-V6-aku.text" = "Realizando conexión"; diff --git a/BT Vendor/FirstAppExample/es.lproj/MainStoryboard.strings b/BT Vendor/FirstAppExample/es.lproj/MainStoryboard.strings new file mode 100644 index 0000000..c0e62f7 --- /dev/null +++ b/BT Vendor/FirstAppExample/es.lproj/MainStoryboard.strings @@ -0,0 +1,24 @@ + +/* Class = "IBUILabel"; text = "Subtitle"; ObjectID = "0cU-st-98u"; */ +"0cU-st-98u.text" = "Subtitle"; + +/* Class = "IBUILabel"; text = "Detail"; ObjectID = "2Zv-NQ-q8W"; */ +"2Zv-NQ-q8W.text" = "Detail"; + +/* Class = "IBUINavigationItem"; title = "Connected to: "; ObjectID = "2rA-9H-FRE"; */ +"2rA-9H-FRE.title" = "Conectado a: "; + +/* Class = "IBUILabel"; text = "Title"; ObjectID = "C5J-Ml-IpR"; */ +"C5J-Ml-IpR.text" = "Title"; + +/* Class = "IBUILabel"; text = "Title"; ObjectID = "W3U-nk-SlV"; */ +"W3U-nk-SlV.text" = "Title"; + +/* Class = "IBUINavigationItem"; title = "Select device"; ObjectID = "exc-MP-jDa"; */ +"exc-MP-jDa.title" = "Seleccione el dispositivo"; + +/* Class = "IBUILabel"; text = "Title"; ObjectID = "iCG-eW-H8x"; */ +"iCG-eW-H8x.text" = "Title"; + +/* Class = "IBUILabel"; text = "Connect to Device"; ObjectID = "oyW-sA-Lfb"; */ +"oyW-sA-Lfb.text" = "Conectarse al dispositivo"; diff --git a/BT Vendor/FirstAppExample/main.m b/BT Vendor/FirstAppExample/main.m new file mode 100644 index 0000000..15aca4e --- /dev/null +++ b/BT Vendor/FirstAppExample/main.m @@ -0,0 +1,18 @@ +// +// main.m +// TestAppExample +// +// Created by Dexter Weiss on 10/10/13. +// Copyright (c) 2013 Emmoco. All rights reserved. +// + +#import + +#import "BTAppDelegate.h" + +int main(int argc, char * argv[]) +{ + @autoreleasepool { + return UIApplicationMain(argc, argv, nil, NSStringFromClass([BTAppDelegate class])); + } +} diff --git a/BT Vendor/FirstAppExampleTests/FirstAppTests-Info.plist b/BT Vendor/FirstAppExampleTests/FirstAppTests-Info.plist new file mode 100644 index 0000000..b906695 --- /dev/null +++ b/BT Vendor/FirstAppExampleTests/FirstAppTests-Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIdentifier + com.emmoco.${PRODUCT_NAME:rfc1034identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundlePackageType + BNDL + CFBundleShortVersionString + 1.0 + CFBundleSignature + ???? + CFBundleVersion + 1 + + diff --git a/BT Vendor/FirstAppExampleTests/TestAppExampleTests.m b/BT Vendor/FirstAppExampleTests/TestAppExampleTests.m new file mode 100644 index 0000000..334ae3f --- /dev/null +++ b/BT Vendor/FirstAppExampleTests/TestAppExampleTests.m @@ -0,0 +1,34 @@ +// +// TestAppExampleTests.m +// TestAppExampleTests +// +// Created by Dexter Weiss on 10/10/13. +// Copyright (c) 2013 Emmoco. All rights reserved. +// + +#import + +@interface TestAppExampleTests : XCTestCase + +@end + +@implementation TestAppExampleTests + +- (void)setUp +{ + [super setUp]; + // Put setup code here. This method is called before the invocation of each test method in the class. +} + +- (void)tearDown +{ + // Put teardown code here. This method is called after the invocation of each test method in the class. + [super tearDown]; +} + +- (void)testExample +{ + XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); +} + +@end diff --git a/BT Vendor/FirstAppExampleTests/en.lproj/InfoPlist.strings b/BT Vendor/FirstAppExampleTests/en.lproj/InfoPlist.strings new file mode 100644 index 0000000..477b28f --- /dev/null +++ b/BT Vendor/FirstAppExampleTests/en.lproj/InfoPlist.strings @@ -0,0 +1,2 @@ +/* Localized versions of Info.plist keys */ + diff --git a/BT Vendor/Incident.h b/BT Vendor/Incident.h new file mode 100644 index 0000000..68703b2 --- /dev/null +++ b/BT Vendor/Incident.h @@ -0,0 +1,18 @@ +// +// Incident.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 10/8/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import +#import "CommunicationProtocol.h" + +@interface Incident : NSObject + +@property NSString *errorCode; +@property NSString *errorValue; +@property NSDate *incidentTime; + +@end \ No newline at end of file diff --git a/BT Vendor/Incident.m b/BT Vendor/Incident.m new file mode 100644 index 0000000..7187121 --- /dev/null +++ b/BT Vendor/Incident.m @@ -0,0 +1,13 @@ +// +// Incident.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 10/8/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "Incident.h" + +@implementation Incident + +@end \ No newline at end of file diff --git a/BT Vendor/IncidentLog.h b/BT Vendor/IncidentLog.h new file mode 100644 index 0000000..42139c0 --- /dev/null +++ b/BT Vendor/IncidentLog.h @@ -0,0 +1,21 @@ +// +// IncidentLog.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 10/8/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import +#import "CommunicationProtocol.h" +#import "Incident.h" + +@interface IncidentLog : NSObject + +@property (strong,nonatomic) NSString *response; +@property (strong,nonatomic) NSMutableArray *incidents; + +- (id) init; +- (void) setResponseValue:(NSString *)response; + +@end diff --git a/BT Vendor/IncidentLog.m b/BT Vendor/IncidentLog.m new file mode 100644 index 0000000..f1c5bdc --- /dev/null +++ b/BT Vendor/IncidentLog.m @@ -0,0 +1,55 @@ +// +// IncidentLog.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 10/8/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "IncidentLog.h" + +@implementation IncidentLog + +- (id) init +{ + [self setIncidents:[[NSMutableArray alloc] init]]; + return self; +} + +- (void) setResponseValue:(NSString *)response +{ + [self setResponse: response]; + [self parseResponse]; +} + +- (void) parseResponse +{ + NSInteger currentIncident = 0; + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; + NSDateComponents *incidentDate = [[NSDateComponents alloc] init]; + NSInteger currentYear = [[calendar components:units fromDate:[NSDate date]] year]; + currentYear = (currentYear/100)*100; + while(![[[self response] substringWithRange:NSMakeRange((currentIncident*INCIDENT_STRING_LENGTH), 4)] isEqualToString:@"P3P3"]) + { + Incident *incident = [[Incident alloc] init]; + [incidentDate setYear:(currentYear + [[[self response] substringWithRange:NSMakeRange(2 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue])]; + [incidentDate setMonth:[[[self response] substringWithRange:NSMakeRange(4 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue]]; + [incidentDate setDay:[[[self response] substringWithRange:NSMakeRange(6 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue]]; + [incidentDate setHour:[[[self response] substringWithRange:NSMakeRange(8 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue]]; + [incidentDate setMinute:[[[self response] substringWithRange:NSMakeRange(10 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue]]; + [incidentDate setMinute:[[[self response] substringWithRange:NSMakeRange(12 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue]]; + [incident setIncidentTime:[calendar dateFromComponents:incidentDate]]; + NSLog(@"date: %@",[calendar dateFromComponents:incidentDate]); + [incident setErrorCode:[[self response] substringWithRange:NSMakeRange(14 + currentIncident*INCIDENT_STRING_LENGTH, 2)]]; + NSLog(@"errorCode: %@",[incident errorCode]); + [incident setErrorValue:[[self response] substringWithRange:NSMakeRange(16 + currentIncident*INCIDENT_STRING_LENGTH, 4)]]; + NSLog(@"errorValue: %@",[incident errorValue]); + [[self incidents] insertObject:incident atIndex:currentIncident]; + currentIncident++; + } + NSLog(@"%@",[self incidents]); +} + +@end + diff --git a/BT Vendor/InitialViewController.h b/BT Vendor/InitialViewController.h new file mode 100644 index 0000000..20a1562 --- /dev/null +++ b/BT Vendor/InitialViewController.h @@ -0,0 +1,19 @@ +// +// InitialViewController.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 5/22/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import + +@interface InitialViewController : UIViewController + +@property (nonatomic,strong) IBOutlet UIButton *connectButton; +@property (nonatomic,strong) IBOutlet UILabel *label; + +- (IBAction) connectPressed:(UIButton*)button; + + +@end diff --git a/BT Vendor/InitialViewController.m b/BT Vendor/InitialViewController.m new file mode 100644 index 0000000..2fafbf9 --- /dev/null +++ b/BT Vendor/InitialViewController.m @@ -0,0 +1,55 @@ +// +// InitialViewController.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 5/22/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "InitialViewController.h" + +@interface InitialViewController () + +@end + +@implementation InitialViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} + +- (void)viewDidLoad +{ + [super viewDidLoad]; + // Do any additional setup after loading the view. + [[self label] sizeToFit]; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +- (IBAction) connectPressed:(UIButton*)button +{ + [self performSegueWithIdentifier:@"ShowDevices" sender:self]; +} + +/* +#pragma mark - Navigation + +// In a storyboard-based application, you will often want to do a little preparation before navigation +- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender +{ + // Get the new view controller using [segue destinationViewController]. + // Pass the selected object to the new view controller. +} +*/ + +@end diff --git a/BT Vendor/MenuTableViewController.h b/BT Vendor/MenuTableViewController.h new file mode 100644 index 0000000..1ac5929 --- /dev/null +++ b/BT Vendor/MenuTableViewController.h @@ -0,0 +1,92 @@ +// +// MenuTableViewController.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 5/23/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import +#import "EMFramework.h" +#import "CommunicationProtocol.h" +#import "Stack.h" +#import "DatePickerViewController.h" +#import "PriceChangerViewController.h" +#import "NameChangerViewController.h" +#import "DateRangePickerViewController.h" +#import "Sensors.h" +#import "SalesLog.h" +#import "IncidentLog.h" +#import "UIView+Toast.h" +#import "ChildViewController.h" + +#define num(x) [NSNumber numberWithUnsignedInt:x] + +#define BATCH_ALERT_TAG 200 + +#define CELL_CARAT_TAG 100 + +#define MENU_ELEMENTS @"[1000]Maintenance",@"[1001]Basic Configuration" +#define MENU_CELLS_PER_SECTION num(2) +#define MENU_HEADERS nil + +#define MAINTENANCE_ELEMENTS @">[2000]Channels Present",@">[2001]Product Present in Channel",@">[2002]Channel Engine Status",@"[2003]Door Sensor",@"[2004]Coil Sensor",@">[2005]Money Collected",@">[2006]Money Returned",@">[2007]Products Sold",@">[2008]Change Available",@"[2009]Sales log",@"[2010]Incident report",@"[2011]Send report" +#define MAINTENANCE_CHANNELS @"*Channel 1",@"*Channel 2",@"*Channel 3",@"*Channel 4",@"*Channel 5",@"*Channel 6",@"*Channel 7",@"*Channel 8",@"*Channel 9",@"*Channel 10",@"*Channel 11",@"*Channel 12",@"*Channel 13",@"*Channel 14",@"*Channel 15",@"*Channel 16" +#define MAINTENANCE_MONEY_IN @"*20€ Notes",@"*10€ Notes",@"*5€ Notes",@"*2€ Coins",@"*1€ Coins",@"*50c Coins" +#define MAINTENANCE_MONEY_OUT @"*2€ Coins",@"*1€ Coins",@"*50c Coins" +#define MAINTENANCE_CHANGE @"*1€ Coins",@"*50c Coins" +#define MAINTENANCE_PRODUCTS @"*Product 1",@"*Product 2",@"*Product 3",@"*Product 4",@"*Product 5",@"*Product 6",@"*Product 7",@"*Product 8",@"*Product 9",@"*Product 10",@"*Product 11",@"*Product 12",@"*Product 13",@"*Product 14",@"*Product 15",@"*Product 16" +#define MAINTENANCE_CELLS_PER_SECTION num(9),num(3) +#define MAINTENANCE_HEADERS NSLocalizedString(@"Sensors", nil),NSLocalizedString(@"Commands", nil) + +#define SALE_ELEMENTS @">[3000]Money Paid",@"[3001]Channel",@"[3002]Product Code",@"[3003]Product Price",@">[3004]Money Returned" +#define SALE_MONEY_PAID @"*20€ Notes",@"*10€ Notes",@"*5€ Notes",@"*2€ Coins",@"*1€ Coins",@"*50c Coins" +#define SALE_MONEY_RETURNED @"*2€ Coins",@"*1€ Coins",@"*50c Coins" +#define SALE_CELLS_PER_SECTION num(5) +#define SALE_HEADERS nil + +#define INCIDENT_ELEMENTS @">[5000]Error Code",@"[5001]Error Value" +#define INCIDENT_CELLS_PER_SECTION num(2) +#define INCIDENT_HEADERS nil + +#define CONFIGURATION_ELEMENTS @"[4000]Update Date & Time",@"[4001]Update product price",@"[4002]Update product name" +#define CONFIGURATION_CELLS_PER_SECTION num(3) +#define CONFIGURATION_HEADERS nil + +#define CELL_IDENTIFIERS @"MenuCell",@"MaintenanceCell",@"SaleListCell",@"SaleCell",@"IncidentListCell",@"IncidentCell",@"ConfigCell",@"ReportCell" + +enum { + MENU = 0, + MAINTENANCE, + SALE_LIST, + SALE, + INCIDENT_LIST, + INCIDENT, + BASIC_CONFIGURATION, + REPORT, +} navigationLevel; + +enum { + HELLO = 0, + A2, + A3, + A4, + A5, + A6, + A7, + BATCH_COMMANDS, + INVALID_COMMAND, + NONE, +} commandTypes; + +enum { + SALES_LOG = 0, + INCIDENT_LOG, +} logType; + +@interface MenuTableViewController : UITableViewController + +- (void) navBack; +- (void) handleOpenURL: (NSURL*) url; + +@end diff --git a/BT Vendor/MenuTableViewController.m b/BT Vendor/MenuTableViewController.m new file mode 100644 index 0000000..86be65f --- /dev/null +++ b/BT Vendor/MenuTableViewController.m @@ -0,0 +1,1756 @@ +// +// MenuTableViewController.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 5/23/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "MenuTableViewController.h" + +@interface MenuTableViewController () +{ + IBOutlet UIActivityIndicatorView *_activityIndicator; + NSTimer *_writeTimer; +} + +//NAVIGATION LEVELS LAYOUT AND CELL IDENTIFIERS +@property (nonatomic,strong) const NSMutableArray *menuElements; +@property (nonatomic,strong) const NSMutableArray *menuStructure; +@property (nonatomic,strong) const NSMutableArray *menuHeaders; + +@property (nonatomic,strong) const NSMutableArray *maintenanceElements; +@property (nonatomic,strong) const NSMutableArray *maintenanceStructure; +@property (nonatomic,strong) const NSMutableArray *maintenanceHeaders; + +@property (nonatomic,strong) const NSMutableArray *saleListElements; +@property (nonatomic,strong) const NSMutableArray *saleListStructure; +@property (nonatomic,strong) const NSMutableArray *saleListHeaders; + +@property (nonatomic,strong) const NSMutableArray *saleElements; +@property (nonatomic,strong) const NSMutableArray *saleStructure; +@property (nonatomic,strong) const NSMutableArray *saleHeaders; + +@property (nonatomic,strong) const NSMutableArray *incidentListElements; +@property (nonatomic,strong) const NSMutableArray *incidentListStructure; +@property (nonatomic,strong) const NSMutableArray *incidentListHeaders; + +@property (nonatomic,strong) const NSMutableArray *incidentElements; +@property (nonatomic,strong) const NSMutableArray *incidentStructure; +@property (nonatomic,strong) const NSMutableArray *incidentHeaders; + +@property (nonatomic,strong) const NSMutableArray *configElements; +@property (nonatomic,strong) const NSMutableArray *configStructure; +@property (nonatomic,strong) const NSMutableArray *configHeaders; + +@property (nonatomic,strong) const NSArray *cellIdentifiers; + +//GENERAL ATTRIBUTES +@property (nonatomic,strong) CommunicationProtocol* protocol; +@property (strong,nonatomic) NSString *machineMACAddr; +@property (strong,nonatomic) BTAppDelegate *appDelegate; +@property (strong,nonatomic) Stack *parentLayout; +@property (strong,nonatomic) NSTimer *timeoutTimer; +@property (strong,nonatomic) NSMutableArray *batchCommands; + +@property (strong,nonatomic) Sensors *sensorStatus; +@property (strong,nonatomic) SalesLog *salesLog; +@property (strong,nonatomic) Sale *currentSale; +@property (strong,nonatomic) IncidentLog *incidentLog; +@property (strong,nonatomic) Incident *currentIncident; +@property uint8_t requestedLog; +@property uint8_t sentCommand; + +@property (strong,nonatomic) NSMutableArray *childViewControllers; +@property uint8_t currentNavLevel; +@property Boolean showIndexes; +@property (strong,nonatomic) NSString *currentCellIdentifier; +@property (strong,nonatomic) const NSMutableArray *currentElements; +@property (strong,nonatomic) const NSMutableArray *currentStructure; +@property (strong,nonatomic) const NSMutableArray *currentHeaders; + +@property (strong,nonatomic) DatePickerViewController *datePickerViewController; +@property (strong,nonatomic) PriceChangerViewController *priceChangerViewController; +@property (strong,nonatomic) NameChangerViewController *nameChangerViewController; +@property (strong,nonatomic) DateRangePickerViewController *dateRangePickerViewController; +@end + +@implementation MenuTableViewController + +//NAVIGATION LEVELS GENERATION AND NAVIGATION +- (void) initializeMenuEntries +{ + [self setMenuElements:[[NSMutableArray alloc] initWithObjects:MENU_ELEMENTS, nil]]; + [self setMenuStructure:[[NSMutableArray alloc] initWithObjects:MENU_CELLS_PER_SECTION, nil]]; + if([[self menuStructure] count] > 1) + { + [self setMenuHeaders:[[NSMutableArray alloc] initWithObjects:MENU_HEADERS, nil]]; + } + else + { + [self setMenuHeaders:nil]; + } + + [self setConfigElements:[[NSMutableArray alloc] initWithObjects:CONFIGURATION_ELEMENTS, nil]]; + [self setConfigStructure:[[NSMutableArray alloc] initWithObjects:CONFIGURATION_CELLS_PER_SECTION, nil]]; + if([[self configStructure] count] > 1) + { + [self setConfigHeaders:[[NSMutableArray alloc] initWithObjects:CONFIGURATION_HEADERS, nil]]; + } + else + { + [self setConfigHeaders:nil]; + } + + [self setCellIdentifiers:[[NSArray alloc] initWithObjects:CELL_IDENTIFIERS, nil]]; +} + +- (void) generateMaintenanceLevel +{ + //Initialize sensor status + [self setMaintenanceElements:[[NSMutableArray alloc] initWithObjects:MAINTENANCE_ELEMENTS, nil]]; + [self setMaintenanceStructure:[[NSMutableArray alloc] initWithObjects:MAINTENANCE_CELLS_PER_SECTION, nil]]; + if([[self maintenanceStructure] count] > 1) + { + [self setMaintenanceHeaders:[[NSMutableArray alloc] initWithObjects:MAINTENANCE_HEADERS, nil]]; + } + else + { + [self setMaintenanceHeaders:nil]; + } +} + +- (void) generateSaleListNavLevel +{ + NSMutableArray *dateArray = [[NSMutableArray alloc] init]; + NSMutableArray *dateHeaderArray = [[NSMutableArray alloc] init]; + NSMutableArray *dateStructure = [[NSMutableArray alloc] init]; + NSUInteger headerPos = 0; + NSUInteger headerCount = 0; + NSString *lastDate = @""; + NSString *currentDate; + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; + for(int i = 0; i < [[[self salesLog] sales]count]; i++) + { + Sale *currentSale = [[[self salesLog] sales]objectAtIndex:i]; + NSDateComponents *components = [calendar components:units fromDate:[currentSale saleTime]]; + [dateArray insertObject:[NSString stringWithFormat:@"[%d%d%d%d%d]%02d/%02d/%d %02d:%02d",[components day],[components month],[components year],[components hour],[components minute],[components day],[components month],[components year],[components hour],[components minute]] atIndex:i]; + currentDate = [NSString stringWithFormat:@"%02d/%d",[components month],[components year]]; + if([lastDate isEqualToString:@""]) + { + headerCount = 1; + lastDate = currentDate; + } + else if(![currentDate isEqualToString:lastDate]) + { + [dateStructure insertObject:[NSNumber numberWithInt:headerCount] atIndex:headerPos]; + [dateHeaderArray insertObject:lastDate atIndex:headerPos]; + headerCount = 1; + headerPos++; + lastDate = currentDate; + } + else + { + headerCount++; + } + } + [dateStructure insertObject:[NSNumber numberWithInt:headerCount] atIndex:headerPos]; + [dateHeaderArray insertObject:lastDate atIndex:headerPos]; + [self setSaleListElements:[[NSMutableArray alloc] initWithArray:dateArray]]; + [self setSaleListStructure:[[NSMutableArray alloc] initWithArray:dateStructure]]; + [self setSaleListHeaders:[[NSMutableArray alloc] initWithArray:dateHeaderArray]]; +} + +- (Boolean) generateSaleNavLevel : (NSInteger) numSale +{ + [self setSaleElements:[[NSMutableArray alloc] initWithObjects:SALE_ELEMENTS, nil]]; + [self setSaleStructure:[[NSMutableArray alloc] initWithObjects:SALE_CELLS_PER_SECTION, nil]]; + if([[self saleStructure] count] > 1) + { + [self setSaleHeaders:[[NSMutableArray alloc] initWithObjects:SALE_HEADERS, nil]]; + } + else + { + [self setSaleHeaders:nil]; + } + [self setCurrentSale:[[[self salesLog]sales]objectAtIndex:numSale]]; + return TRUE; +} + +- (void) generateIncidentListNavLevel +{ + NSMutableArray *dateArray = [[NSMutableArray alloc] init]; + NSMutableArray *dateHeaderArray = [[NSMutableArray alloc] init]; + NSMutableArray *dateStructure = [[NSMutableArray alloc] init]; + NSUInteger headerPos = 0; + NSUInteger headerCount = 0; + NSString *lastDate = @""; + NSString *currentDate; + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; + for(int i = 0; i < [[[self incidentLog] incidents]count]; i++) + { + Incident *currentIncident = [[[self incidentLog] incidents]objectAtIndex:i]; + NSDateComponents *components = [calendar components:units fromDate:[currentIncident incidentTime]]; + [dateArray insertObject:[NSString stringWithFormat:@"[%d%d%d%d%d]%02d/%02d/%d %02d:%02d",[components day],[components month],[components year],[components hour],[components minute],[components day],[components month],[components year],[components hour],[components minute]] atIndex:i]; + currentDate = [NSString stringWithFormat:@"%02d/%d",[components month],[components year]]; + if([lastDate isEqualToString:@""]) + { + headerCount = 1; + lastDate = currentDate; + } + else if(![currentDate isEqualToString:lastDate]) + { + [dateStructure insertObject:[NSNumber numberWithInt:headerCount] atIndex:headerPos]; + [dateHeaderArray insertObject:lastDate atIndex:headerPos]; + headerCount = 1; + headerPos++; + lastDate = currentDate; + } + else + { + headerCount++; + } + } + [dateStructure insertObject:[NSNumber numberWithInt:headerCount] atIndex:headerPos]; + [dateHeaderArray insertObject:lastDate atIndex:headerPos]; [self setIncidentListElements:[[NSMutableArray alloc] initWithArray:dateArray]]; + [self setIncidentListStructure:[[NSMutableArray alloc] initWithArray:dateStructure]]; + [self setIncidentListHeaders:[[NSMutableArray alloc] initWithArray:dateHeaderArray]]; +} + +- (Boolean) generateIncidentNavLevel : (NSInteger) numIncident +{ + [self setIncidentElements:[[NSMutableArray alloc] initWithObjects:INCIDENT_ELEMENTS, nil]]; + [self setIncidentStructure:[[NSMutableArray alloc] initWithObjects:INCIDENT_CELLS_PER_SECTION, nil]]; + if([[self incidentStructure] count] > 1) + { + [self setIncidentHeaders:[[NSMutableArray alloc] initWithObjects:INCIDENT_HEADERS, nil]]; + } + else + { + [self setIncidentHeaders:nil]; + } + [self setCurrentIncident:[[[self incidentLog]incidents]objectAtIndex:numIncident]]; + return TRUE; +} + +- (void) changeNavLevel: (uint8_t) level : (BOOL) push +{ + NSLog(@"[MenuTableViewController.m]: navLevel is %d",level); + self.showIndexes = FALSE; + if(push) + { + [[self parentLayout] push: [NSNumber numberWithUnsignedChar:self.currentNavLevel]]; + } + [self setCurrentNavLevel:level]; + [self setCurrentCellIdentifier:[[self cellIdentifiers] objectAtIndex:[self currentNavLevel]]]; + if([self currentNavLevel] == MENU) + { + [self setMachineMACAddr:[[[EMConnectionManager sharedManager] connectedDevice] name]]; + [[self navigationItem] setTitle:[self machineMACAddr]]; + [self setCurrentElements:[self menuElements]]; + [self setCurrentStructure:[self menuStructure]]; + [self setCurrentHeaders:[self menuHeaders]]; + } + else if([self currentNavLevel] == MAINTENANCE) + { + [[self navigationItem] setTitle:NSLocalizedString(@"Maintenance", nil)]; + [self setCurrentElements:[self maintenanceElements]]; + [self setCurrentStructure:[self maintenanceStructure]]; + [self setCurrentHeaders:[self maintenanceHeaders]]; + } + else if([self currentNavLevel] == SALE_LIST) + { + self.showIndexes = TRUE; + [[self navigationItem] setTitle:NSLocalizedString(@"Sales log", nil)]; + [self setCurrentElements:[self saleListElements]]; + [self setCurrentStructure:[self saleListStructure]]; + [self setCurrentHeaders:[self saleListHeaders]]; + } + else if([self currentNavLevel] == SALE) + { + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; + NSDateComponents *components = [calendar components:units fromDate:[[self currentSale] saleTime]]; + [[self navigationItem] setTitle:[NSString stringWithFormat:@"%@ %02d/%02d/%d %02d:%02d",NSLocalizedString(@"Sale on", nil),[components day],[components month],[components year],[components hour],[components minute]]]; + [self setCurrentElements:[self saleElements]]; + [self setCurrentStructure:[self saleStructure]]; + [self setCurrentHeaders:[self saleHeaders]]; + } + else if([self currentNavLevel] == INCIDENT_LIST) + { + self.showIndexes = TRUE; + [[self navigationItem] setTitle:NSLocalizedString(@"Incident log", nil)]; + [self setCurrentElements:[self incidentListElements]]; + [self setCurrentStructure:[self incidentListStructure]]; + [self setCurrentHeaders:[self incidentListHeaders]]; + } + else if([self currentNavLevel] == INCIDENT) + { + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; + NSDateComponents *components = [calendar components:units fromDate:[[self currentIncident] incidentTime]]; + [[self navigationItem] setTitle:[NSString stringWithFormat:@"%@ %02d/%02d/%d %02d:%02d",NSLocalizedString(@"Incident on", nil),[components day],[components month],[components year],[components hour],[components minute]]]; + [self setCurrentElements:[self incidentElements]]; + [self setCurrentStructure:[self incidentStructure]]; + [self setCurrentHeaders:[self incidentHeaders]]; + } + else if([self currentNavLevel] == BASIC_CONFIGURATION) + { + [[self navigationItem] setTitle:NSLocalizedString(@"Basic Configuration", nil)]; + [self setCurrentElements:[self configElements]]; + [self setCurrentStructure:[self configStructure]]; + [self setCurrentHeaders:[self configHeaders]]; + } + //AND SO ON... + NSLog(@"MenuTableViewController.m]: New elements: %@",[self currentElements]); + NSLog(@"MenuTableViewController.m]: New structure: %@",[self currentStructure]); + NSLog(@"MenuTableViewController.m]: New headers: %@",[self currentHeaders]); + NSLog(@"MenuTableViewController.m]: New cell identifier: %@",[self currentCellIdentifier]); + [self reloadTable:UITableViewRowAnimationAutomatic]; +} + +- (void) reloadTable: (UITableViewRowAnimation) animation +{ + [[self tableView] reloadData]; + NSRange range = NSMakeRange(0, [self numberOfSectionsInTableView:[self tableView]]); + NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range]; + [[self tableView] reloadSections:sections withRowAnimation:animation]; +} + +- (void) navBack +{ + NSNumber *prevLevel = [[self parentLayout] pop]; + self.currentNavLevel = prevLevel.intValue; + [self changeNavLevel: prevLevel.intValue : FALSE]; +} + +- (void) backButtonPressed: (id) sender +{ + NSLog(@"[MenuTableViewController.m]: Navigation Stack has %ld remaining levels",(long)[[self parentLayout] count]); + if([[self parentLayout] count] > 0) + { + NSLog(@"[MenuTableViewController.m]: Falling to previous navigation level"); + [self navBack]; + } + else + { + NSLog(@"[MenuTableViewController.m]: No more navigation levels in stack, falling to previous view"); + [_protocol disconnect]; + [self.navigationController popViewControllerAnimated:YES]; + } +} + +//MAINTENANCE REPORT SENDING +- (void) sendMaintenanceReport : (NSString*) status : (NSString*) date : (NSString*) machineid +{ + NSString *content = [NSString stringWithFormat:@"status=%@&date=%@&machineid=%@",status,date,machineid]; + + NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:REPORT_SERVER_URL]]; + [request setHTTPMethod:@"POST"]; + [request setHTTPBody:[content dataUsingEncoding:NSUTF8StringEncoding]]; + [NSURLConnection connectionWithRequest:request delegate:self]; +} + +- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data +{ + NSLog(@"[MenuTableViewController.m]: Received response from report server: %@",[NSString stringWithUTF8String:[data bytes]]); + [self.view makeToast:NSLocalizedString(@"Report sent successfully", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Success!", nil) image:[UIImage imageNamed:@"icon_checkmark"]]; +} + +- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error +{ + NSLog(@"[MenuTableViewController.m]: Error connecting to server: %@ %@",[error localizedDescription],[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]); + [self.view makeToast:NSLocalizedString(@"Connection to server failed", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; +} +//PROTOCOL ERROR CALLBACK +- (void) reportProtocolError: (CommunicationProtocol*)protocol didFinishEnteringItem:(NSString*) error +{ + if(self.currentNavLevel == 255) + { + [self processMessage:protocol didFinishEnteringItem:@"ERROR"]; + } + else + { + [self.view makeToast:error duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; + } +} + +//MESSAGE RECEIVED CALLBACK +- (void)processMessage:(CommunicationProtocol*)protocol didFinishEnteringItem:(NSString*) response +{ + NSLog(@"[MenuTableViewController.m]: Answer received: %@",response); + [self.timeoutTimer invalidate]; + if(self.sentCommand == HELLO) + { + if([response isEqualToString:@"Hello"]) + { + NSLog(@"[MenuTableViewController.m]: Connection established"); + [self changeNavLevel:MENU:FALSE]; + } + else + { + NSLog(@"[CommunicationProtocol.m]: Error while establishing connection"); + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Communication error",nil) message:NSLocalizedString(@"Error while trying to connect to the device",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + UIViewController *previous = [[[self navigationController] viewControllers] objectAtIndex:[[[self navigationController] viewControllers] count]-2]; + [[self navigationController] popToViewController:previous animated:YES]; + } + } + else if(self.sentCommand == A2 && [[response substringToIndex:2]isEqualToString:@"P2"]) + { + NSLog(@"[MenuTableViewController.m]: Received A2 answer"); + [self setSalesLog:[[SalesLog alloc]init]]; + [[self salesLog] setResponseValue:response]; + [self generateSaleListNavLevel]; + [self changeNavLevel:SALE_LIST:TRUE]; + } + else if(self.sentCommand == A3 && [[response substringToIndex:2]isEqualToString:@"P3"]) + { + NSLog(@"[MenuTableViewController.m]: Received A3 answer"); + [self setIncidentLog:[[IncidentLog alloc]init]]; + [[self incidentLog] setResponseValue:response]; + [self generateIncidentListNavLevel]; + [self changeNavLevel:INCIDENT_LIST:TRUE]; + } + else if(self.sentCommand == A4 && [[response substringToIndex:2]isEqualToString:@"P4"]) + { + NSLog(@"[MenuTableViewController.m]: Received A4 answer"); + [self setSensorStatus:[[Sensors alloc]init]]; + [[self sensorStatus] setResponseValue:response]; + [self generateMaintenanceLevel]; + [self changeNavLevel:MAINTENANCE:TRUE]; + } + else if(self.sentCommand == A5 && [[response substringToIndex:2]isEqualToString:@"P5"]) + { + NSLog(@"[MenuTableViewController.m]: Received A5 answer"); + if([response isEqualToString:@"P51"]) + { + [self.view makeToast:NSLocalizedString(@"Time and Date changed successfully", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:nil image:[UIImage imageNamed:@"icon_checkmark"]]; + } + else if([response isEqualToString:@"P52"]) + { + NSLog(@"[MenuTableViewController.m]: Device returned error for command A5"); + [self.view makeToast:NSLocalizedString(@"Time and Date change returned error", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; + } + } + else if(self.sentCommand == A6 && [[response substringToIndex:2]isEqualToString:@"P6"]) + { + NSLog(@"[MenuTableViewController.m]: Received A6 answer"); + if([response isEqualToString:@"P61"]) + { + [self.view makeToast:NSLocalizedString(@"Product price changed successfully", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:nil image:[UIImage imageNamed:@"icon_checkmark"]]; + } + else if([response isEqualToString:@"P62"]) + { + NSLog(@"[MenuTableViewController.m]: Device returned error for command A6"); + [self.view makeToast:NSLocalizedString(@"Product price change returned error", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; + } + } + else if(self.sentCommand == A7 && [[response substringToIndex:2]isEqualToString:@"P7"]) + { + NSLog(@"[MenuTableViewController.m]: Received A7 answer"); + if([response isEqualToString:@"P71"]) + { + [self.view makeToast:NSLocalizedString(@"Product name changed successfully", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:nil image:[UIImage imageNamed:@"icon_checkmark"]]; + } + else if([response isEqualToString:@"P72"]) + { + NSLog(@"[MenuTableViewController.m]: Device returned error for command A7"); + [self.view makeToast:NSLocalizedString(@"Product name change returned error", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; + } + } + else if(self.sentCommand == BATCH_COMMANDS) + { + if(self.batchCommands.count) + { + [self processBatchCommands]; + } + else + { + self.sentCommand = NONE; + } + } + else + { + NSLog(@"[MenuTableViewController]: Unknown response received. Data discarded."); + } + [self setSentCommand:NONE]; +} + +- (void) startTimeoutTimer +{ + self.timeoutTimer = [NSTimer scheduledTimerWithTimeInterval:10 + target:self + selector:@selector(commandDidTimeout:) + userInfo:nil + repeats:NO]; +} + +- (void) commandDidTimeout:(NSTimer *) timer +{ + if(self.currentNavLevel == 255) + { + [self processMessage:nil didFinishEnteringItem:@"ERROR"]; + } + else + { + [self setSentCommand:NONE]; + [self.view makeToast:NSLocalizedString(@"Device answer timeout occurred", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; + } +} + + +//BATCH COMMAND PROCESSING +- (void) processBatchCommands +{ + NSString *command = [self.batchCommands objectAtIndex:0]; + [self.batchCommands removeObjectAtIndex:0]; + [_protocol writeMessage:command]; + [self setSentCommand:BATCH_COMMANDS]; + [self startTimeoutTimer]; +} + +-(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex +{ + if (alertView.tag == BATCH_ALERT_TAG) + { + if (buttonIndex == 1) + { + [self processBatchCommands]; + } + } +} + +- (void) handleOpenURL:(NSURL *)url +{ + NSData *data = [NSData dataWithContentsOfURL:url]; + NSString *contents = [[NSString alloc] initWithData: data encoding:NSUTF8StringEncoding]; + if(data == nil) + { + NSLog(@"[MenuTableViewController.m]: Error obtaining data from URL"); + [self.view makeToast:NSLocalizedString(@"Error obtaining data from URL", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; + return; + } + NSLog(@"[MenuTableViewController.m]: Read file contents from handled URL: %@",contents); + NSError *error = nil; + NSDictionary *JSONData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error: &error]; + if(!JSONData) + { + NSLog(@"[MenuTableViewController.m]: %@",error); + [self.view makeToast:[error localizedDescription] duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; + return; + } + NSString *version = [JSONData objectForKey:@"version"]; + NSString *name = [JSONData objectForKey:@"name"]; + NSString *machineID = [JSONData objectForKey:@"machineID"]; + NSArray *commands = [JSONData objectForKey:@"commands"]; + NSString *errorString = nil; + UIAlertView *alert; + if(version == nil || commands == nil) + { + errorString = NSLocalizedString(@"Missing fields version and/or commands in JSON file",nil); + } + else if(![version isEqualToString:self.appDelegate.currentVersion]) + { + errorString = NSLocalizedString(@"Version mismatch",nil); + } + else + { + self.batchCommands = [[NSMutableArray alloc] initWithArray:commands]; + if([name isEqualToString:@""]) + { + name = @"file"; + } + if(![machineID isEqualToString:self.machineMACAddr]) + { + alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Confirmation",nil) + message:[NSString stringWithFormat:@"%@ \"%@\"?\n\n%@",NSLocalizedString(@"Do you want to run batch command file",nil),name,NSLocalizedString(@"WARNING: Machine ID does not match currently connected machine. Do you wish to continue?",nil)] + delegate:self + cancelButtonTitle:NSLocalizedString(@"Cancel",nil) + otherButtonTitles:NSLocalizedString(@"OK",nil), nil]; + } + else + { + alert = [[UIAlertView alloc] initWithTitle: NSLocalizedString(@"Confirmation",nil) + message: [NSString stringWithFormat:@"%@ \"%@\"?",NSLocalizedString(@"Do you want to run batch command file",nil),name] + delegate:self + cancelButtonTitle:NSLocalizedString(@"Cancel",nil) + otherButtonTitles:NSLocalizedString(@"OK",nil), nil]; + } + } + if(errorString != nil) + { + alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) + message:[NSString stringWithFormat:@"%@",errorString] + delegate:nil + cancelButtonTitle:NSLocalizedString(@"OK",nil) + otherButtonTitles:nil]; + } + alert.tag = BATCH_ALERT_TAG; + [alert show]; +} + +//UITABLEVIEWCONTROLLER FUNCTIONS +- (void)viewDidLoad +{ + [super viewDidLoad]; + [_activityIndicator setHidden:YES]; + self.appDelegate = [[UIApplication sharedApplication] delegate]; + + //Set navigation bar + UIImage *backImage = [UIImage imageNamed:@"back_arrow.png"]; + UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom]; + backButton.frame = CGRectMake(0, 0, backImage.size.width/2, backImage.size.height/2); + + [backButton setImage:backImage forState:UIControlStateNormal]; + [backButton addTarget:self action:@selector(backButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; + UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; + + self.navigationItem.hidesBackButton = YES; + self.navigationItem.leftBarButtonItem = backBarButtonItem; + + //Emmoco protocol initialization + _protocol = [CommunicationProtocol sharedProtocol]; + [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveNotification:) name:kEMConnectionDidReceiveIndicatorNotificationName object:nil]; + [[EMConnectionManager sharedManager] addObserver:self forKeyPath:@"connectionState" options:0 context:NULL]; + self.protocol.delegate = self; + + //Initialize parentLayout stack + [self setParentLayout:[[Stack alloc]init]]; + + //Set navigation level + [self initializeMenuEntries]; + [self setChildViewControllers:[[NSMutableArray alloc]init]]; + self.currentNavLevel = 255; + + //Initialize menu view + + [_protocol establishConnection]; + //[self setSentCommand:HELLO]; + //[self startTimeoutTimer]; + [self changeNavLevel:MENU :FALSE]; //HACK! + + //Detect handled URL + if(self.appDelegate.handledURL != nil) + { + NSLog(@"[MenuTableViewController.m]: Detected handled URL in appDelegate"); + [self handleOpenURL: self.appDelegate.handledURL]; + } +} + +-(void)didReceiveNotification:(NSNotification*) notification +{ + +} + +-(void)dealloc +{ + [[EMConnectionManager sharedManager] removeObserver:self forKeyPath:@"connectionState"]; + [[NSNotificationCenter defaultCenter] removeObserver:self]; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation +{ + for(int i = 0; i < self.childViewControllers.count; i++) + { + ChildViewController *childController = [self.childViewControllers objectAtIndex:i]; + [childController parentViewControllerDidRotateWithOrientation: [[UIDevice currentDevice] orientation]]; + } +} + +- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration +{ + for(int i = 0; i < self.childViewControllers.count; i++) + { + ChildViewController *childController = [self.childViewControllers objectAtIndex:i]; + [childController parentViewControllerWillRotateToInterfaceOrientation:toInterfaceOrientation duration:duration]; + } +} + +- (void)removeChildFromParentController:(ChildViewController*)controller +{ + [self.childViewControllers removeObject:controller]; + NSLog(@"[MenuTableViewController]: %d childViewControllers left",self.childViewControllers.count); +} + +-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context +{ + if (object == [EMConnectionManager sharedManager]) + { + if ([keyPath isEqualToString:@"connectionState"]) + { + if ([[EMConnectionManager sharedManager] connectionState] == EMConnectionStateDisrupted) + { + UIViewController *previous = [[[self navigationController] viewControllers] objectAtIndex:[[[self navigationController] viewControllers] count]-2]; + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Communication error",nil) message:NSLocalizedString(@"Connection lost",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + [[self navigationController] popToViewController:previous animated:YES]; + } + } + } +} + +#pragma mark - Table view delegate + +//CELL PROCESSING AND CUSTOMIZATION +- (void) addTags : (NSMutableArray*) rows : (NSInteger) tag +{ + for(int i = 0; i < [rows count]; i++) + { + NSMutableString *name = [NSMutableString stringWithString:[rows objectAtIndex:i]]; + [name insertString:[NSString stringWithFormat:@"[%d]",tag] atIndex:1]; + [rows replaceObjectAtIndex:i withObject:name]; + } +} + +- (void) toggleDropList : (NSIndexPath*) index +{ + Boolean folded = FALSE; + NSString *elementName = [[self currentElements] objectAtIndex:index.row]; + NSMutableString *newElementName = [[NSMutableString alloc] init]; + if([elementName characterAtIndex:0] == '>') + { + [newElementName setString:@"v"]; + [newElementName appendString:[elementName substringFromIndex:1]]; + folded = TRUE; + } + else + { + [newElementName setString:@">"]; + [newElementName appendString:[elementName substringFromIndex:1]]; + } + [[self currentElements] replaceObjectAtIndex:index.row withObject:newElementName]; + NSMutableString *cellName = [NSMutableString stringWithString:[elementName substringFromIndex:1]]; + NSInteger lastPos = [cellName rangeOfString:@"]"].location; + NSInteger cellTag = [[cellName substringWithRange:NSMakeRange(1,lastPos)] intValue]; + [cellName setString:[cellName substringFromIndex:lastPos+1]]; + + //Cells in MENU + if([self currentNavLevel] == MAINTENANCE) + { + if([cellName isEqualToString:@"Channels Present"] || + [cellName isEqualToString:@"Product Present in Channel"] || + [cellName isEqualToString:@"Channel Engine Status"]) + { + NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:MAINTENANCE_CHANNELS, nil]; + [newRows setArray:[newRows subarrayWithRange:NSMakeRange(0, [[self sensorStatus] numChannels])]]; + if(folded) + { + [self addTags: newRows : cellTag]; + [self addRowsAtIndexPath: newRows : index]; + } + else + { + [self removeRowsAtIndexPath: [newRows count] : index]; + } + } + else if([cellName isEqualToString:@"Money Collected"]) + { + NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:MAINTENANCE_MONEY_IN, nil]; + if(folded) + { + [self addTags: newRows : cellTag]; + [self addRowsAtIndexPath: newRows : index]; + } + else + { + [self removeRowsAtIndexPath: [newRows count] : index]; + } + } + else if([cellName isEqualToString:@"Money Returned"]) + { + NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:MAINTENANCE_MONEY_OUT, nil]; + if(folded) + { + [self addTags: newRows : cellTag]; + [self addRowsAtIndexPath: newRows : index]; + } + else + { + [self removeRowsAtIndexPath: [newRows count] : index]; + } + } + else if([cellName isEqualToString:@"Products Sold"]) + { + NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:MAINTENANCE_PRODUCTS, nil]; + if(folded) + { + [self addTags: newRows : cellTag]; + [self addRowsAtIndexPath: newRows : index]; + } + else + { + [self removeRowsAtIndexPath: [newRows count] : index]; + } + } + else if([cellName isEqualToString:@"Change Available"]) + { + NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:MAINTENANCE_CHANGE, nil]; + if(folded) + { + [self addTags: newRows : cellTag]; + [self addRowsAtIndexPath: newRows : index]; + } + else + { + [self removeRowsAtIndexPath: [newRows count] : index]; + } + } + } + else if([self currentNavLevel] == SALE) + { + if([cellName isEqualToString:@"Money Paid"]) + { + NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:SALE_MONEY_PAID, nil]; + if(folded) + { + [self addTags: newRows : cellTag]; + [self addRowsAtIndexPath: newRows : index]; + } + else + { + [self removeRowsAtIndexPath: [newRows count] : index]; + } + } + else if([cellName isEqualToString:@"Money Returned"]) + { + NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:SALE_MONEY_RETURNED, nil]; + if(folded) + { + [self addTags: newRows : cellTag]; + [self addRowsAtIndexPath: newRows : index]; + } + else + { + [self removeRowsAtIndexPath: [newRows count] : index]; + } + } + } + [self reloadTable:UITableViewRowAnimationNone]; +} + +- (void) addRowsAtIndexPath : (NSArray*) rows : (NSIndexPath*) indexPath +{ + NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange([indexPath row] + 1, [rows count])]; + [[self currentElements] insertObjects:rows atIndexes:indexSet]; + [[self currentStructure] replaceObjectAtIndex:[indexPath section] withObject:[NSNumber numberWithInt:([[[self currentStructure] objectAtIndex:[indexPath section]] intValue] + [rows count])]]; +} + +- (void) removeRowsAtIndexPath : (NSUInteger) numRows : (NSIndexPath*) indexPath +{ + NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange([indexPath row] + 1, numRows)]; + [[self currentElements] removeObjectsAtIndexes:indexSet]; + [[self currentStructure] replaceObjectAtIndex:[indexPath section] withObject:[NSNumber numberWithInt:([[[self currentStructure] objectAtIndex:[indexPath section]] intValue] - numRows)]]; +} + +//UITABLEVIEWCONTROLLER FUNCTIONS +- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section +{ + NSString *title = @""; + if([self currentHeaders] != nil) + { + title = [[self currentHeaders] objectAtIndex:section]; + } + return title; +} + +- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section +{ + return [[[self currentStructure] objectAtIndex:section] intValue]; +} + +- (const NSArray*)sectionIndexTitlesForTableView:(UITableView *)tableView +{ + if(self.showIndexes) + { + return self.currentHeaders; + } + return nil; +} + +- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index +{ + if(self.showIndexes) + { + return [self.currentHeaders indexOfObject:title]; + } + return 0; +} + +- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath +{ + NSLog(@"Section: %ld Row: %ld",(long)[indexPath section],(long)[indexPath row]); + [tableView deselectRowAtIndexPath:indexPath animated:YES]; + UITableViewCell *cell = [[self tableView] cellForRowAtIndexPath:indexPath]; + NSString *cellName = [[cell textLabel]text]; + uint8_t offset = 0; + if([indexPath section]) + { + for (int i = 0; i < [indexPath section]; i++) + { + offset += [[[self currentStructure] objectAtIndex:i] unsignedCharValue]; + } + } + //Cells in MENU + if([self currentNavLevel] == MENU) + { + if([cellName isEqualToString:NSLocalizedString(@"Maintenance", nil)]) + { + if(self.sentCommand == NONE) + { + NSLog(@"[MenuTableViewController.m]: Changing to navLevel: MAINTENANCE"); + [[self protocol] readSensorData]; + [self setSentCommand:A4]; + [self startTimeoutTimer]; + } + } + else if([cellName isEqualToString:NSLocalizedString(@"Basic Configuration", nil)]) + { + NSLog(@"[MenuTableViewController.m]: Changing to navLevel: BASIC_CONFIGURATION"); + [self changeNavLevel:BASIC_CONFIGURATION:TRUE]; + } + } + //Cells in MAINTENANCE + else if([self currentNavLevel] == MAINTENANCE) + { + if([cellName isEqualToString:NSLocalizedString(@"Channels Present", nil)] || + [cellName isEqualToString:NSLocalizedString(@"Product Present in Channel", nil)] || + [cellName isEqualToString:NSLocalizedString(@"Channel Engine Status", nil)] || + [cellName isEqualToString:NSLocalizedString(@"Money Collected", nil)] || + [cellName isEqualToString:NSLocalizedString(@"Money Returned", nil)] || + [cellName isEqualToString:NSLocalizedString(@"Products Sold", nil)] || + [cellName isEqualToString:NSLocalizedString(@"Change Available", nil)]) + { + [self toggleDropList:indexPath]; + } + else if([cellName isEqualToString:NSLocalizedString(@"Sales log", nil)]) + { + if(self.sentCommand == NONE) + { + [self setRequestedLog:SALES_LOG]; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_iPad_Landscape" bundle:nil]; + self.dateRangePickerViewController.delegate = self; + self.dateRangePickerViewController.childDelegate = self; + [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; + [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; + } + else + { + self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_iPad" bundle:nil]; + self.dateRangePickerViewController.delegate = self; + self.dateRangePickerViewController.childDelegate = self; + [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; + [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; + } + } + else + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_Landscape" bundle:nil]; + self.dateRangePickerViewController.delegate = self; + self.dateRangePickerViewController.childDelegate = self; + [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; + [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; + } + else + { + self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController" bundle:nil]; + self.dateRangePickerViewController.delegate = self; + self.dateRangePickerViewController.childDelegate = self; + [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; + [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; + } + } + } + } + else if([cellName isEqualToString:NSLocalizedString(@"Incident log", nil)]) + { + if(self.sentCommand == NONE) + { + [self setRequestedLog:INCIDENT_LOG]; + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_iPad_Landscape" bundle:nil]; + self.dateRangePickerViewController.delegate = self; + self.dateRangePickerViewController.childDelegate = self; + [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; + [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; + } + else + { + self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_iPad" bundle:nil]; + self.dateRangePickerViewController.delegate = self; + self.dateRangePickerViewController.childDelegate = self; + [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; + [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; + } + } + else + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_Landscape" bundle:nil]; + self.dateRangePickerViewController.delegate = self; + self.dateRangePickerViewController.childDelegate = self; + [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; + [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; + } + else + { + self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController" bundle:nil]; + self.dateRangePickerViewController.delegate = self; + self.dateRangePickerViewController.childDelegate = self; + [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; + [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; + } + } + } + } + else if([cellName isEqualToString:NSLocalizedString(@"Send report", nil)]) + { + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; + NSDateComponents *components = [calendar components:units fromDate:[NSDate date]]; + NSString *date = [NSString stringWithFormat:@"%02d/%02d/%d %02d:%02d:%02d",[components day],[components month],[components year],[components hour],[components minute],[components second]]; + [self sendMaintenanceReport: [[self sensorStatus] response] : date: [self machineMACAddr]]; + } + } + //Cells in BASIC_CONFIGURATION + else if([self currentNavLevel] == BASIC_CONFIGURATION) + { + //Update Date & Time command + if([cellName isEqualToString:NSLocalizedString(@"Update Date & Time", nil)]) + { + if(self.sentCommand == NONE) + { + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + self.datePickerViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController_iPad_Landscape" bundle:nil]; + self.datePickerViewController.delegate = self; + [self.datePickerViewController showInView:self.navigationController.view animated:YES]; + } + else + { + self.datePickerViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController_iPad" bundle:nil]; + self.datePickerViewController.delegate = self; + [self.datePickerViewController showInView:self.navigationController.view animated:YES]; + } + } + else + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + self.datePickerViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController" bundle:nil]; + self.datePickerViewController.delegate = self; + [self.datePickerViewController showInView:self.navigationController.view animated:YES]; + } + else + { + self.datePickerViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController_Landscape" bundle:nil]; + self.datePickerViewController.delegate = self; + [self.datePickerViewController showInView:self.navigationController.view animated:YES]; + } + } + } + } + //Update Product Price command + else if([cellName isEqualToString:NSLocalizedString(@"Update product price", nil)]) + { + if(self.sentCommand == NONE) + { + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + self.priceChangerViewController = [[PriceChangerViewController alloc] initWithNibName:@"PriceChangerViewController_iPad_Landscape" bundle:nil]; + self.priceChangerViewController.delegate = self; + [self.priceChangerViewController showInView:self.navigationController.view animated:YES]; + } + else + { + self.priceChangerViewController = [[PriceChangerViewController alloc] initWithNibName:@"PriceChangerViewController_iPad" bundle:nil]; + self.priceChangerViewController.delegate = self; + [self.priceChangerViewController showInView:self.navigationController.view animated:YES]; + } + } + else + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + self.priceChangerViewController = [[PriceChangerViewController alloc] initWithNibName:@"PriceChangerViewController" bundle:nil]; + self.priceChangerViewController.delegate = self; + [self.priceChangerViewController showInView:self.navigationController.view animated:YES]; + } + else + { + self.priceChangerViewController = [[PriceChangerViewController alloc] initWithNibName:@"PriceChangerViewController_Landscape" bundle:nil]; + self.priceChangerViewController.delegate = self; + [self.priceChangerViewController showInView:self.navigationController.view animated:YES]; + } + } + } + } + //Update Product Name command + else if([cellName isEqualToString:NSLocalizedString(@"Update product name", nil)]) + { + if(self.sentCommand == NONE) + { + if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + self.nameChangerViewController = [[NameChangerViewController alloc] initWithNibName:@"NameChangerViewController_iPad_Landscape" bundle:nil]; + self.nameChangerViewController.delegate = self; + [self.nameChangerViewController showInView:self.navigationController.view animated:YES]; + } + else + { + self.nameChangerViewController = [[NameChangerViewController alloc] initWithNibName:@"NameChangerViewController_iPad" bundle:nil]; + self.nameChangerViewController.delegate = self; + [self.nameChangerViewController showInView:self.navigationController.view animated:YES]; + } + } + else + { + if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) + { + self.nameChangerViewController = [[NameChangerViewController alloc] initWithNibName:@"NameChangerViewController_Landscape" bundle:nil]; + self.nameChangerViewController.delegate = self; + [self.nameChangerViewController showInView:self.navigationController.view animated:YES]; + } + else + { + self.nameChangerViewController = [[NameChangerViewController alloc] initWithNibName:@"NameChangerViewController" bundle:nil]; + self.nameChangerViewController.delegate = self; + [self.nameChangerViewController showInView:self.navigationController.view animated:YES]; + } + } + } + } + } + else if([self currentNavLevel] == SALE_LIST) + { + if([self generateSaleNavLevel: [indexPath row] + offset]) + { + [self changeNavLevel:SALE:TRUE]; + } + } + else if([self currentNavLevel] == SALE) + { + if([cellName isEqualToString:NSLocalizedString(@"Money Paid", nil)] || + [cellName isEqualToString:NSLocalizedString(@"Money Returned", nil)]) + { + [self toggleDropList:indexPath]; + } + + } + else if([self currentNavLevel] == INCIDENT_LIST) + { + if([self generateIncidentNavLevel: [indexPath row] + offset]) + { + [self changeNavLevel:INCIDENT:TRUE]; + } + } +} + +#pragma mark - Table view data source + +-(NSInteger)tableView: (UITableView *)tableView indentationLevelForRowAtIndexPath: (NSIndexPath *)indexPath +{ + NSInteger indent = 0; + if([[[self currentElements] objectAtIndex:indexPath.row] characterAtIndex:0] == '*') + { + indent++; + } + return indent; +} + +- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView +{ + return [[self currentStructure] count]; +} + +- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath +{ + Boolean needsIndent = FALSE; + Boolean foldedList = FALSE; + Boolean unfoldedList = FALSE; + UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[self currentCellIdentifier] forIndexPath:indexPath]; + //INSTANTIATE CELL IF NEEDED + if (cell == nil) + { + NSLog(@"[MenuTableViewController.m]: Initializing cell"); + if([self currentNavLevel] == MAINTENANCE) + { + NSLog(@"[MenuTableViewController.m]: Dispatching Maintenance-type cell"); + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:[self currentCellIdentifier]]; + } + else + { + cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[self currentCellIdentifier]]; + } + } + //CALCULATE TRUE ROW TO RETRIEVE NAME + uint8_t offset = 0; + if([indexPath section] ) + { + for (int i = 0; i < [indexPath section]; i++) + { + offset += [[[self currentStructure] objectAtIndex:i] unsignedCharValue]; + } + } + //RETRIEVE NAME + NSMutableString *cellText = [NSMutableString stringWithString:[[self currentElements] objectAtIndex:[indexPath row]+offset]]; + //SET INDENT + [cell setIndentationWidth:10]; + //PARSE AND REMOVE CELL MODIFIER + if([cellText characterAtIndex:0] == '>') + { + foldedList = TRUE; + [cellText setString:[cellText substringFromIndex:1]]; + } + else if([cellText characterAtIndex:0] == 'v') + { + unfoldedList = TRUE; + [cellText setString:[cellText substringFromIndex:1]]; + } + else if([cellText characterAtIndex:0] == '*') + { + needsIndent = TRUE; + [cellText setString:[cellText substringFromIndex:1]]; + } + //PARSE AND REMOVE TAG + NSInteger lastPos = [cellText rangeOfString:@"]"].location; + NSInteger cellTag = [[cellText substringWithRange:NSMakeRange(1,lastPos-1)] intValue]; + [cell setTag:cellTag]; + [cellText setString:[cellText substringFromIndex:lastPos+1]]; + //SET FINAL TEXT + [[cell textLabel] setText:NSLocalizedString(cellText,nil)]; + + //MAINTENANCE CELLS + if([self currentNavLevel] == MAINTENANCE) + { + [[[cell contentView] viewWithTag:CELL_CARAT_TAG] removeFromSuperview]; + [[cell detailTextLabel] setText:@""]; + [cell setAccessoryView:nil]; + [cell setAccessoryType:UITableViewCellAccessoryNone]; + if(foldedList) + { + NSInteger cellHeight = cell.contentView.frame.size.height; + UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,cellHeight/2 - (11/2),11,11)]; + imageView.image = [UIImage imageNamed:@"carat.png"]; + imageView.tag = CELL_CARAT_TAG; + [cell.contentView addSubview:imageView]; + } + else if(unfoldedList) + { + NSInteger cellHeight = cell.contentView.frame.size.height; + UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,cellHeight/2 - (11/2),11,11)]; + imageView.image = [UIImage imageNamed:@"carat-open.png"]; + imageView.tag = CELL_CARAT_TAG; + [cell.contentView addSubview:imageView]; + } + if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Channels Present",nil)]) + { + [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%d",[[self sensorStatus] numChannels]]]; + [cell setAccessoryView:nil]; + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Product Present in Channel",nil)]) + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; + for(int i = 0; i < [[self sensorStatus] numChannels]; i++) + { + if([[[[self sensorStatus] channelProductAvailability] objectAtIndex:i] intValue] != 1) + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; + break; + } + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Channel Engine Status",nil)]) + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; + for(int i = 0; i < [[self sensorStatus] numChannels]; i++) + { + if([[[[self sensorStatus] channelStatus] objectAtIndex:i] intValue] != 1) + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; + break; + } + } + } + else if([[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"%@ (\\d+)",NSLocalizedString(@"Channel",nil)] options:0 error:NULL] numberOfMatchesInString:[[cell textLabel] text] options:0 range:(NSMakeRange(0,[[[cell textLabel] text] length]))] != 0) + { + NSUInteger index = [[[[cell textLabel] text] substringFromIndex:([NSLocalizedString(@"Channel",nil) length] + 1)] intValue] - 1; + if([cell tag] == 2001) // Products Present in Channel tag + { + if([[[[self sensorStatus] channelProductAvailability] objectAtIndex:index] intValue] == 1) + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; + } + else + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; + } + } + else if([cell tag] == 2002) // Channel engine status tag + { + if([[[[self sensorStatus] channelStatus] objectAtIndex:index] intValue] == 1) + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; + } + else + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; + } + } + + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Door Sensor",nil)]) + { + if([[self sensorStatus] doorOpen]) + { + [[cell detailTextLabel] setText:NSLocalizedString(@"OPEN",nil)]; + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; + } + else + { + [[cell detailTextLabel] setText:NSLocalizedString(@"CLOSED",nil)]; + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Coil Sensor",nil)]) + { + if([[self sensorStatus] coilOpen]) + { + [[cell detailTextLabel] setText:NSLocalizedString(@"OPEN",nil)]; + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; + } + else + { + [[cell detailTextLabel] setText:NSLocalizedString(@"CLOSED",nil)]; + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Money Collected",nil)]) + { + double numCollected = 0; + numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:0] intValue] * 20; + numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:1] intValue] * 10; + numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:2] intValue] * 5; + numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:3] intValue] * 2; + numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:4] intValue] * 1; + numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:5] intValue] * 0.50; + [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%.2f",numCollected]]; + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Money Returned",nil)]) + { + double numReturned = 0; + numReturned += [[[[self sensorStatus] moneyReturned] objectAtIndex:0] intValue] * 2; + numReturned += [[[[self sensorStatus] moneyReturned] objectAtIndex:1] intValue] * 1; + numReturned += [[[[self sensorStatus] moneyReturned] objectAtIndex:2] intValue] * 0.50; + [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%.2f",numReturned]]; + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Products Sold",nil)]) + { + NSInteger numSold = 0; + for(int i = 0; i < MAX_PRODUCTS; i++) + { + numSold += [[[[self sensorStatus] productsSold] objectAtIndex:i] intValue]; + } + [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%d",numSold]]; + } + else if([[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"%@ (\\d+)",NSLocalizedString(@"Product",nil)] options:0 error:NULL] numberOfMatchesInString:[[cell textLabel] text] options:0 range:(NSMakeRange(0,[[[cell textLabel] text] length]))] != 0) + { + NSUInteger index = [[[[cell textLabel] text] substringFromIndex:([NSLocalizedString(@"Product",nil) length] + 1)] intValue] - 1; + if([cell tag] == 2007) + { + [[cell detailTextLabel] setText:[[[[self sensorStatus] productsSold] objectAtIndex:index] stringValue]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Change Available",nil)]) + { + [[cell detailTextLabel] setText:@""]; + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; + for(int i = 0; i < CHANGE_NUM_UNITS; i++) + { + if([[[[self sensorStatus] changeAvailable] objectAtIndex:i] intValue] != 1) + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; + break; + } + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"20€ Notes",nil)]) + { + if([cell tag] == 2005) + { + [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:0] stringValue]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"10€ Notes",nil)]) + { + if([cell tag] == 2005) + { + [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:1] stringValue]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"5€ Notes",nil)]) + { + if([cell tag] == 2005) + { + [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:2] stringValue]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"2€ Coins",nil)]) + { + if([cell tag] == 2005) + { + [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:3] stringValue]]; + } + else if([cell tag] == 2006) + { + [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyReturned] objectAtIndex:0] stringValue]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"1€ Coins",nil)]) + { + if([cell tag] == 2005) + { + [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:4] stringValue]]; + } + else if([cell tag] == 2006) + { + [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyReturned] objectAtIndex:1] stringValue]]; + } + else if([cell tag] == 2008) + { + if([[[[self sensorStatus] changeAvailable] objectAtIndex:0] intValue] == 1) + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; + } + else + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; + } + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"50c Coins",nil)]) + { + if([cell tag] == 2005) + { + [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:5] stringValue]]; + } + else if([cell tag] == 2006) + { + [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyReturned] objectAtIndex:2] stringValue]]; + } + else if([cell tag] == 2008) + { + if([[[[self sensorStatus] changeAvailable] objectAtIndex:1] intValue] == 1) + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; + } + else + { + [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; + } + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Sales log",nil)] || + [[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Incident report",nil)] || + [[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Send report",nil)]) + { + [[cell detailTextLabel] setText:@""]; + [cell setAccessoryView:nil]; + [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; + } + } + else if([self currentNavLevel] == SALE) + { + [[[cell contentView] viewWithTag:CELL_CARAT_TAG] removeFromSuperview]; + [[cell detailTextLabel] setText:@""]; + [cell setAccessoryView:nil]; + [cell setAccessoryType:UITableViewCellAccessoryNone]; + if(foldedList) + { + NSInteger cellHeight = cell.contentView.frame.size.height; + UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,cellHeight/2 - (11/2),11,11)]; + imageView.image = [UIImage imageNamed:@"carat.png"]; + imageView.tag = CELL_CARAT_TAG; + [cell.contentView addSubview:imageView]; + } + else if(unfoldedList) + { + NSInteger cellHeight = cell.contentView.frame.size.height; + UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,cellHeight/2 - (11/2),11,11)]; + imageView.image = [UIImage imageNamed:@"carat-open.png"]; + imageView.tag = CELL_CARAT_TAG; + [cell.contentView addSubview:imageView]; + } + if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Money Paid",nil)]) + { + double numCollected = 0; + numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:0] intValue] * 20; + numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:1] intValue] * 10; + numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:2] intValue] * 5; + numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:3] intValue] * 2; + numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:4] intValue] * 1; + numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:5] intValue] * 0.50; + [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%.2f",numCollected]]; + [cell setAccessoryView:nil]; + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Channel",nil)]) + { + [[cell detailTextLabel] setText:[[self currentSale] channel]]; + [cell setAccessoryView:nil]; + } + if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Product Code",nil)]) + { + [[cell detailTextLabel] setText:[[self currentSale] productCode]]; + [cell setAccessoryView:nil]; + } + if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Product Price",nil)]) + { + [[cell detailTextLabel] setText:[[self currentSale] normalPrice]]; + [cell setAccessoryView:nil]; + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Money Returned",nil)]) + { + double numReturned = 0; + numReturned += [[[[self currentSale] moneyReturned] objectAtIndex:0] intValue] * 2; + numReturned += [[[[self currentSale] moneyReturned] objectAtIndex:1] intValue] * 1; + numReturned += [[[[self currentSale] moneyReturned] objectAtIndex:2] intValue] * 0.50; + [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%.2f",numReturned]]; + [cell setAccessoryView:nil]; + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"20€ Notes",nil)]) + { + if([cell tag] == 3000) + { + [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid] objectAtIndex:0] stringValue]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"10€ Notes",nil)]) + { + if([cell tag] == 3000) + { + [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid] objectAtIndex:1] stringValue]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"5€ Notes",nil)]) + { + if([cell tag] == 3000) + { + [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid] objectAtIndex:2] stringValue]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"2€ Coins",nil)]) + { + if([cell tag] == 3000) + { + [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid] objectAtIndex:3] stringValue]]; + } + else if([cell tag] == 3004) + { + [[cell detailTextLabel] setText:[[[[self currentSale] moneyReturned] objectAtIndex:0] stringValue]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"1€ Coins",nil)]) + { + if([cell tag] == 3000) + { + [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid] objectAtIndex:4] stringValue]]; + } + else if([cell tag] == 3004) + { + [[cell detailTextLabel] setText:[[[[self currentSale] moneyReturned] objectAtIndex:1] stringValue]]; + } + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"50c Coins",nil)]) + { + if([cell tag] == 3000) + { + [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid]objectAtIndex:5] stringValue]]; + } + else if([cell tag] == 3004) + { + [[cell detailTextLabel] setText:[[[[self currentSale] moneyReturned] objectAtIndex:2] stringValue]]; + } + } + } + else if([self currentNavLevel] == INCIDENT) + { + [[[cell contentView] viewWithTag:CELL_CARAT_TAG] removeFromSuperview]; + [[cell detailTextLabel] setText:@""]; + [cell setAccessoryView:nil]; + [cell setAccessoryType:UITableViewCellAccessoryNone]; + if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Error Code",nil)]) + { + [[cell detailTextLabel] setText:[self.currentIncident errorCode]]; + [cell setAccessoryView:nil]; + } + else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Error Value",nil)]) + { + [[cell detailTextLabel] setText:[self.currentIncident errorValue]]; + [cell setAccessoryView:nil]; + } + } + return cell; +} + +//DELEGATE FUNCTIONS +- (void)passDateViewController:(DatePickerViewController *)controller didFinishEnteringItem:(NSDate *)date +{ + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; + NSDateComponents *components = [calendar components:units fromDate:date]; + NSLog(@"[MenuTableViewController.m]: %@", components); + [_protocol updateTime: components]; + [self setSentCommand:A5]; + [self startTimeoutTimer]; +} + +- (void)passPriceViewController:(PriceChangerViewController *)controller didFinishEnteringItem:(NSArray *)data +{ + NSLog(@"[MenuTableViewController.m]: %@", data); + //Channel,Code,Price + NSString *channelString = [data objectAtIndex:0]; + NSString *codeString = [data objectAtIndex:1]; + NSString *priceString = [data objectAtIndex:2]; + if(![[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"^\\d+(\\.\\d+)?$"] options:0 error:NULL] numberOfMatchesInString:priceString options:0 range:NSMakeRange(0,[priceString length])]) + { + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Entered price has an invalid format",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + } + else if([channelString length] == 0) + { + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Missing channel",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + } + else if([codeString length] == 0) + { + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Missing product code",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + } + else if(![[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"\\d+"] options:0 error:NULL] numberOfMatchesInString:channelString options:0 range:NSMakeRange(0,[channelString length])]) + { + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Entered channel has an invalid format",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + } + else if(![[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"\\d+"] options:0 error:NULL] numberOfMatchesInString:codeString options:0 range:NSMakeRange(0,[codeString length])]) + { + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Entered product code has an invalid format",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + } + else + { + int channel = [channelString intValue]; + int code = [codeString intValue]; + NSArray *price = [priceString componentsSeparatedByString:@"."]; + [_protocol updatePrice:channel :code :[[price objectAtIndex:0] intValue] :[[price objectAtIndex:1] intValue]]; + [self setSentCommand:A6]; + [self startTimeoutTimer]; + } +} + +- (void)passNameViewController:(PriceChangerViewController *)controller didFinishEnteringItem:(NSArray *)data +{ + NSLog(@"[MenuTableViewController.m]: %@", data); + //Channel,Code,Name + NSString *channelString = [data objectAtIndex:0]; + NSString *codeString = [data objectAtIndex:1]; + NSString *name = [data objectAtIndex:2]; + if([channelString length] == 0) + { + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Missing channel",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + } + else if([codeString length] == 0) + { + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Missing product code",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + } + else if(![[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"\\d+"] options:0 error:NULL] numberOfMatchesInString:channelString options:0 range:NSMakeRange(0,[channelString length])]) + { + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Entered channel has an invalid format",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + } + else if(![[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"\\d+"] options:0 error:NULL] numberOfMatchesInString:codeString options:0 range:NSMakeRange(0,[codeString length])]) + { + UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Entered product code has an invalid format",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; + [alert show]; + } + else + { + int channel = [channelString intValue]; + int code = [codeString intValue]; + [_protocol updateProductName:channel :code :name]; + [self setSentCommand:A7]; + [self startTimeoutTimer]; + } +} + +- (void) passDateRangeViewController:(DateRangePickerViewController*)controller didFinishEnteringItem:(NSDate*) from : (NSDate*) to +{ + [NSThread sleepForTimeInterval:1]; //HACK! + if([self requestedLog] == SALES_LOG) + { + NSLog(@"[MenuTableViewController.m]: Changing to navLevel: SALE_LIST"); + + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; + NSDateComponents *componentsFrom = nil; + NSDateComponents *componentsTo = nil; + if(from != nil) + { + componentsFrom = [calendar components:units fromDate:from]; + } + if(to != nil) + { + componentsTo = [calendar components:units fromDate:to]; + } + [_protocol readSalesLog: componentsFrom : componentsTo]; + [self setSentCommand:A2]; + [self startTimeoutTimer]; + } + else if([self requestedLog] == INCIDENT_LOG) + { + NSLog(@"[MenuTableViewController.m]: Changing to navLevel: INCIDENT_LIST"); + + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; + NSDateComponents *componentsFrom = nil; + NSDateComponents *componentsTo = nil; + if(from != nil) + { + componentsFrom = [calendar components:units fromDate:from]; + } + if(to != nil) + { + componentsTo = [calendar components:units fromDate:to]; + } + [_protocol readIncidentLog: componentsFrom : componentsTo]; + [self setSentCommand:A3]; + [self startTimeoutTimer]; + } +} + +@end diff --git a/BT Vendor/NameChangerViewController.h b/BT Vendor/NameChangerViewController.h new file mode 100644 index 0000000..0c21f59 --- /dev/null +++ b/BT Vendor/NameChangerViewController.h @@ -0,0 +1,33 @@ +// +// NameChangerViewController.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 9/3/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +@class NameChangerViewController; + +#import +#import +#import "BTAppDelegate.h" + +@protocol NameChangerViewControllerDelegate +- (void)passNameViewController:(NameChangerViewController*)controller didFinishEnteringItem:(NSArray *)data; + +@end + + +@interface NameChangerViewController : UIViewController + +@property (strong, nonatomic) IBOutlet UIView *nameChangerView; +@property (strong, nonatomic) IBOutlet UITextField *name; +@property (strong, nonatomic) IBOutlet UITextField *channel; +@property (strong, nonatomic) IBOutlet UITextField *code; +@property (nonatomic, strong) id delegate; + +- (void)showInView:(UIView *)aView animated:(BOOL)animated; +- (IBAction)closePopup:(id)sender; + + +@end \ No newline at end of file diff --git a/BT Vendor/NameChangerViewController.m b/BT Vendor/NameChangerViewController.m new file mode 100644 index 0000000..993b8a7 --- /dev/null +++ b/BT Vendor/NameChangerViewController.m @@ -0,0 +1,102 @@ +// +// NameChangerViewController.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 9/3/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "NameChangerViewController.h" + +@interface NameChangerViewController () + +@end + +@implementation NameChangerViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} + +- (void)viewDidLoad +{ + self.nameChangerView.layer.cornerRadius = 5; + self.nameChangerView.layer.shadowOpacity = 0.8; + self.nameChangerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); + + self.code.delegate = self; + self.channel.delegate = self; + self.name.delegate = self; + + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] + initWithTarget:self + action:@selector(dismissKeyboard)]; + + [self.view addGestureRecognizer:tap]; + + [super viewDidLoad]; + // Do any additional setup after loading the view from its nib. +} + +-(void)dismissKeyboard +{ + [self.code resignFirstResponder]; + [self.name resignFirstResponder]; + [self.channel resignFirstResponder]; +} + +-(BOOL)textFieldShouldReturn:(UITextField *)textField +{ + [textField resignFirstResponder]; + return YES; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +- (void)showAnimate +{ + self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); + self.view.alpha = 0; + [UIView animateWithDuration:.25 animations:^{ + self.view.alpha = 1; + self.view.transform = CGAffineTransformMakeScale(1, 1); + }]; +} + +- (void)removeAnimate +{ + [UIView animateWithDuration:.25 animations:^{ + self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); + self.view.alpha = 0.0; + } completion:^(BOOL finished) { + if (finished) { + [self.view removeFromSuperview]; + } + }]; +} + +- (IBAction)closePopup:(id)sender +{ + NSArray *data = [[NSArray alloc] initWithObjects:[[self channel] text],[[self code] text],[[self name] text], nil]; + [self.delegate passNameViewController:self didFinishEnteringItem:data]; + [self removeAnimate]; +} + +- (void)showInView:(UIView *)aView animated:(BOOL)animated +{ + [aView addSubview:self.view]; + if (animated) { + [self showAnimate]; + } +} + +@end diff --git a/BT Vendor/PriceChangerViewController.h b/BT Vendor/PriceChangerViewController.h new file mode 100644 index 0000000..c12d175 --- /dev/null +++ b/BT Vendor/PriceChangerViewController.h @@ -0,0 +1,33 @@ +// +// PriceChangerViewController.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 9/3/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +@class PriceChangerViewController; + +#import +#import +#import "BTAppDelegate.h" + +@protocol PriceChangerViewControllerDelegate +- (void)passPriceViewController:(PriceChangerViewController*)controller didFinishEnteringItem:(NSArray *)data; + +@end + + +@interface PriceChangerViewController : UIViewController + +@property (strong, nonatomic) IBOutlet UIView *priceChangerView; +@property (strong, nonatomic) IBOutlet UITextField *price; +@property (strong, nonatomic) IBOutlet UITextField *channel; +@property (strong, nonatomic) IBOutlet UITextField *code; +@property (nonatomic, strong) id delegate; + +- (void)showInView:(UIView *)aView animated:(BOOL)animated; +- (IBAction)closePopup:(id)sender; + + +@end diff --git a/BT Vendor/PriceChangerViewController.m b/BT Vendor/PriceChangerViewController.m new file mode 100644 index 0000000..9a974e3 --- /dev/null +++ b/BT Vendor/PriceChangerViewController.m @@ -0,0 +1,120 @@ +// +// PriceChangerViewController.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 9/3/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "PriceChangerViewController.h" + +@interface PriceChangerViewController () + +@end + +@implementation PriceChangerViewController + +- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil +{ + self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; + if (self) { + // Custom initialization + } + return self; +} + +- (void)viewDidLoad +{ + self.priceChangerView.layer.cornerRadius = 5; + self.priceChangerView.layer.shadowOpacity = 0.8; + self.priceChangerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); + + self.code.delegate = self; + self.channel.delegate = self; + self.price.delegate = self; + + UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] + initWithTarget:self + action:@selector(dismissKeyboard)]; + + [self.view addGestureRecognizer:tap]; + + [super viewDidLoad]; + // Do any additional setup after loading the view from its nib. +} + +-(void)dismissKeyboard +{ + [self.code resignFirstResponder]; + [self.price resignFirstResponder]; + [self.channel resignFirstResponder]; +} + +-(BOOL)textFieldShouldReturn:(UITextField *)textField +{ + [textField resignFirstResponder]; + return YES; +} + +- (void)didReceiveMemoryWarning +{ + [super didReceiveMemoryWarning]; + // Dispose of any resources that can be recreated. +} + +- (void)showAnimate +{ + self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); + self.view.alpha = 0; + [UIView animateWithDuration:.25 animations:^{ + self.view.alpha = 1; + self.view.transform = CGAffineTransformMakeScale(1, 1); + }]; +} + +- (void)removeAnimate +{ + [UIView animateWithDuration:.25 animations:^{ + self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); + self.view.alpha = 0.0; + } completion:^(BOOL finished) { + if (finished) { + [self.view removeFromSuperview]; + } + }]; +} + +- (void) formatPrice +{ + NSMutableString *priceText = [NSMutableString stringWithString:[[self price] text]]; + [priceText replaceOccurrencesOfString:@"," withString:@"." options:NSLiteralSearch range:NSMakeRange(0, [priceText length])]; + NSUInteger commaPos = [priceText rangeOfString:@"."].location; + if(commaPos == NSNotFound) + { + [priceText appendString:@".00"]; + } + else if(commaPos == [priceText length] - 2) + { + [priceText appendString:@"0"]; + } + [[self price] setText:priceText]; +} + +- (IBAction)closePopup:(id)sender +{ + [self formatPrice]; + NSArray *data = [[NSArray alloc] initWithObjects:[[self channel] text],[[self code] text],[[self price] text], nil]; + [self.delegate passPriceViewController:self didFinishEnteringItem:data]; + [self removeAnimate]; +} + +- (void)showInView:(UIView *)aView animated:(BOOL)animated +{ + [aView addSubview:self.view]; + if (animated) { + [self showAnimate]; + } +} + + +@end diff --git a/BT Vendor/Sale.h b/BT Vendor/Sale.h new file mode 100644 index 0000000..0d901be --- /dev/null +++ b/BT Vendor/Sale.h @@ -0,0 +1,23 @@ +// +// Sale.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 07/09/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import +#import "CommunicationProtocol.h" + +@interface Sale : NSObject + +@property (strong,nonatomic) NSMutableArray *moneyPaid; +@property (strong,nonatomic) NSMutableArray *moneyReturned; +@property NSString *productCode; +@property NSString *normalPrice; +@property NSString *channel; +@property NSDate *saleTime; + +- (id) init; + +@end diff --git a/BT Vendor/Sale.m b/BT Vendor/Sale.m new file mode 100644 index 0000000..a8b3b7c --- /dev/null +++ b/BT Vendor/Sale.m @@ -0,0 +1,20 @@ +// +// Sale.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 07/09/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "Sale.h" + +@implementation Sale + +- (id) init +{ + [self setMoneyPaid:[[NSMutableArray alloc]init]]; + [self setMoneyReturned:[[NSMutableArray alloc]init]]; + return self; +} + +@end diff --git a/BT Vendor/SalesLog.h b/BT Vendor/SalesLog.h new file mode 100644 index 0000000..ebb6785 --- /dev/null +++ b/BT Vendor/SalesLog.h @@ -0,0 +1,21 @@ +// +// SalesLog.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 07/09/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import +#import "CommunicationProtocol.h" +#import "Sale.h" + +@interface SalesLog : NSObject + +@property (strong,nonatomic) NSString *response; +@property (strong,nonatomic) NSMutableArray *sales; + +- (id) init; +- (void) setResponseValue:(NSString *)response; + +@end diff --git a/BT Vendor/SalesLog.m b/BT Vendor/SalesLog.m new file mode 100644 index 0000000..363dbbe --- /dev/null +++ b/BT Vendor/SalesLog.m @@ -0,0 +1,66 @@ +// +// SalesLog.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 07/09/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "SalesLog.h" + +@implementation SalesLog + +- (id) init +{ + [self setSales:[[NSMutableArray alloc] init]]; + return self; +} + +- (void) setResponseValue:(NSString *)response +{ + [self setResponse: response]; + [self parseResponse]; +} + +- (void) parseResponse +{ + NSInteger currentSale = 0; + NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; + NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; + NSDateComponents *saleDate = [[NSDateComponents alloc] init]; + NSInteger currentYear = [[calendar components:units fromDate:[NSDate date]] year]; + currentYear = (currentYear/100)*100; + while(![[[self response] substringWithRange:NSMakeRange((currentSale*SALE_STRING_LENGTH), 4)] isEqualToString:@"P2P2"]) + { + Sale *sale = [[Sale alloc] init]; + [saleDate setYear:(currentYear + [[[self response] substringWithRange:NSMakeRange(2 + currentSale*SALE_STRING_LENGTH, 2)] intValue])]; + [saleDate setMonth:[[[self response] substringWithRange:NSMakeRange(4 + currentSale*SALE_STRING_LENGTH, 2)] intValue]]; + [saleDate setDay:[[[self response] substringWithRange:NSMakeRange(6 + currentSale*SALE_STRING_LENGTH, 2)] intValue]]; + [saleDate setHour:[[[self response] substringWithRange:NSMakeRange(8 + currentSale*SALE_STRING_LENGTH, 2)] intValue]]; + [saleDate setMinute:[[[self response] substringWithRange:NSMakeRange(10 + currentSale*SALE_STRING_LENGTH, 2)] intValue]]; + [sale setSaleTime:[calendar dateFromComponents:saleDate]]; + NSLog(@"date: %@",[calendar dateFromComponents:saleDate]); + [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(12 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:0]; + [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(14 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:1]; + [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(16 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:2]; + [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(18 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:3]; + [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(20 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:4]; + [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(22 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:5]; + NSLog(@"moneyPaid: %@",[sale moneyPaid]); + [sale setChannel:[[self response] substringWithRange:NSMakeRange(24 + currentSale*SALE_STRING_LENGTH, 1)]]; + NSLog(@"channel: %@",[sale channel]); + [sale setProductCode:[[self response] substringWithRange:NSMakeRange(25 + currentSale*SALE_STRING_LENGTH, 1)]]; + NSLog(@"productCode: %@",[sale productCode]); + [sale setNormalPrice: [NSString stringWithFormat:@"%d,%02d €",[[[self response] substringWithRange:NSMakeRange(26 + currentSale*SALE_STRING_LENGTH, 2)] intValue],[[[self response] substringWithRange:NSMakeRange(28 + currentSale*SALE_STRING_LENGTH, 2)] intValue]]]; + NSLog(@"normalPrice: %@",[sale normalPrice]); + [[sale moneyReturned] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(30 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:0]; + [[sale moneyReturned] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(32 + currentSale*SALE_STRING_LENGTH , 2)] intValue]] atIndex:1]; + [[sale moneyReturned] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(34 + currentSale*SALE_STRING_LENGTH , 2)] intValue]] atIndex:2]; + NSLog(@"moneyReturned: %@",[sale moneyReturned]); + [[self sales] insertObject:sale atIndex:currentSale]; + currentSale++; + } + NSLog(@"%@",[self sales]); +} + +@end diff --git a/BT Vendor/Sensors.h b/BT Vendor/Sensors.h new file mode 100644 index 0000000..081dd97 --- /dev/null +++ b/BT Vendor/Sensors.h @@ -0,0 +1,28 @@ +// +// Sensors.h +// DUREX Vendor Control +// +// Created by Imanol Barba on 9/5/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import +#import "CommunicationProtocol.h" + +@interface Sensors : NSObject + +@property (strong,nonatomic) NSString *response; +@property NSUInteger numChannels; +@property (strong,nonatomic) NSMutableArray *channelProductAvailability; +@property (strong,nonatomic) NSMutableArray *channelStatus; +@property Boolean doorOpen; +@property Boolean coilOpen; +@property (strong,nonatomic) NSMutableArray *moneyCollected; +@property (strong,nonatomic) NSMutableArray *moneyReturned; +@property (strong,nonatomic) NSMutableArray *productsSold; +@property (strong,nonatomic) NSMutableArray *changeAvailable; + +- (id) init; +- (void) setResponseValue:(NSString *)response; + +@end diff --git a/BT Vendor/Sensors.m b/BT Vendor/Sensors.m new file mode 100644 index 0000000..e46e77f --- /dev/null +++ b/BT Vendor/Sensors.m @@ -0,0 +1,148 @@ +// +// Sensors.m +// DUREX Vendor Control +// +// Created by Imanol Barba on 9/5/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import "Sensors.h" + +@interface Sensors () + +@end + +@implementation Sensors + +- (id) init +{ + [self setChannelProductAvailability:[[NSMutableArray alloc]init]]; + [self setChannelStatus:[[NSMutableArray alloc]init]]; + [self setMoneyCollected:[[NSMutableArray alloc]init]]; + [self setMoneyReturned:[[NSMutableArray alloc]init]]; + [self setProductsSold:[[NSMutableArray alloc]init]]; + [self setChangeAvailable:[[NSMutableArray alloc] init]]; + + return self; +} + +- (void) setResponseValue:(NSString *)response +{ + [self setResponse:response]; + [self parseResponse]; +} + +- (void) parseResponse +{ + uint8_t channelCount = 0; + uint16_t channelStatus = 0; + uint16_t channelAvailability = 0; + uint16_t channelMotors = 0; + + NSRange substrRange; + substrRange.length = 5; + substrRange.location = 2; + + channelStatus = [[[self response] substringWithRange:substrRange] intValue]; + substrRange.location += 5; + + channelAvailability = [[[self response] substringWithRange:substrRange] intValue]; + substrRange.location += 5; + + channelMotors = [[[self response] substringWithRange:substrRange] intValue]; + substrRange.location += 5; + + for(int i = 0; i < MAX_CHANNELS; i++) + { + if(channelStatus & 0x01) + { + channelCount++; + } + channelStatus >>= 1; + } + [self setNumChannels:channelCount]; + + for(int i = 0; i < MAX_CHANNELS; i++) + { + if(channelAvailability & 0x01) + { + [[self channelProductAvailability] insertObject:[NSNumber numberWithBool:TRUE] atIndex:i]; + } + else + { + [[self channelProductAvailability] insertObject:[NSNumber numberWithBool:FALSE] atIndex:i]; + } + channelAvailability >>= 1; + } + + for(int i = 0; i < MAX_CHANNELS; i++) + { + if(channelMotors & 0x01) + { + [[self channelStatus] insertObject:[NSNumber numberWithBool:TRUE] atIndex:i]; + } + else + { + [[self channelStatus] insertObject:[NSNumber numberWithBool:FALSE] atIndex:i]; + } + channelMotors >>= 1; + } + + if([[self response] characterAtIndex:17] == '1') + { + [self setDoorOpen:TRUE]; + } + else + { + [self setDoorOpen:FALSE]; + } + + if([[self response] characterAtIndex:18] == '1') + { + [self setCoilOpen:TRUE]; + } + else + { + [self setCoilOpen:FALSE]; + } + substrRange.length = 3; + substrRange.location = 19; + + for(int i = 0; i < MONEY_IN_NUM_UNITS; i++) + { + [[self moneyCollected] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:substrRange] intValue]] atIndex:i]; + substrRange.location += 3; + } + for(int i = 0; i < MONEY_OUT_NUM_UNITS; i++) + { + [[self moneyReturned] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:substrRange] intValue]] atIndex:i]; + substrRange.location += 3; + } + + substrRange.length = 2; + for(int i = 0; i < MAX_PRODUCTS; i++) + { + [[self productsSold] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:substrRange] intValue]] atIndex:i]; + substrRange.location += 2; + } + + if([[self response] characterAtIndex:78] == '1') + { + [[self changeAvailable]insertObject:[NSNumber numberWithBool:TRUE] atIndex:0]; + } + else + { + [[self changeAvailable]insertObject:[NSNumber numberWithBool:FALSE] atIndex:0]; + } + + if([[self response] characterAtIndex:79] == '1') + { + [[self changeAvailable]insertObject:[NSNumber numberWithBool:TRUE] atIndex:1]; + } + else + { + [[self changeAvailable]insertObject:[NSNumber numberWithBool:FALSE] atIndex:1]; + } +} + +@end diff --git a/BT Vendor/Stack.h b/BT Vendor/Stack.h new file mode 100644 index 0000000..c0cbe1a --- /dev/null +++ b/BT Vendor/Stack.h @@ -0,0 +1,19 @@ +// +// Stack.h +// DUREX test +// +// Created by Imanol Barba on 5/23/14. +// Copyright (c) 2014 Emmoco. All rights reserved. +// + +#import + +@interface Stack : NSObject + +- (id) init; +- (void) push: (id) element; +- (id) pop; +- (NSInteger) count; +- (void) clear; + +@end diff --git a/BT Vendor/Stack.m b/BT Vendor/Stack.m new file mode 100644 index 0000000..25d90b4 --- /dev/null +++ b/BT Vendor/Stack.m @@ -0,0 +1,49 @@ +// +// Stack.m +// DUREX test +// +// Created by Imanol Barba on 5/23/14. +// Copyright (c) 2014 Emmoco. All rights reserved.retur +// + +#import "Stack.h" + +@interface Stack () + +@property (strong,nonatomic) NSMutableArray *dataArray; +@property (nonatomic) NSUInteger lastPosition; +@end + +@implementation Stack + +- (id) init +{ + self = [super init]; + [self setLastPosition: 0]; + [self setDataArray:[[NSMutableArray alloc] init]]; + return self; +} + +- (void) push: (id) element +{ + [[self dataArray] addObject:element]; + [self setLastPosition: [self lastPosition] + 1]; +} +- (id) pop +{ + id element; + [self setLastPosition: [self lastPosition] - 1]; + element = [[self dataArray] objectAtIndex:[self lastPosition]]; + [[self dataArray] removeLastObject]; + return element; +} +- (NSInteger) count +{ + return [[self dataArray] count]; +} +- (void) clear +{ + [[self dataArray] removeAllObjects]; +} + +@end diff --git a/BT Vendor/UIView+Toast.h b/BT Vendor/UIView+Toast.h new file mode 100755 index 0000000..f4c1832 --- /dev/null +++ b/BT Vendor/UIView+Toast.h @@ -0,0 +1,50 @@ +/*************************************************************************** + +UIView+Toast.h +Toast + +Copyright (c) 2013 Charles Scalesse. + +Permission is hereby granted, free of charge, to any person obtaining a +copy of this software and associated documentation files (the +"Software"), to deal in the Software without restriction, including +without limitation the rights to use, copy, modify, merge, publish, +distribute, sublicense, and/or sell copies of the Software, and to +permit persons to whom the Software is furnished to do so, subject to +the following conditions: + +The above copyright notice and this permission notice shall be included +in all copies or substantial portions of the Software. + +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 UIView (Toast) + +// each makeToast method creates a view and displays it as toast +- (void)makeToast:(NSString *)message; +- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position; +- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position image:(UIImage *)image; +- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position title:(NSString *)title; +- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position title:(NSString *)title image:(UIImage *)image; + +// displays toast with an activity spinner +- (void)makeToastActivity; +- (void)makeToastActivity:(id)position; +- (void)hideToastActivity; + +// the showToast methods display any view as toast +- (void)showToast:(UIView *)toast; +- (void)showToast:(UIView *)toast duration:(NSTimeInterval)interval position:(id)point; + +@end diff --git a/BT Vendor/UIView+Toast.m b/BT Vendor/UIView+Toast.m new file mode 100755 index 0000000..00408d5 --- /dev/null +++ b/BT Vendor/UIView+Toast.m @@ -0,0 +1,365 @@ +// +// UIView+Toast.m +// Toast +// +// Copyright 2013 Charles Scalesse. +// + +#import "UIView+Toast.h" +#import +#import + +/* + * CONFIGURE THESE VALUES TO ADJUST LOOK & FEEL, + * DISPLAY DURATION, ETC. + */ + +// general appearance +static const CGFloat CSToastMaxWidth = 0.8; // 80% of parent view width +static const CGFloat CSToastMaxHeight = 0.8; // 80% of parent view height +static const CGFloat CSToastHorizontalPadding = 10.0; +static const CGFloat CSToastVerticalPadding = 10.0; +static const CGFloat CSToastCornerRadius = 10.0; +static const CGFloat CSToastOpacity = 0.8; +static const CGFloat CSToastFontSize = 16.0; +static const CGFloat CSToastMaxTitleLines = 0; +static const CGFloat CSToastMaxMessageLines = 0; +static const NSTimeInterval CSToastFadeDuration = 0.2; + +// shadow appearance +static const CGFloat CSToastShadowOpacity = 0.8; +static const CGFloat CSToastShadowRadius = 6.0; +static const CGSize CSToastShadowOffset = { 4.0, 4.0 }; +static const BOOL CSToastDisplayShadow = YES; + +// display duration and position +static const NSString * CSToastDefaultPosition = @"bottom"; +static const NSTimeInterval CSToastDefaultDuration = 3.0; + +// image view size +static const CGFloat CSToastImageViewWidth = 80.0; +static const CGFloat CSToastImageViewHeight = 80.0; + +// activity +static const CGFloat CSToastActivityWidth = 100.0; +static const CGFloat CSToastActivityHeight = 100.0; +static const NSString * CSToastActivityDefaultPosition = @"center"; + +// interaction +static const BOOL CSToastHidesOnTap = YES; // excludes activity views + +// associative reference keys +static const NSString * CSToastTimerKey = @"CSToastTimerKey"; +static const NSString * CSToastActivityViewKey = @"CSToastActivityViewKey"; + +@interface UIView (ToastPrivate) + +- (void)hideToast:(UIView *)toast; +- (void)toastTimerDidFinish:(NSTimer *)timer; +- (void)handleToastTapped:(UITapGestureRecognizer *)recognizer; +- (CGPoint)centerPointForPosition:(id)position withToast:(UIView *)toast; +- (UIView *)viewForMessage:(NSString *)message title:(NSString *)title image:(UIImage *)image; +- (CGSize)sizeForString:(NSString *)string font:(UIFont *)font constrainedToSize:(CGSize)constrainedSize lineBreakMode:(NSLineBreakMode)lineBreakMode; + +@end + + +@implementation UIView (Toast) + +#pragma mark - Toast Methods + +- (void)makeToast:(NSString *)message { + [self makeToast:message duration:CSToastDefaultDuration position:CSToastDefaultPosition]; +} + +- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position { + UIView *toast = [self viewForMessage:message title:nil image:nil]; + [self showToast:toast duration:duration position:position]; +} + +- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position title:(NSString *)title { + UIView *toast = [self viewForMessage:message title:title image:nil]; + [self showToast:toast duration:duration position:position]; +} + +- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position image:(UIImage *)image { + UIView *toast = [self viewForMessage:message title:nil image:image]; + [self showToast:toast duration:duration position:position]; +} + +- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position title:(NSString *)title image:(UIImage *)image { + UIView *toast = [self viewForMessage:message title:title image:image]; + [self showToast:toast duration:duration position:position]; +} + +- (void)showToast:(UIView *)toast { + [self showToast:toast duration:CSToastDefaultDuration position:CSToastDefaultPosition]; +} + +- (void)showToast:(UIView *)toast duration:(NSTimeInterval)duration position:(id)point { + toast.center = [self centerPointForPosition:point withToast:toast]; + toast.alpha = 0.0; + + if (CSToastHidesOnTap) { + UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:toast action:@selector(handleToastTapped:)]; + [toast addGestureRecognizer:recognizer]; + toast.userInteractionEnabled = YES; + toast.exclusiveTouch = YES; + } + + [self addSubview:toast]; + + [UIView animateWithDuration:CSToastFadeDuration + delay:0.0 + options:(UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionAllowUserInteraction) + animations:^{ + toast.alpha = 1.0; + } completion:^(BOOL finished) { + NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:duration target:self selector:@selector(toastTimerDidFinish:) userInfo:toast repeats:NO]; + // associate the timer with the toast view + objc_setAssociatedObject (toast, &CSToastTimerKey, timer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + }]; + +} + +- (void)hideToast:(UIView *)toast { + [UIView animateWithDuration:CSToastFadeDuration + delay:0.0 + options:(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState) + animations:^{ + toast.alpha = 0.0; + } completion:^(BOOL finished) { + [toast removeFromSuperview]; + }]; +} + +#pragma mark - Events + +- (void)toastTimerDidFinish:(NSTimer *)timer { + [self hideToast:(UIView *)timer.userInfo]; +} + +- (void)handleToastTapped:(UITapGestureRecognizer *)recognizer { + NSTimer *timer = (NSTimer *)objc_getAssociatedObject(self, &CSToastTimerKey); + [timer invalidate]; + + [self hideToast:recognizer.view]; +} + +#pragma mark - Toast Activity Methods + +- (void)makeToastActivity { + [self makeToastActivity:CSToastActivityDefaultPosition]; +} + +- (void)makeToastActivity:(id)position { + // sanity + UIView *existingActivityView = (UIView *)objc_getAssociatedObject(self, &CSToastActivityViewKey); + if (existingActivityView != nil) return; + + UIView *activityView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CSToastActivityWidth, CSToastActivityHeight)]; + activityView.center = [self centerPointForPosition:position withToast:activityView]; + activityView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:CSToastOpacity]; + activityView.alpha = 0.0; + activityView.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin); + activityView.layer.cornerRadius = CSToastCornerRadius; + + if (CSToastDisplayShadow) { + activityView.layer.shadowColor = [UIColor blackColor].CGColor; + activityView.layer.shadowOpacity = CSToastShadowOpacity; + activityView.layer.shadowRadius = CSToastShadowRadius; + activityView.layer.shadowOffset = CSToastShadowOffset; + } + + UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; + activityIndicatorView.center = CGPointMake(activityView.bounds.size.width / 2, activityView.bounds.size.height / 2); + [activityView addSubview:activityIndicatorView]; + [activityIndicatorView startAnimating]; + + // associate the activity view with self + objc_setAssociatedObject (self, &CSToastActivityViewKey, activityView, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + + [self addSubview:activityView]; + + [UIView animateWithDuration:CSToastFadeDuration + delay:0.0 + options:UIViewAnimationOptionCurveEaseOut + animations:^{ + activityView.alpha = 1.0; + } completion:nil]; +} + +- (void)hideToastActivity { + UIView *existingActivityView = (UIView *)objc_getAssociatedObject(self, &CSToastActivityViewKey); + if (existingActivityView != nil) { + [UIView animateWithDuration:CSToastFadeDuration + delay:0.0 + options:(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState) + animations:^{ + existingActivityView.alpha = 0.0; + } completion:^(BOOL finished) { + [existingActivityView removeFromSuperview]; + objc_setAssociatedObject (self, &CSToastActivityViewKey, nil, OBJC_ASSOCIATION_RETAIN_NONATOMIC); + }]; + } +} + +#pragma mark - Helpers + +- (CGPoint)centerPointForPosition:(id)point withToast:(UIView *)toast { + if([point isKindOfClass:[NSString class]]) { + // convert string literals @"top", @"bottom", @"center", or any point wrapped in an NSValue object into a CGPoint + if([point caseInsensitiveCompare:@"top"] == NSOrderedSame) { + return CGPointMake(self.bounds.size.width/2, (toast.frame.size.height / 2) + CSToastVerticalPadding); + } else if([point caseInsensitiveCompare:@"bottom"] == NSOrderedSame) { + return CGPointMake(self.bounds.size.width/2, (self.bounds.size.height - (toast.frame.size.height / 2)) - CSToastVerticalPadding); + } else if([point caseInsensitiveCompare:@"center"] == NSOrderedSame) { + return CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2); + } + } else if ([point isKindOfClass:[NSValue class]]) { + return [point CGPointValue]; + } + + NSLog(@"Warning: Invalid position for toast."); + return [self centerPointForPosition:CSToastDefaultPosition withToast:toast]; +} + +- (CGSize)sizeForString:(NSString *)string font:(UIFont *)font constrainedToSize:(CGSize)constrainedSize lineBreakMode:(NSLineBreakMode)lineBreakMode { + if ([string respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { + NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; + paragraphStyle.lineBreakMode = lineBreakMode; + NSDictionary *attributes = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle}; + CGRect boundingRect = [string boundingRectWithSize:constrainedSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil]; + return CGSizeMake(ceilf(boundingRect.size.width), ceilf(boundingRect.size.height)); + } + +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" + return [string sizeWithFont:font constrainedToSize:constrainedSize lineBreakMode:lineBreakMode]; +#pragma clang diagnostic pop +} + +- (UIView *)viewForMessage:(NSString *)message title:(NSString *)title image:(UIImage *)image { + // sanity + if((message == nil) && (title == nil) && (image == nil)) return nil; + + // dynamically build a toast view with any combination of message, title, & image. + UILabel *messageLabel = nil; + UILabel *titleLabel = nil; + UIImageView *imageView = nil; + + // create the parent view + UIView *wrapperView = [[UIView alloc] init]; + wrapperView.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin); + wrapperView.layer.cornerRadius = CSToastCornerRadius; + + if (CSToastDisplayShadow) { + wrapperView.layer.shadowColor = [UIColor blackColor].CGColor; + wrapperView.layer.shadowOpacity = CSToastShadowOpacity; + wrapperView.layer.shadowRadius = CSToastShadowRadius; + wrapperView.layer.shadowOffset = CSToastShadowOffset; + } + + wrapperView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:CSToastOpacity]; + + if(image != nil) { + imageView = [[UIImageView alloc] initWithImage:image]; + imageView.contentMode = UIViewContentModeScaleAspectFit; + imageView.frame = CGRectMake(CSToastHorizontalPadding, CSToastVerticalPadding, CSToastImageViewWidth, CSToastImageViewHeight); + } + + CGFloat imageWidth, imageHeight, imageLeft; + + // the imageView frame values will be used to size & position the other views + if(imageView != nil) { + imageWidth = imageView.bounds.size.width; + imageHeight = imageView.bounds.size.height; + imageLeft = CSToastHorizontalPadding; + } else { + imageWidth = imageHeight = imageLeft = 0.0; + } + + if (title != nil) { + titleLabel = [[UILabel alloc] init]; + titleLabel.numberOfLines = CSToastMaxTitleLines; + titleLabel.font = [UIFont boldSystemFontOfSize:CSToastFontSize]; + titleLabel.textAlignment = NSTextAlignmentLeft; + titleLabel.lineBreakMode = NSLineBreakByWordWrapping; + titleLabel.textColor = [UIColor whiteColor]; + titleLabel.backgroundColor = [UIColor clearColor]; + titleLabel.alpha = 1.0; + titleLabel.text = title; + + // size the title label according to the length of the text + CGSize maxSizeTitle = CGSizeMake((self.bounds.size.width * CSToastMaxWidth) - imageWidth, self.bounds.size.height * CSToastMaxHeight); + CGSize expectedSizeTitle = [self sizeForString:title font:titleLabel.font constrainedToSize:maxSizeTitle lineBreakMode:titleLabel.lineBreakMode]; + titleLabel.frame = CGRectMake(0.0, 0.0, expectedSizeTitle.width, expectedSizeTitle.height); + } + + if (message != nil) { + messageLabel = [[UILabel alloc] init]; + messageLabel.numberOfLines = CSToastMaxMessageLines; + messageLabel.font = [UIFont systemFontOfSize:CSToastFontSize]; + messageLabel.lineBreakMode = NSLineBreakByWordWrapping; + messageLabel.textColor = [UIColor whiteColor]; + messageLabel.backgroundColor = [UIColor clearColor]; + messageLabel.alpha = 1.0; + messageLabel.text = message; + + // size the message label according to the length of the text + CGSize maxSizeMessage = CGSizeMake((self.bounds.size.width * CSToastMaxWidth) - imageWidth, self.bounds.size.height * CSToastMaxHeight); + CGSize expectedSizeMessage = [self sizeForString:message font:messageLabel.font constrainedToSize:maxSizeMessage lineBreakMode:messageLabel.lineBreakMode]; + messageLabel.frame = CGRectMake(0.0, 0.0, expectedSizeMessage.width, expectedSizeMessage.height); + } + + // titleLabel frame values + CGFloat titleWidth, titleHeight, titleTop, titleLeft; + + if(titleLabel != nil) { + titleWidth = titleLabel.bounds.size.width; + titleHeight = titleLabel.bounds.size.height; + titleTop = CSToastVerticalPadding; + titleLeft = imageLeft + imageWidth + CSToastHorizontalPadding; + } else { + titleWidth = titleHeight = titleTop = titleLeft = 0.0; + } + + // messageLabel frame values + CGFloat messageWidth, messageHeight, messageLeft, messageTop; + + if(messageLabel != nil) { + messageWidth = messageLabel.bounds.size.width; + messageHeight = messageLabel.bounds.size.height; + messageLeft = imageLeft + imageWidth + CSToastHorizontalPadding; + messageTop = titleTop + titleHeight + CSToastVerticalPadding; + } else { + messageWidth = messageHeight = messageLeft = messageTop = 0.0; + } + + CGFloat longerWidth = MAX(titleWidth, messageWidth); + CGFloat longerLeft = MAX(titleLeft, messageLeft); + + // wrapper width uses the longerWidth or the image width, whatever is larger. same logic applies to the wrapper height + CGFloat wrapperWidth = MAX((imageWidth + (CSToastHorizontalPadding * 2)), (longerLeft + longerWidth + CSToastHorizontalPadding)); + CGFloat wrapperHeight = MAX((messageTop + messageHeight + CSToastVerticalPadding), (imageHeight + (CSToastVerticalPadding * 2))); + + wrapperView.frame = CGRectMake(0.0, 0.0, wrapperWidth, wrapperHeight); + + if(titleLabel != nil) { + titleLabel.frame = CGRectMake(titleLeft, titleTop, titleWidth, titleHeight); + [wrapperView addSubview:titleLabel]; + } + + if(messageLabel != nil) { + messageLabel.frame = CGRectMake(messageLeft, messageTop, messageWidth, messageHeight); + [wrapperView addSubview:messageLabel]; + } + + if(imageView != nil) { + [wrapperView addSubview:imageView]; + } + + return wrapperView; +} + +@end diff --git a/BT Vendor/bluetooth.png b/BT Vendor/bluetooth.png new file mode 100644 index 0000000..7befaba Binary files /dev/null and b/BT Vendor/bluetooth.png differ diff --git a/BT Vendor/carat-open.png b/BT Vendor/carat-open.png new file mode 100644 index 0000000..11c7038 Binary files /dev/null and b/BT Vendor/carat-open.png differ diff --git a/BT Vendor/carat.png b/BT Vendor/carat.png new file mode 100644 index 0000000..ffa0011 Binary files /dev/null and b/BT Vendor/carat.png differ diff --git a/BT Vendor/en.lproj/DatePickerViewController.strings b/BT Vendor/en.lproj/DatePickerViewController.strings new file mode 100644 index 0000000..1b5338e --- /dev/null +++ b/BT Vendor/en.lproj/DatePickerViewController.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "8vW-ig-tUA"; */ +"8vW-ig-tUA.normalTitle" = "Done"; diff --git a/BT Vendor/en.lproj/DatePickerViewController_Landscape.strings b/BT Vendor/en.lproj/DatePickerViewController_Landscape.strings new file mode 100644 index 0000000..1e1f995 --- /dev/null +++ b/BT Vendor/en.lproj/DatePickerViewController_Landscape.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "SLt-EA-xM9"; */ +"SLt-EA-xM9.normalTitle" = "Done"; diff --git a/BT Vendor/en.lproj/DatePickerViewController_iPad.strings b/BT Vendor/en.lproj/DatePickerViewController_iPad.strings new file mode 100644 index 0000000..78dd0bc --- /dev/null +++ b/BT Vendor/en.lproj/DatePickerViewController_iPad.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "RGE-Ye-qon"; */ +"RGE-Ye-qon.normalTitle" = "Done"; diff --git a/BT Vendor/en.lproj/DatePickerViewController_iPad_Landscape.strings b/BT Vendor/en.lproj/DatePickerViewController_iPad_Landscape.strings new file mode 100644 index 0000000..6c603a3 --- /dev/null +++ b/BT Vendor/en.lproj/DatePickerViewController_iPad_Landscape.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "JbU-pO-d9E"; */ +"JbU-pO-d9E.normalTitle" = "Done"; diff --git a/BT Vendor/en.lproj/DateRangePickerViewController.strings b/BT Vendor/en.lproj/DateRangePickerViewController.strings new file mode 100644 index 0000000..b5e4bf7 --- /dev/null +++ b/BT Vendor/en.lproj/DateRangePickerViewController.strings @@ -0,0 +1,9 @@ + +/* Class = "IBUILabel"; text = "To:"; ObjectID = "J6Y-lM-Rjf"; */ +"J6Y-lM-Rjf.text" = "To:"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "aYc-3W-Uqn"; */ +"aYc-3W-Uqn.normalTitle" = "Done"; + +/* Class = "IBUILabel"; text = "From:"; ObjectID = "xIo-vd-lE7"; */ +"xIo-vd-lE7.text" = "From:"; diff --git a/BT Vendor/en.lproj/DateRangePickerViewController_Landscape.strings b/BT Vendor/en.lproj/DateRangePickerViewController_Landscape.strings new file mode 100644 index 0000000..1c9c171 --- /dev/null +++ b/BT Vendor/en.lproj/DateRangePickerViewController_Landscape.strings @@ -0,0 +1,9 @@ + +/* Class = "IBUILabel"; text = "From:"; ObjectID = "Ses-ng-Dli"; */ +"Ses-ng-Dli.text" = "From:"; + +/* Class = "IBUILabel"; text = "To:"; ObjectID = "WCO-rz-s5y"; */ +"WCO-rz-s5y.text" = "To:"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "nfK-Us-pVk"; */ +"nfK-Us-pVk.normalTitle" = "Done"; diff --git a/BT Vendor/en.lproj/DateRangePickerViewController_iPad.strings b/BT Vendor/en.lproj/DateRangePickerViewController_iPad.strings new file mode 100644 index 0000000..80a19e8 --- /dev/null +++ b/BT Vendor/en.lproj/DateRangePickerViewController_iPad.strings @@ -0,0 +1,9 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "JjT-6I-8h2"; */ +"JjT-6I-8h2.normalTitle" = "Done"; + +/* Class = "IBUILabel"; text = "From:"; ObjectID = "WiF-nR-ajG"; */ +"WiF-nR-ajG.text" = "From:"; + +/* Class = "IBUILabel"; text = "To:"; ObjectID = "dRe-Qx-Lml"; */ +"dRe-Qx-Lml.text" = "To:"; diff --git a/BT Vendor/en.lproj/DateRangePickerViewController_iPad_Landscape.strings b/BT Vendor/en.lproj/DateRangePickerViewController_iPad_Landscape.strings new file mode 100644 index 0000000..360c45f --- /dev/null +++ b/BT Vendor/en.lproj/DateRangePickerViewController_iPad_Landscape.strings @@ -0,0 +1,9 @@ + +/* Class = "IBUILabel"; text = "From:"; ObjectID = "7sY-pS-rR6"; */ +"7sY-pS-rR6.text" = "From:"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "hDh-hS-ruL"; */ +"hDh-hS-ruL.normalTitle" = "Done"; + +/* Class = "IBUILabel"; text = "To:"; ObjectID = "z8k-7k-O2i"; */ +"z8k-7k-O2i.text" = "To:"; diff --git a/BT Vendor/en.lproj/EMConnectingView_Landscape.strings b/BT Vendor/en.lproj/EMConnectingView_Landscape.strings new file mode 100644 index 0000000..a8b4ee8 --- /dev/null +++ b/BT Vendor/en.lproj/EMConnectingView_Landscape.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "J1X-2s-Ung"; */ +"J1X-2s-Ung.text" = "Connecting to device"; diff --git a/BT Vendor/en.lproj/EMConnectingView_iPad.strings b/BT Vendor/en.lproj/EMConnectingView_iPad.strings new file mode 100644 index 0000000..e43e779 --- /dev/null +++ b/BT Vendor/en.lproj/EMConnectingView_iPad.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "ZWE-GZ-XAB"; */ +"ZWE-GZ-XAB.text" = "Connecting to device"; diff --git a/BT Vendor/en.lproj/EMConnectingView_iPad_Landscape.strings b/BT Vendor/en.lproj/EMConnectingView_iPad_Landscape.strings new file mode 100644 index 0000000..2314f47 --- /dev/null +++ b/BT Vendor/en.lproj/EMConnectingView_iPad_Landscape.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "X5Q-qk-1n6"; */ +"X5Q-qk-1n6.text" = "Connecting to device"; diff --git a/BT Vendor/en.lproj/Localizable.strings b/BT Vendor/en.lproj/Localizable.strings new file mode 100644 index 0000000..ef9c274 --- /dev/null +++ b/BT Vendor/en.lproj/Localizable.strings @@ -0,0 +1,116 @@ +/* + Localizable.strings + DUREX test + + Created by Imanol Barba on 8/11/14. + Copyright (c) 2014 Emmoco. All rights reserved. +*/ + +"PIECE OF CRAP 2000 PRO ULTRA" = "PIECE OF CRAP 2000 PRO ULTRA"; +"FUCKING ONLINE" = "FUCKING ONLINE"; +"Maintenance" = "Maintenance"; +"Basic Configuration" = "Basic Configuration"; +"Sending a Report" = "Sending a Report"; +"Sensors" = "Sensors"; +"Commands" = "Commands"; +"Channels Present" = "Channels Present"; +"Channel 1" = "Channel 1"; +"Channel 2" = "Channel 2"; +"Channel 3" = "Channel 3"; +"Channel 4" = "Channel 4"; +"Channel 5" = "Channel 5"; +"Channel 6" = "Channel 6"; +"Channel 7" = "Channel 7"; +"Channel 8" = "Channel 8"; +"Channel 9" = "Channel 9"; +"Channel 10" = "Channel 10"; +"Channel 11" = "Channel 11"; +"Channel 12" = "Channel 12"; +"Channel 13" = "Channel 13"; +"Channel 14" = "Channel 14"; +"Channel 15" = "Channel 15"; +"Channel 16" = "Channel 16"; +"Product Present in Channel" = "Product Present in Channel"; +"Channel Engine Status" = "Channel Engine Status"; +"Door Sensor" = "Door Sensor"; +"Coil Sensor" = "Coil Sensor"; +"OPEN" = "OPEN"; +"CLOSED" = "CLOSED"; +"Money Collected" = "Money Collected"; +"Money Returned" = "Money Returned"; +"Products Sold" = "Products Sold"; +"Product 1" = "Product 1"; +"Product 2" = "Product 2"; +"Product 3" = "Product 3"; +"Product 4" = "Product 4"; +"Product 5" = "Product 5"; +"Product 6" = "Product 6"; +"Product 7" = "Product 7"; +"Product 8" = "Product 8"; +"Product 9" = "Product 9"; +"Product 10" = "Product 10"; +"Product 11" = "Product 11"; +"Product 12" = "Product 12"; +"Product 13" = "Product 13"; +"Product 14" = "Product 14"; +"Product 15" = "Product 15"; +"Product 16" = "Product 16"; +"Change Available" = "Change Available"; +"Sales log" = "Sales log"; +"Incident report" = "Incident report"; +"Send report" = "Send report"; +"Communication error" = "Communication error"; +"Error while trying to connect to the device" = "Error while trying to connect to the device"; +"Signal Strength: %0.0f" = "Signal Strength: %0.0f"; +"Searching for devices..." = "Searching for devices..."; +"Connection Failed" = "Connection Failed"; +"An error occurred while trying to connect to the selected device" = "An error occurred while trying to connect to the selected device"; +"Close" = "Close"; +"20€ Notes" = "20€ Notes"; +"10€ Notes" = "10€ Notes"; +"5€ Notes" = "5€ Notes"; +"2€ Coins" = "2€ Coins"; +"1€ Coins" = "1€ Coins"; +"50c Coins" = "50c Coins"; +"Channel" = "Channel"; +"Product Code" = "Product Code"; +"Product Price" = "Product Price"; +"Discounted Price" = "Discounted Price"; +"Money Paid" = "Money Paid"; +"1€ Change" = "1€ Change"; +"50c Change" = "50c Change"; +"Update Date & Time" = "Update Date & Time"; +"Update product price" = "Update product price"; +"Update product name" = "Update product name"; +"Sale on" = "Sale on"; +"Report sent successfully" = "Report sent successfully"; +"Success!" = "Success!"; +"Connection to server failed" = "Connection to server failed"; +"Error" = "Error"; +"Product" = "Product"; +"Entered price has an invalid format" = "Entered price has an invalid format"; +"Entered product code has an invalid format" = "Entered product code has an invalid format"; +"Entered channel has an invalid format" = "Entered channel has an invalid format"; +"Missing channel" = "Missing channel"; +"Missing product code" = "Missing product code"; +"Time and Date changed successfully" = "Time and Date changed successfully"; +"Time and Date change returned error" = "Time and Date change returned error"; +"Product price changed successfully" = "Product price changed successfully"; +"Product price change returned error" = "Product price change returned error"; +"Product name changed successfully" = "Product name changed successfully"; +"Product name change returned error" = "Product name change returned error"; +"Error occurred while reading answer from device" = "Error occurred while reading answer from device"; +"Error occurred while sending command to device" = "Error occurred while sending command to device"; +"Connection lost" = "Connection lost"; +"Device answer timeout occurred" = "Device answer timeout occurred"; +"Incident log" = "Incident log"; +"Error Code" = "Error Code"; +"Error Value" = "Error Value"; +"Error obtaining data from URL" = "Error obtaining data from URL"; +"Missing fields version and/or commands in JSON file" = "Missing fields version and/or commands in JSON file"; +"Version mismatch" = "Version mismatch"; +"Do you want to run batch command file" = "Do you want to run batch command file"; +"WARNING: Machine ID does not match currently connected machine. Do you wish to continue?" = "WARNING: Machine ID does not match currently connected machine. Do you wish to continue?"; +"Confirmation" = "Confirmation"; +"OK" = "OK"; +"Cancel" = "Cancel"; \ No newline at end of file diff --git a/BT Vendor/en.lproj/MainStoryboard.strings b/BT Vendor/en.lproj/MainStoryboard.strings new file mode 100644 index 0000000..55bb165 --- /dev/null +++ b/BT Vendor/en.lproj/MainStoryboard.strings @@ -0,0 +1,24 @@ + +/* Class = "IBUILabel"; text = "FUCKING ONLINE"; ObjectID = "0cU-st-98u"; */ +"0cU-st-98u.text" = "FUCKING ONLINE"; + +/* Class = "IBUINavigationItem"; title = "Connected to:"; ObjectID = "2rA-9H-FRE"; */ +"2rA-9H-FRE.title" = "Connected to:"; + +/* Class = "IBUILabel"; text = "Detail"; ObjectID = "Ghk-fD-iNE"; */ +"Ghk-fD-iNE.text" = "Detail"; + +/* Class = "IBUILabel"; text = "PIECE OF CRAP 2000 PRO ULTRA"; ObjectID = "W3U-nk-SlV"; */ +"W3U-nk-SlV.text" = "PIECE OF CRAP 2000 PRO ULTRA"; + +/* Class = "IBUINavigationItem"; title = "Select device"; ObjectID = "exc-MP-jDa"; */ +"exc-MP-jDa.title" = "Select device"; + +/* Class = "IBUILabel"; text = "Title"; ObjectID = "iCG-eW-H8x"; */ +"iCG-eW-H8x.text" = "Title"; + +/* Class = "IBUILabel"; text = "Title"; ObjectID = "oML-ji-1Ho"; */ +"oML-ji-1Ho.text" = "Title"; + +/* Class = "IBUILabel"; text = "Connect to device"; ObjectID = "oyW-sA-Lfb"; */ +"oyW-sA-Lfb.text" = "Connect to device"; diff --git a/BT Vendor/en.lproj/NameChangerViewController.strings b/BT Vendor/en.lproj/NameChangerViewController.strings new file mode 100644 index 0000000..1b12c50 --- /dev/null +++ b/BT Vendor/en.lproj/NameChangerViewController.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "Y9f-BL-5ZB"; */ +"Y9f-BL-5ZB.normalTitle" = "Done"; + +/* Class = "IBUILabel"; text = "New Name"; ObjectID = "Zfh-RB-roO"; */ +"Zfh-RB-roO.text" = "New Name"; + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "u0t-Gj-gKZ"; */ +"u0t-Gj-gKZ.text" = "Channel"; + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "zk3-Qc-MYf"; */ +"zk3-Qc-MYf.text" = "Product Code"; diff --git a/BT Vendor/en.lproj/NameChangerViewController_Landscape.strings b/BT Vendor/en.lproj/NameChangerViewController_Landscape.strings new file mode 100644 index 0000000..5d33219 --- /dev/null +++ b/BT Vendor/en.lproj/NameChangerViewController_Landscape.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "ZH7-mZ-Jfc"; */ +"ZH7-mZ-Jfc.normalTitle" = "Done"; + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "ZzG-qH-dln"; */ +"ZzG-qH-dln.text" = "Channel"; + +/* Class = "IBUILabel"; text = "New Name"; ObjectID = "gIa-c0-uyh"; */ +"gIa-c0-uyh.text" = "New Name"; + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "z9N-z7-JyV"; */ +"z9N-z7-JyV.text" = "Product Code"; diff --git a/BT Vendor/en.lproj/NameChangerViewController_iPad.strings b/BT Vendor/en.lproj/NameChangerViewController_iPad.strings new file mode 100644 index 0000000..58829f0 --- /dev/null +++ b/BT Vendor/en.lproj/NameChangerViewController_iPad.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "9PW-xp-3t9"; */ +"9PW-xp-3t9.text" = "Channel"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "Md5-1l-LqY"; */ +"Md5-1l-LqY.normalTitle" = "Done"; + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "RCD-6Z-45A"; */ +"RCD-6Z-45A.text" = "Product Code"; + +/* Class = "IBUILabel"; text = "New Name"; ObjectID = "pLv-EG-y2m"; */ +"pLv-EG-y2m.text" = "New Name"; diff --git a/BT Vendor/en.lproj/NameChangerViewController_iPad_Landscape.strings b/BT Vendor/en.lproj/NameChangerViewController_iPad_Landscape.strings new file mode 100644 index 0000000..41be93d --- /dev/null +++ b/BT Vendor/en.lproj/NameChangerViewController_iPad_Landscape.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "85G-KF-Rny"; */ +"85G-KF-Rny.text" = "Product Code"; + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "MUO-8b-DhH"; */ +"MUO-8b-DhH.text" = "Channel"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "q3O-jD-tjP"; */ +"q3O-jD-tjP.normalTitle" = "Done"; + +/* Class = "IBUILabel"; text = "New Name"; ObjectID = "zj0-M4-cAO"; */ +"zj0-M4-cAO.text" = "New Name"; diff --git a/BT Vendor/en.lproj/PriceChangerViewController.strings b/BT Vendor/en.lproj/PriceChangerViewController.strings new file mode 100644 index 0000000..58d4466 --- /dev/null +++ b/BT Vendor/en.lproj/PriceChangerViewController.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "2cF-of-r57"; */ +"2cF-of-r57.text" = "Product Code"; + +/* Class = "IBUILabel"; text = "New Price"; ObjectID = "Cbx-ha-NZx"; */ +"Cbx-ha-NZx.text" = "New Price"; + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "VCq-As-NrV"; */ +"VCq-As-NrV.text" = "Channel"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "slH-Zj-pps"; */ +"slH-Zj-pps.normalTitle" = "Done"; diff --git a/BT Vendor/en.lproj/PriceChangerViewController_Landscape.strings b/BT Vendor/en.lproj/PriceChangerViewController_Landscape.strings new file mode 100644 index 0000000..874b6b8 --- /dev/null +++ b/BT Vendor/en.lproj/PriceChangerViewController_Landscape.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "0G8-sN-Hfg"; */ +"0G8-sN-Hfg.text" = "Channel"; + +/* Class = "IBUILabel"; text = "New Price"; ObjectID = "UrS-qz-jRa"; */ +"UrS-qz-jRa.text" = "New Price"; + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "neg-KG-oQC"; */ +"neg-KG-oQC.text" = "Product Code"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "ubO-fy-Tcd"; */ +"ubO-fy-Tcd.normalTitle" = "Done"; diff --git a/BT Vendor/en.lproj/PriceChangerViewController_iPad.strings b/BT Vendor/en.lproj/PriceChangerViewController_iPad.strings new file mode 100644 index 0000000..17d58f3 --- /dev/null +++ b/BT Vendor/en.lproj/PriceChangerViewController_iPad.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "6M6-Rz-v0B"; */ +"6M6-Rz-v0B.text" = "Channel"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "BsH-aP-YXx"; */ +"BsH-aP-YXx.normalTitle" = "Done"; + +/* Class = "IBUILabel"; text = "New Price"; ObjectID = "CRj-D6-8bV"; */ +"CRj-D6-8bV.text" = "New Price"; + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "y0J-fk-3XQ"; */ +"y0J-fk-3XQ.text" = "Product Code"; diff --git a/BT Vendor/en.lproj/PriceChangerViewController_iPad_Landscape.strings b/BT Vendor/en.lproj/PriceChangerViewController_iPad_Landscape.strings new file mode 100644 index 0000000..ab18f05 --- /dev/null +++ b/BT Vendor/en.lproj/PriceChangerViewController_iPad_Landscape.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "GCF-GY-CN1"; */ +"GCF-GY-CN1.text" = "Product Code"; + +/* Class = "IBUILabel"; text = "New Price"; ObjectID = "eXX-xf-h6G"; */ +"eXX-xf-h6G.text" = "New Price"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "hdn-qQ-8np"; */ +"hdn-qQ-8np.normalTitle" = "Done"; + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "z9V-5B-LtD"; */ +"z9V-5B-LtD.text" = "Channel"; diff --git a/BT Vendor/en.lproj/back_arrow.png b/BT Vendor/en.lproj/back_arrow.png new file mode 100644 index 0000000..02b7278 Binary files /dev/null and b/BT Vendor/en.lproj/back_arrow.png differ diff --git a/BT Vendor/es.lproj/DatePickerViewController.strings b/BT Vendor/es.lproj/DatePickerViewController.strings new file mode 100644 index 0000000..20456e3 --- /dev/null +++ b/BT Vendor/es.lproj/DatePickerViewController.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "8vW-ig-tUA"; */ +"8vW-ig-tUA.normalTitle" = "Aceptar"; diff --git a/BT Vendor/es.lproj/DatePickerViewController_Landscape.strings b/BT Vendor/es.lproj/DatePickerViewController_Landscape.strings new file mode 100644 index 0000000..f5cff71 --- /dev/null +++ b/BT Vendor/es.lproj/DatePickerViewController_Landscape.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "SLt-EA-xM9"; */ +"SLt-EA-xM9.normalTitle" = "Aceptar"; diff --git a/BT Vendor/es.lproj/DatePickerViewController_iPad.strings b/BT Vendor/es.lproj/DatePickerViewController_iPad.strings new file mode 100644 index 0000000..ed4f79a --- /dev/null +++ b/BT Vendor/es.lproj/DatePickerViewController_iPad.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "RGE-Ye-qon"; */ +"RGE-Ye-qon.normalTitle" = "Aceptar"; diff --git a/BT Vendor/es.lproj/DatePickerViewController_iPad_Landscape.strings b/BT Vendor/es.lproj/DatePickerViewController_iPad_Landscape.strings new file mode 100644 index 0000000..4fda1e8 --- /dev/null +++ b/BT Vendor/es.lproj/DatePickerViewController_iPad_Landscape.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "JbU-pO-d9E"; */ +"JbU-pO-d9E.normalTitle" = "Aceptar"; diff --git a/BT Vendor/es.lproj/DateRangePickerViewController.strings b/BT Vendor/es.lproj/DateRangePickerViewController.strings new file mode 100644 index 0000000..adca0a2 --- /dev/null +++ b/BT Vendor/es.lproj/DateRangePickerViewController.strings @@ -0,0 +1,9 @@ + +/* Class = "IBUILabel"; text = "To:"; ObjectID = "J6Y-lM-Rjf"; */ +"J6Y-lM-Rjf.text" = "Desde:"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "aYc-3W-Uqn"; */ +"aYc-3W-Uqn.normalTitle" = "Aceptar"; + +/* Class = "IBUILabel"; text = "From:"; ObjectID = "xIo-vd-lE7"; */ +"xIo-vd-lE7.text" = "Hasta:"; diff --git a/BT Vendor/es.lproj/DateRangePickerViewController_Landscape.strings b/BT Vendor/es.lproj/DateRangePickerViewController_Landscape.strings new file mode 100644 index 0000000..c37077d --- /dev/null +++ b/BT Vendor/es.lproj/DateRangePickerViewController_Landscape.strings @@ -0,0 +1,9 @@ + +/* Class = "IBUILabel"; text = "From:"; ObjectID = "Ses-ng-Dli"; */ +"Ses-ng-Dli.text" = "Desde:"; + +/* Class = "IBUILabel"; text = "To:"; ObjectID = "WCO-rz-s5y"; */ +"WCO-rz-s5y.text" = "Hasta:"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "nfK-Us-pVk"; */ +"nfK-Us-pVk.normalTitle" = "Aceptar"; diff --git a/BT Vendor/es.lproj/DateRangePickerViewController_iPad.strings b/BT Vendor/es.lproj/DateRangePickerViewController_iPad.strings new file mode 100644 index 0000000..b85b410 --- /dev/null +++ b/BT Vendor/es.lproj/DateRangePickerViewController_iPad.strings @@ -0,0 +1,9 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "JjT-6I-8h2"; */ +"JjT-6I-8h2.normalTitle" = "Aceptar"; + +/* Class = "IBUILabel"; text = "From:"; ObjectID = "WiF-nR-ajG"; */ +"WiF-nR-ajG.text" = "Desde:"; + +/* Class = "IBUILabel"; text = "To:"; ObjectID = "dRe-Qx-Lml"; */ +"dRe-Qx-Lml.text" = "Hasta:"; diff --git a/BT Vendor/es.lproj/DateRangePickerViewController_iPad_Landscape.strings b/BT Vendor/es.lproj/DateRangePickerViewController_iPad_Landscape.strings new file mode 100644 index 0000000..6f7cbbd --- /dev/null +++ b/BT Vendor/es.lproj/DateRangePickerViewController_iPad_Landscape.strings @@ -0,0 +1,9 @@ + +/* Class = "IBUILabel"; text = "From:"; ObjectID = "7sY-pS-rR6"; */ +"7sY-pS-rR6.text" = "Desde:"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "hDh-hS-ruL"; */ +"hDh-hS-ruL.normalTitle" = "Aceptar"; + +/* Class = "IBUILabel"; text = "To:"; ObjectID = "z8k-7k-O2i"; */ +"z8k-7k-O2i.text" = "Hasta:"; diff --git a/BT Vendor/es.lproj/EMConnectingView_Landscape.strings b/BT Vendor/es.lproj/EMConnectingView_Landscape.strings new file mode 100644 index 0000000..2cc7b00 --- /dev/null +++ b/BT Vendor/es.lproj/EMConnectingView_Landscape.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "J1X-2s-Ung"; */ +"J1X-2s-Ung.text" = "Realizando conexión"; diff --git a/BT Vendor/es.lproj/EMConnectingView_iPad.strings b/BT Vendor/es.lproj/EMConnectingView_iPad.strings new file mode 100644 index 0000000..11926a4 --- /dev/null +++ b/BT Vendor/es.lproj/EMConnectingView_iPad.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "ZWE-GZ-XAB"; */ +"ZWE-GZ-XAB.text" = "Realizando conexión"; diff --git a/BT Vendor/es.lproj/EMConnectingView_iPad_Landscape.strings b/BT Vendor/es.lproj/EMConnectingView_iPad_Landscape.strings new file mode 100644 index 0000000..148fa14 --- /dev/null +++ b/BT Vendor/es.lproj/EMConnectingView_iPad_Landscape.strings @@ -0,0 +1,3 @@ + +/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "X5Q-qk-1n6"; */ +"X5Q-qk-1n6.text" = "Realizando conexión"; diff --git a/BT Vendor/es.lproj/Localizable.strings b/BT Vendor/es.lproj/Localizable.strings new file mode 100644 index 0000000..a818863 --- /dev/null +++ b/BT Vendor/es.lproj/Localizable.strings @@ -0,0 +1,116 @@ +/* + Localizable.strings + DUREX test + + Created by Imanol Barba on 8/11/14. + Copyright (c) 2014 Emmoco. All rights reserved. +*/ + +"PIECE OF CRAP 2000 PRO ULTRA" = "CACHARRACO DE LA MUERTE"; +"FUCKING ONLINE" = "A TOPE"; +"Maintenance" = "Mantenimiento"; +"Basic Configuration" = "Configuración Básica"; +"Sending a Report" = "Mandar un Informe"; +"Sensors" = "Sensores"; +"Commands" = "Comandos"; +"Channels Present" = "Canales presentes"; +"Channel 1" = "Canal 1"; +"Channel 2" = "Canal 2"; +"Channel 3" = "Canal 3"; +"Channel 4" = "Canal 4"; +"Channel 5" = "Canal 5"; +"Channel 6" = "Canal 6"; +"Channel 7" = "Canal 7"; +"Channel 8" = "Canal 8"; +"Channel 9" = "Canal 9"; +"Channel 10" = "Canal 10"; +"Channel 11" = "Canal 11"; +"Channel 12" = "Canal 12"; +"Channel 13" = "Canal 13"; +"Channel 14" = "Canal 14"; +"Channel 15" = "Canal 15"; +"Channel 16" = "Canal 16"; +"Product Present in Channel" = "Producto presente en el canal"; +"Channel Engine Status" = "Estado de los motores"; +"Door Sensor" = "Sensor de puerta"; +"Coil Sensor" = "Sensor de bobina"; +"OPEN" = "ABIERTO"; +"CLOSED" = "CERRADO"; +"Money Collected" = "Recaudación efectuada"; +"Money Returned" = "Efectivo devuelto"; +"Products Sold" = "Productos vendidos"; +"Product 1" = "Producto 1"; +"Product 2" = "Producto 2"; +"Product 3" = "Producto 3"; +"Product 4" = "Producto 4"; +"Product 5" = "Producto 5"; +"Product 6" = "Producto 6"; +"Product 7" = "Producto 7"; +"Product 8" = "Producto 8"; +"Product 9" = "Producto 9"; +"Product 10" = "Producto 10"; +"Product 11" = "Producto 11"; +"Product 12" = "Producto 12"; +"Product 13" = "Producto 13"; +"Product 14" = "Producto 14"; +"Product 15" = "Producto 15"; +"Product 16" = "Producto 16"; +"Change Available" = "Cambio disponible"; +"Sales log" = "Registro de ventas"; +"Incident report" = "Registro de incidencias"; +"Send report" = "Mandar informe"; +"Communication error" = "Error de comunicación"; +"Error while trying to connect to the device" = "Error al intentar conectarse con el dispositivo"; +"Signal Strength: %0.0f" = "Potencia de la señal: %0.0f"; +"Searching for devices..." = "Buscando dispositivos..."; +"Connection Failed" = "Falló la conexión"; +"An error occurred while trying to connect to the selected device" = "Error al intentar conectarse al dispositivo seleccionado"; +"Close" = "Cerrar"; +"20€ Notes" = "Billetes de 20€"; +"10€ Notes" = "Billetes de 10€"; +"5€ Notes" = "Billetes de 5€"; +"2€ Coins" = "Monedas de 2€"; +"1€ Coins" = "Monedas de 1€"; +"50c Coins" = "Monedas de 50c"; +"Channel" = "Canal"; +"Product Code" = "Código del producto"; +"Product Price" = "Precio del Producto"; +"Discounted Price" = "Precio con descuento"; +"Money Paid" = "Efectivo Pagado"; +"1€ Change" = "Cambio de 1€"; +"50c Change" = "Cambio de 50c"; +"Update Date & Time" = "Actualizar fecha y hora"; +"Update product price" = "Actualizar precio del producto"; +"Update product name" = "Actualizar nombre del producto"; +"Sale on" = "Venta el"; +"Report sent successfully" = "Informe enviado satisfactoriamente"; +"Success!" = "Éxito!"; +"Connection to server failed" = "Conexión al servidor fallida"; +"Error" = "Error"; +"Product" = "Producto"; +"Entered price has an invalid format" = "El precio introducido está en un formato incorrecto"; +"Entered code has an invalid format" = "El código de producto introducido está en un formato incorrecto"; +"Entered channel has an invalid format" = "El canal introducido está en un formato incorrecto"; +"Missing channel" = "Falta el canal"; +"Missing product code" = "Falta el código del producto"; +"Time and Date changed successfully" = "Fecha y hora cambiadas con éxito"; +"Time and Date change returned error" = "Error al cambiar la fecha y hora"; +"Product price changed successfully" = "El precio del producto se cambió con éxito"; +"Product price change returned error" = "Error al cambiar el precio del producto"; +"Product name changed successfully" = "El nombre del producto se cambió con éxito"; +"Product name change returned error" = "Error al cambiar el nombre del producto"; +"Error occurred while reading answer from device" = "Error al leer la respuesta del dispositivo"; +"Error occurred while sending command to device" = "Error al mandar el comando al dispositivo"; +"Connection lost" = "Conexión perdida"; +"Device answer timeout occurred" = "El tiempo de espera de respuesta del dispositivo ha expirado"; +"Incident log" = "Registro de incidencias"; +"Error Code" = "Código de error"; +"Error Value" = "Valor del error"; +"Error obtaining data from URL" = "Error al obtener los datos de la URL"; +"Missing fields version and/or commands in JSON file" = "Faltan los campos de versión y/o comandos en el fichero JSON"; +"Version mismatch" = "Versiones no coincidentes"; +"Do you want to run batch command file" = "¿Desea ejecutar el fichero por lotes"; +"WARNING: Machine ID does not match currently connected machine. Do you wish to continue?" = "ADVERTENCIA: El identificador de máquina no coincide con la máquina conectada. ¿Desea continuar?"; +"Confirmation" = "Confirmación"; +"OK" = "OK"; +"Cancel" = "Cancelar"; \ No newline at end of file diff --git a/BT Vendor/es.lproj/MainStoryboard.strings b/BT Vendor/es.lproj/MainStoryboard.strings new file mode 100644 index 0000000..df494b7 --- /dev/null +++ b/BT Vendor/es.lproj/MainStoryboard.strings @@ -0,0 +1,24 @@ + +/* Class = "IBUILabel"; text = "FUCKING ONLINE"; ObjectID = "0cU-st-98u"; */ +"0cU-st-98u.text" = "A TOPE"; + +/* Class = "IBUINavigationItem"; title = "Connected to:"; ObjectID = "2rA-9H-FRE"; */ +"2rA-9H-FRE.title" = "Conectado a:"; + +/* Class = "IBUILabel"; text = "Detail"; ObjectID = "Ghk-fD-iNE"; */ +"Ghk-fD-iNE.text" = "Detail"; + +/* Class = "IBUILabel"; text = "PIECE OF CRAP 2000 PRO ULTRA"; ObjectID = "W3U-nk-SlV"; */ +"W3U-nk-SlV.text" = "CACHARRACO DE LA MUERTE"; + +/* Class = "IBUINavigationItem"; title = "Select device"; ObjectID = "exc-MP-jDa"; */ +"exc-MP-jDa.title" = "Selecccione el dispositivo"; + +/* Class = "IBUILabel"; text = "Title"; ObjectID = "iCG-eW-H8x"; */ +"iCG-eW-H8x.text" = "Title"; + +/* Class = "IBUILabel"; text = "Title"; ObjectID = "oML-ji-1Ho"; */ +"oML-ji-1Ho.text" = "Title"; + +/* Class = "IBUILabel"; text = "Connect to device"; ObjectID = "oyW-sA-Lfb"; */ +"oyW-sA-Lfb.text" = "Conectarse al dispositivo"; diff --git a/BT Vendor/es.lproj/NameChangerViewController.strings b/BT Vendor/es.lproj/NameChangerViewController.strings new file mode 100644 index 0000000..dd54c46 --- /dev/null +++ b/BT Vendor/es.lproj/NameChangerViewController.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "Y9f-BL-5ZB"; */ +"Y9f-BL-5ZB.normalTitle" = "Aceptar"; + +/* Class = "IBUILabel"; text = "New Name"; ObjectID = "Zfh-RB-roO"; */ +"Zfh-RB-roO.text" = "Nuevo Nombre"; + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "u0t-Gj-gKZ"; */ +"u0t-Gj-gKZ.text" = "Canal"; + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "zk3-Qc-MYf"; */ +"zk3-Qc-MYf.text" = "Código del Producto"; diff --git a/BT Vendor/es.lproj/NameChangerViewController_Landscape.strings b/BT Vendor/es.lproj/NameChangerViewController_Landscape.strings new file mode 100644 index 0000000..0ff7fea --- /dev/null +++ b/BT Vendor/es.lproj/NameChangerViewController_Landscape.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "ZH7-mZ-Jfc"; */ +"ZH7-mZ-Jfc.normalTitle" = "Aceptar"; + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "ZzG-qH-dln"; */ +"ZzG-qH-dln.text" = "Canal"; + +/* Class = "IBUILabel"; text = "New Name"; ObjectID = "gIa-c0-uyh"; */ +"gIa-c0-uyh.text" = "Nuevo Nombre"; + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "z9N-z7-JyV"; */ +"z9N-z7-JyV.text" = "Código del Producto"; diff --git a/BT Vendor/es.lproj/NameChangerViewController_iPad.strings b/BT Vendor/es.lproj/NameChangerViewController_iPad.strings new file mode 100644 index 0000000..4c55a0e --- /dev/null +++ b/BT Vendor/es.lproj/NameChangerViewController_iPad.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "9PW-xp-3t9"; */ +"9PW-xp-3t9.text" = "Canal"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "Md5-1l-LqY"; */ +"Md5-1l-LqY.normalTitle" = "Aceptar"; + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "RCD-6Z-45A"; */ +"RCD-6Z-45A.text" = "Código del Producto"; + +/* Class = "IBUILabel"; text = "New Name"; ObjectID = "pLv-EG-y2m"; */ +"pLv-EG-y2m.text" = "Nuevo Nombre"; diff --git a/BT Vendor/es.lproj/NameChangerViewController_iPad_Landscape.strings b/BT Vendor/es.lproj/NameChangerViewController_iPad_Landscape.strings new file mode 100644 index 0000000..2745ff0 --- /dev/null +++ b/BT Vendor/es.lproj/NameChangerViewController_iPad_Landscape.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "85G-KF-Rny"; */ +"85G-KF-Rny.text" = "Código del Producto"; + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "MUO-8b-DhH"; */ +"MUO-8b-DhH.text" = "Canal"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "q3O-jD-tjP"; */ +"q3O-jD-tjP.normalTitle" = "Aceptar"; + +/* Class = "IBUILabel"; text = "New Name"; ObjectID = "zj0-M4-cAO"; */ +"zj0-M4-cAO.text" = "Nuevo Nombre"; diff --git a/BT Vendor/es.lproj/PriceChangerViewController.strings b/BT Vendor/es.lproj/PriceChangerViewController.strings new file mode 100644 index 0000000..a6d4a99 --- /dev/null +++ b/BT Vendor/es.lproj/PriceChangerViewController.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "2cF-of-r57"; */ +"2cF-of-r57.text" = "Código del Producto"; + +/* Class = "IBUILabel"; text = "New Price"; ObjectID = "Cbx-ha-NZx"; */ +"Cbx-ha-NZx.text" = "Nuevo Precio"; + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "VCq-As-NrV"; */ +"VCq-As-NrV.text" = "Canal"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "slH-Zj-pps"; */ +"slH-Zj-pps.normalTitle" = "Aceptar"; diff --git a/BT Vendor/es.lproj/PriceChangerViewController_Landscape.strings b/BT Vendor/es.lproj/PriceChangerViewController_Landscape.strings new file mode 100644 index 0000000..39435bd --- /dev/null +++ b/BT Vendor/es.lproj/PriceChangerViewController_Landscape.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "0G8-sN-Hfg"; */ +"0G8-sN-Hfg.text" = "Canal"; + +/* Class = "IBUILabel"; text = "New Price"; ObjectID = "UrS-qz-jRa"; */ +"UrS-qz-jRa.text" = "Nuevo Precio"; + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "neg-KG-oQC"; */ +"neg-KG-oQC.text" = "Código del Producto"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "ubO-fy-Tcd"; */ +"ubO-fy-Tcd.normalTitle" = "Aceptar"; diff --git a/BT Vendor/es.lproj/PriceChangerViewController_iPad.strings b/BT Vendor/es.lproj/PriceChangerViewController_iPad.strings new file mode 100644 index 0000000..4542d61 --- /dev/null +++ b/BT Vendor/es.lproj/PriceChangerViewController_iPad.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "6M6-Rz-v0B"; */ +"6M6-Rz-v0B.text" = "Canal"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "BsH-aP-YXx"; */ +"BsH-aP-YXx.normalTitle" = "Aceptar"; + +/* Class = "IBUILabel"; text = "New Price"; ObjectID = "CRj-D6-8bV"; */ +"CRj-D6-8bV.text" = "Nuevo Precio"; + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "y0J-fk-3XQ"; */ +"y0J-fk-3XQ.text" = "Código del Producto"; diff --git a/BT Vendor/es.lproj/PriceChangerViewController_iPad_Landscape.strings b/BT Vendor/es.lproj/PriceChangerViewController_iPad_Landscape.strings new file mode 100644 index 0000000..ff00a19 --- /dev/null +++ b/BT Vendor/es.lproj/PriceChangerViewController_iPad_Landscape.strings @@ -0,0 +1,12 @@ + +/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "GCF-GY-CN1"; */ +"GCF-GY-CN1.text" = "Código del Producto"; + +/* Class = "IBUILabel"; text = "New Price"; ObjectID = "eXX-xf-h6G"; */ +"eXX-xf-h6G.text" = "Nuevo Precio"; + +/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "hdn-qQ-8np"; */ +"hdn-qQ-8np.normalTitle" = "Aceptar"; + +/* Class = "IBUILabel"; text = "Channel"; ObjectID = "z9V-5B-LtD"; */ +"z9V-5B-LtD.text" = "Canal"; diff --git a/BT Vendor/es.lproj/back_arrow.png b/BT Vendor/es.lproj/back_arrow.png new file mode 100644 index 0000000..86b8e42 Binary files /dev/null and b/BT Vendor/es.lproj/back_arrow.png differ diff --git a/BT Vendor/icon_checkmark.png b/BT Vendor/icon_checkmark.png new file mode 100755 index 0000000..05f9c40 Binary files /dev/null and b/BT Vendor/icon_checkmark.png differ diff --git a/BT Vendor/icon_delete.png b/BT Vendor/icon_delete.png new file mode 100755 index 0000000..3ea51f4 Binary files /dev/null and b/BT Vendor/icon_delete.png differ diff --git a/BT Vendor/system.json b/BT Vendor/system.json new file mode 100644 index 0000000..1e5ea8a --- /dev/null +++ b/BT Vendor/system.json @@ -0,0 +1,246 @@ +{ + "resources": { + "$eapProtocolLevel": { + "id": -3, + "align": 2, + "attributes": {"readonly": true}, + "type": "u2", + "access": "r", + "size": 2 + }, + "numBytes": { + "id": 1, + "align": 1, + "attributes": {}, + "type": "u1", + "access": "rw", + "size": 1 + }, + "messageAvailableDevice": { + "id": 5, + "align": 1, + "attributes": {}, + "type": "u1", + "access": "rw", + "size": 1 + }, + "data": { + "id": 2, + "align": 1, + "attributes": {}, + "type": "C:201", + "access": "rw", + "size": 201 + }, + "$activeGroup": { + "id": -10, + "align": 1, + "pack": 1, + "attributes": {"readwrite": true}, + "type": "E:system@emmoco.com.System/ParameterGroup", + "access": "rw", + "size": 1 + }, + "$mcmDisconnect": { + "id": -9, + "align": 1, + "attributes": {"writeonly": true}, + "type": "u1", + "access": "w", + "size": 1 + }, + "$eapBuildDate": { + "dim": 8, + "id": -4, + "align": 1, + "attributes": {"readonly": true}, + "type": "A8:u1", + "access": "r", + "size": 8 + }, + "numPackets": { + "id": 3, + "align": 1, + "attributes": {}, + "type": "u1", + "access": "rw", + "size": 1 + }, + "$resourceCount": { + "id": -7, + "align": 1, + "attributes": {"readonly": true}, + "type": "S:system@emmoco.com.System/ResourceCount", + "access": "r", + "size": 2 + }, + "$schemaHash": { + "dim": 20, + "id": -6, + "align": 1, + "attributes": {"readonly": true}, + "type": "A20:u1", + "access": "r", + "size": 20 + }, + "$mcmProtocolLevel": { + "id": -2, + "align": 2, + "attributes": {"readonly": true}, + "type": "u2", + "access": "r", + "size": 2 + }, + "$mobileRssi": { + "id": -8, + "align": 1, + "attributes": {"readonly": true}, + "type": "i1", + "access": "r", + "size": 1 + }, + "messageAvailableMobile": { + "id": 4, + "align": 1, + "attributes": {}, + "type": "u1", + "access": "rw", + "size": 1 + }, + "$fileIndexReset": { + "id": -5, + "align": 2, + "attributes": {"writeonly": true}, + "type": "i2", + "access": "w", + "size": 2 + } + }, + "resourceNamesSys": [ + "$activeGroup", + "$eapBuildDate", + "$eapProtocolLevel", + "$fileIndexReset", + "$mcmDisconnect", + "$mcmProtocolLevel", + "$mobileRssi", + "$resourceCount", + "$schemaHash" + ], + "manifest": { + "protocolLevel": 13, + "hash": [ + 136, + 153, + 100, + 70, + 146, + 253, + 60, + 140, + 136, + 30, + 15, + 57, + 162, + 138, + 48, + 141 + ], + "toolVersion": "13.4.1.201311121909", + "name": "DUREX", + "$$md5": "8899644692fd3c8c881e0f39a28a308d", + "build": [ + 140, + 129, + 134, + 54, + 72, + 1, + 0, + 0 + ], + "date": "2014-09-02T15:20:57T", + "maxAlign": 2, + "maxSize": 201, + "version": "1.0.0" + }, + "resourceNames": [ + "numBytes", + "data", + "numPackets", + "messageAvailableMobile", + "messageAvailableDevice", + "$mcmProtocolLevel", + "$eapProtocolLevel", + "$eapBuildDate", + "$fileIndexReset", + "$schemaHash", + "$resourceCount", + "$mobileRssi", + "$mcmDisconnect", + "$activeGroup" + ], + "attributes": { + "description": "", + "version": "1.0.0" + }, + "resourceNamesApp": [ + "numBytes", + "data", + "numPackets", + "messageAvailableMobile", + "messageAvailableDevice" + ], + "types": { + "system@emmoco.com.System/ResourceCount": { + "packed": false, + "align": 1, + "type": "S:system@emmoco.com.System/ResourceCount", + "size": 2, + "fields": [ + { + "pad": 0, + "align": 1, + "name": "app", + "type": "u1", + "size": 1 + }, + { + "pad": 0, + "align": 1, + "name": "sys", + "type": "u1", + "size": 1 + } + ] + }, + "std:i2": { + "align": 2, + "size": 2 + }, + "std:i1": { + "align": 1, + "size": 1 + }, + "std:u1": { + "align": 1, + "size": 1 + }, + "system@emmoco.com.System/ParameterGroup": { + "values": [ + "GROUP_A", + "GROUP_B" + ], + "align": 1, + "pack": 1, + "type": "E:system@emmoco.com.System/ParameterGroup", + "size": 1 + }, + "std:u2": { + "align": 2, + "size": 2 + } + }, + "imports": {"@emmoco.com.DUREX": true} +} \ No newline at end of file diff --git a/DUREX Vendor Control/BT Vendor.xcodeproj/project.pbxproj b/DUREX Vendor Control/BT Vendor.xcodeproj/project.pbxproj deleted file mode 100644 index 2efaecb..0000000 --- a/DUREX Vendor Control/BT Vendor.xcodeproj/project.pbxproj +++ /dev/null @@ -1,899 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 46; - objects = { - -/* Begin PBXBuildFile section */ - 3471866118070D9300FA0FB2 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3471866018070D9300FA0FB2 /* Foundation.framework */; }; - 3471866318070D9300FA0FB2 /* CoreGraphics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3471866218070D9300FA0FB2 /* CoreGraphics.framework */; }; - 3471866518070D9300FA0FB2 /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3471866418070D9300FA0FB2 /* UIKit.framework */; }; - 347186A618070E7200FA0FB2 /* libEMFramework.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 347186A518070E7200FA0FB2 /* libEMFramework.a */; }; - 347186AC18070FAB00FA0FB2 /* CoreBluetooth.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 347186AB18070FAB00FA0FB2 /* CoreBluetooth.framework */; }; - 34AAB883189804FF0019860D /* BTAppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB877189804FF0019860D /* BTAppDelegate.m */; }; - 34AAB885189804FF0019860D /* EMDevicePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB87A189804FF0019860D /* EMDevicePickerViewController.m */; }; - 34AAB889189804FF0019860D /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 34AAB880189804FF0019860D /* main.m */; }; - 34AAB88D189805300019860D /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 34AAB88C189805300019860D /* Images.xcassets */; }; - F9015D9019B73052006C7882 /* DatePickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9015D9219B73052006C7882 /* DatePickerViewController.xib */; }; - F9015D9719B7305E006C7882 /* DatePickerViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9015D9919B7305E006C7882 /* DatePickerViewController_iPad.xib */; }; - F90416FC19CC776E00333AD8 /* DateRangePickerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F90416FE19CC776E00333AD8 /* DateRangePickerViewController.xib */; }; - F915612919C3D16D00126FE2 /* DateRangePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F915612719C3D16D00126FE2 /* DateRangePickerViewController.m */; }; - F92F567919B75F5E00A1EACA /* PriceChangerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F92F567719B75F5E00A1EACA /* PriceChangerViewController.m */; }; - F92F567D19B7609C00A1EACA /* PriceChangerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F92F567F19B7609C00A1EACA /* PriceChangerViewController.xib */; }; - F92F568419B760A800A1EACA /* PriceChangerViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F92F568619B760A800A1EACA /* PriceChangerViewController_iPad.xib */; }; - F92F569019B763FD00A1EACA /* NameChangerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F92F568E19B763FD00A1EACA /* NameChangerViewController.m */; }; - F92F569219B7665F00A1EACA /* NameChangerViewController.xib in Resources */ = {isa = PBXBuildFile; fileRef = F92F569419B7665F00A1EACA /* NameChangerViewController.xib */; }; - F92F569B19B76A5D00A1EACA /* NameChangerViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F92F569D19B76A5D00A1EACA /* NameChangerViewController_iPad.xib */; }; - F933F80419B6819400521B90 /* DatePickerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F933F80219B6819400521B90 /* DatePickerViewController.m */; }; - F95C3F2B19E87B8700C040C0 /* ChildViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F95C3F2A19E87B8700C040C0 /* ChildViewController.m */; }; - F961D804199A5F1000E9282C /* MainStoryboard.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = F961D806199A5F1000E9282C /* MainStoryboard.storyboard */; }; - F961D80C199A5F2D00E9282C /* back_arrow.png in Resources */ = {isa = PBXBuildFile; fileRef = F961D80E199A5F2D00E9282C /* back_arrow.png */; }; - F961D816199A5FA000E9282C /* Localizable.strings in Resources */ = {isa = PBXBuildFile; fileRef = F961D814199A5FA000E9282C /* Localizable.strings */; }; - F961D819199A711300E9282C /* EMConnectingView.xib in Resources */ = {isa = PBXBuildFile; fileRef = F961D81B199A711300E9282C /* EMConnectingView.xib */; }; - F975ADAC19E8248000CA4442 /* DatePickerViewController_iPad_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADAE19E8248000CA4442 /* DatePickerViewController_iPad_Landscape.xib */; }; - F975ADBB19E827EC00CA4442 /* EMConnectingView_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADBD19E827EC00CA4442 /* EMConnectingView_Landscape.xib */; }; - F975ADC219E827F500CA4442 /* EMConnectingView_iPad_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADC419E827F500CA4442 /* EMConnectingView_iPad_Landscape.xib */; }; - F975ADD519E82B7D00CA4442 /* DatePickerViewController_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADD719E82B7D00CA4442 /* DatePickerViewController_Landscape.xib */; }; - F975ADDC19E82B9800CA4442 /* PriceChangerViewController_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADDE19E82B9800CA4442 /* PriceChangerViewController_Landscape.xib */; }; - F975ADE719E82C5D00CA4442 /* PriceChangerViewController_iPad_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADE919E82C5D00CA4442 /* PriceChangerViewController_iPad_Landscape.xib */; }; - F975ADEE19E82D1400CA4442 /* NameChangerViewController_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADF019E82D1400CA4442 /* NameChangerViewController_Landscape.xib */; }; - F975ADF519E82D9F00CA4442 /* NameChangerViewController_iPad_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADF719E82D9F00CA4442 /* NameChangerViewController_iPad_Landscape.xib */; }; - F975ADFC19E8347700CA4442 /* DateRangePickerViewController_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975ADFE19E8347700CA4442 /* DateRangePickerViewController_Landscape.xib */; }; - F975AE0319E8359B00CA4442 /* DateRangePickerViewController_iPad_Landscape.xib in Resources */ = {isa = PBXBuildFile; fileRef = F975AE0519E8359B00CA4442 /* DateRangePickerViewController_iPad_Landscape.xib */; }; - F97B90CB19B859F500DDA9EF /* icon_checkmark.png in Resources */ = {isa = PBXBuildFile; fileRef = F97B90C919B859F500DDA9EF /* icon_checkmark.png */; }; - F97B90CC19B859F500DDA9EF /* icon_delete.png in Resources */ = {isa = PBXBuildFile; fileRef = F97B90CA19B859F500DDA9EF /* icon_delete.png */; }; - F98356D6192E835F00EA6821 /* InitialViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F98356D5192E835F00EA6821 /* InitialViewController.m */; }; - F98356D8192E906600EA6821 /* bluetooth.png in Resources */ = {isa = PBXBuildFile; fileRef = F98356D7192E906600EA6821 /* bluetooth.png */; }; - F98356DB192EAFD400EA6821 /* CommunicationProtocol.m in Sources */ = {isa = PBXBuildFile; fileRef = F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */; }; - F98356E1192EC84700EA6821 /* MenuTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = F98356E0192EC84700EA6821 /* MenuTableViewController.m */; }; - F98446F019B9EAE9005C4992 /* Sensors.m in Sources */ = {isa = PBXBuildFile; fileRef = F98446EF19B9EAE9005C4992 /* Sensors.m */; }; - F989B5FB19BBC80300657DD9 /* carat-open.png in Resources */ = {isa = PBXBuildFile; fileRef = F989B5F919BBC80300657DD9 /* carat-open.png */; }; - F989B5FC19BBC80300657DD9 /* carat.png in Resources */ = {isa = PBXBuildFile; fileRef = F989B5FA19BBC80300657DD9 /* carat.png */; }; - F989B5FF19BCD7A100657DD9 /* Sale.m in Sources */ = {isa = PBXBuildFile; fileRef = F989B5FE19BCD7A100657DD9 /* Sale.m */; }; - F989B60219BCE28C00657DD9 /* SalesLog.m in Sources */ = {isa = PBXBuildFile; fileRef = F989B60119BCE28C00657DD9 /* SalesLog.m */; }; - F996591219CC7F3D00667BEC /* DateRangePickerViewController_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F996591419CC7F3D00667BEC /* DateRangePickerViewController_iPad.xib */; }; - F9A8EF7C192FE201009E7532 /* Stack.m in Sources */ = {isa = PBXBuildFile; fileRef = F9A8EF7B192FE201009E7532 /* Stack.m */; }; - F9B9100919E59773006D4D06 /* IncidentLog.m in Sources */ = {isa = PBXBuildFile; fileRef = F9B9100819E59773006D4D06 /* IncidentLog.m */; }; - F9B9100C19E5A0A1006D4D06 /* Incident.m in Sources */ = {isa = PBXBuildFile; fileRef = F9B9100B19E5A0A1006D4D06 /* Incident.m */; }; - F9C77F50192CDE30002DBE8A /* system.json in Resources */ = {isa = PBXBuildFile; fileRef = F9C77F4F192CDE30002DBE8A /* system.json */; }; - F9CED59A19BE086E008F3764 /* UIView+Toast.m in Sources */ = {isa = PBXBuildFile; fileRef = F9CED59919BE086E008F3764 /* UIView+Toast.m */; }; - F9E4D8FD19B8FD32009A7359 /* EMConnectingView_iPad.xib in Resources */ = {isa = PBXBuildFile; fileRef = F9E4D8FF19B8FD32009A7359 /* EMConnectingView_iPad.xib */; }; -/* End PBXBuildFile section */ - -/* Begin PBXFileReference section */ - 3471865D18070D9300FA0FB2 /* BT Vendor.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "BT Vendor.app"; sourceTree = BUILT_PRODUCTS_DIR; }; - 3471866018070D9300FA0FB2 /* Foundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Foundation.framework; path = System/Library/Frameworks/Foundation.framework; sourceTree = SDKROOT; }; - 3471866218070D9300FA0FB2 /* CoreGraphics.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreGraphics.framework; path = System/Library/Frameworks/CoreGraphics.framework; sourceTree = SDKROOT; }; - 3471866418070D9300FA0FB2 /* UIKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = UIKit.framework; path = System/Library/Frameworks/UIKit.framework; sourceTree = SDKROOT; }; - 3471867918070D9300FA0FB2 /* XCTest.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = XCTest.framework; path = Library/Frameworks/XCTest.framework; sourceTree = DEVELOPER_DIR; }; - 3471869118070E6500FA0FB2 /* EMBluetoothLowEnergyConnectionType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMBluetoothLowEnergyConnectionType.h; sourceTree = ""; }; - 3471869218070E6500FA0FB2 /* EMChecksum.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMChecksum.h; sourceTree = ""; }; - 3471869318070E6500FA0FB2 /* EMConnection.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMConnection.h; sourceTree = ""; }; - 3471869518070E6500FA0FB2 /* EMConnectionListManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMConnectionListManager.h; sourceTree = ""; }; - 3471869718070E6500FA0FB2 /* EMConnectionManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMConnectionManager.h; sourceTree = ""; }; - 3471869918070E6500FA0FB2 /* EMConnectionType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMConnectionType.h; sourceTree = ""; }; - 3471869A18070E6500FA0FB2 /* EMDeviceBasicDescription.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMDeviceBasicDescription.h; sourceTree = ""; }; - 3471869B18070E6500FA0FB2 /* EMFramework.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMFramework.h; sourceTree = ""; }; - 3471869E18070E6500FA0FB2 /* EMResourceValue+CocoaAdditions.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EMResourceValue+CocoaAdditions.h"; sourceTree = ""; }; - 3471869F18070E6500FA0FB2 /* EMResourceValue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMResourceValue.h; sourceTree = ""; }; - 347186A018070E6500FA0FB2 /* EMSchema.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMSchema.h; sourceTree = ""; }; - 347186A118070E6500FA0FB2 /* EMSerialPacket.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMSerialPacket.h; sourceTree = ""; }; - 347186A218070E6500FA0FB2 /* EMSignalStrengthFilter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMSignalStrengthFilter.h; sourceTree = ""; }; - 347186A318070E6500FA0FB2 /* EMTypes.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = EMTypes.h; sourceTree = ""; }; - 347186A518070E7200FA0FB2 /* libEMFramework.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; name = libEMFramework.a; path = EmmocoMobileFramework/Framework/libEMFramework.a; sourceTree = SOURCE_ROOT; }; - 347186AB18070FAB00FA0FB2 /* CoreBluetooth.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CoreBluetooth.framework; path = System/Library/Frameworks/CoreBluetooth.framework; sourceTree = SDKROOT; }; - 34AAB876189804FF0019860D /* BTAppDelegate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = BTAppDelegate.h; path = FirstAppExample/BTAppDelegate.h; sourceTree = SOURCE_ROOT; }; - 34AAB877189804FF0019860D /* BTAppDelegate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = BTAppDelegate.m; path = FirstAppExample/BTAppDelegate.m; sourceTree = SOURCE_ROOT; }; - 34AAB879189804FF0019860D /* EMDevicePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = EMDevicePickerViewController.h; path = FirstAppExample/EMDevicePickerViewController.h; sourceTree = SOURCE_ROOT; }; - 34AAB87A189804FF0019860D /* EMDevicePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = EMDevicePickerViewController.m; path = FirstAppExample/EMDevicePickerViewController.m; sourceTree = SOURCE_ROOT; }; - 34AAB87E189804FF0019860D /* BT Vendor-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "BT Vendor-Info.plist"; path = "FirstAppExample/BT Vendor-Info.plist"; sourceTree = SOURCE_ROOT; }; - 34AAB87F189804FF0019860D /* BT Vendor-Prefix.pch */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "BT Vendor-Prefix.pch"; path = "FirstAppExample/BT Vendor-Prefix.pch"; sourceTree = SOURCE_ROOT; }; - 34AAB880189804FF0019860D /* main.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = main.m; path = FirstAppExample/main.m; sourceTree = SOURCE_ROOT; }; - 34AAB88C189805300019860D /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; name = Images.xcassets; path = FirstAppExample/Images.xcassets; sourceTree = SOURCE_ROOT; }; - F9015D9119B73052006C7882 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DatePickerViewController.xib; sourceTree = ""; }; - F9015D9419B73056006C7882 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickerViewController.strings; sourceTree = ""; }; - F9015D9619B73057006C7882 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatePickerViewController.strings; sourceTree = ""; }; - F9015D9819B7305E006C7882 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DatePickerViewController_iPad.xib; sourceTree = ""; }; - F9015D9B19B73062006C7882 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickerViewController_iPad.strings; sourceTree = ""; }; - F9015D9D19B73062006C7882 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatePickerViewController_iPad.strings; sourceTree = ""; }; - F90416FD19CC776E00333AD8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DateRangePickerViewController.xib; sourceTree = ""; }; - F904170019CC777200333AD8 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DateRangePickerViewController.strings; sourceTree = ""; }; - F904170219CC777300333AD8 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DateRangePickerViewController.strings; sourceTree = ""; }; - F915612619C3D16D00126FE2 /* DateRangePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DateRangePickerViewController.h; sourceTree = SOURCE_ROOT; }; - F915612719C3D16D00126FE2 /* DateRangePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DateRangePickerViewController.m; sourceTree = SOURCE_ROOT; }; - F92F567619B75F5E00A1EACA /* PriceChangerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = PriceChangerViewController.h; sourceTree = SOURCE_ROOT; }; - F92F567719B75F5E00A1EACA /* PriceChangerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = PriceChangerViewController.m; sourceTree = SOURCE_ROOT; }; - F92F567E19B7609C00A1EACA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PriceChangerViewController.xib; sourceTree = ""; }; - F92F568119B760A100A1EACA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PriceChangerViewController.strings; sourceTree = ""; }; - F92F568519B760A800A1EACA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PriceChangerViewController_iPad.xib; sourceTree = ""; }; - F92F568819B760AA00A1EACA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PriceChangerViewController_iPad.strings; sourceTree = ""; }; - F92F568A19B760AB00A1EACA /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PriceChangerViewController_iPad.strings; sourceTree = ""; }; - F92F568C19B7616200A1EACA /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PriceChangerViewController.strings; sourceTree = ""; }; - F92F568D19B763FD00A1EACA /* NameChangerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = NameChangerViewController.h; sourceTree = SOURCE_ROOT; }; - F92F568E19B763FD00A1EACA /* NameChangerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = NameChangerViewController.m; sourceTree = SOURCE_ROOT; }; - F92F569319B7665F00A1EACA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NameChangerViewController.xib; sourceTree = ""; }; - F92F569619B7666300A1EACA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NameChangerViewController.strings; sourceTree = ""; }; - F92F569819B7666400A1EACA /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/NameChangerViewController.strings; sourceTree = ""; }; - F92F569C19B76A5D00A1EACA /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NameChangerViewController_iPad.xib; sourceTree = ""; }; - F92F569F19B76A6300A1EACA /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NameChangerViewController_iPad.strings; sourceTree = ""; }; - F92F56A119B76A6400A1EACA /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/NameChangerViewController_iPad.strings; sourceTree = ""; }; - F933F80119B6819400521B90 /* DatePickerViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DatePickerViewController.h; sourceTree = SOURCE_ROOT; }; - F933F80219B6819400521B90 /* DatePickerViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = DatePickerViewController.m; sourceTree = SOURCE_ROOT; }; - F95C3F2919E87B8700C040C0 /* ChildViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ChildViewController.h; sourceTree = SOURCE_ROOT; }; - F95C3F2A19E87B8700C040C0 /* ChildViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ChildViewController.m; sourceTree = SOURCE_ROOT; }; - F961D807199A5F1800E9282C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/MainStoryboard.storyboard; sourceTree = ""; }; - F961D809199A5F2200E9282C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/MainStoryboard.strings; sourceTree = ""; }; - F961D80B199A5F2300E9282C /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/MainStoryboard.strings; sourceTree = ""; }; - F961D80D199A5F2D00E9282C /* Base */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = Base; path = Base.lproj/back_arrow.png; sourceTree = ""; }; - F961D80F199A5F3100E9282C /* en */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = en; path = en.lproj/back_arrow.png; sourceTree = ""; }; - F961D810199A5F3100E9282C /* es */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = es; path = es.lproj/back_arrow.png; sourceTree = ""; }; - F961D815199A5FA000E9282C /* Base */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = Base; path = Base.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - F961D817199A5FA300E9282C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - F961D818199A5FA500E9282C /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/Localizable.strings; sourceTree = SOURCE_ROOT; }; - F961D81A199A711300E9282C /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/EMConnectingView.xib; sourceTree = ""; }; - F961D81D199A711600E9282C /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/EMConnectingView.strings; sourceTree = ""; }; - F961D81F199A711700E9282C /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/EMConnectingView.strings; sourceTree = ""; }; - F975ADAD19E8248000CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DatePickerViewController_iPad_Landscape.xib; sourceTree = ""; }; - F975ADB019E8248200CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickerViewController_iPad_Landscape.strings; sourceTree = ""; }; - F975ADB219E8248300CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatePickerViewController_iPad_Landscape.strings; sourceTree = ""; }; - F975ADBC19E827EC00CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/EMConnectingView_Landscape.xib; sourceTree = ""; }; - F975ADBF19E827F000CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/EMConnectingView_Landscape.strings; sourceTree = ""; }; - F975ADC119E827F100CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/EMConnectingView_Landscape.strings; sourceTree = ""; }; - F975ADC319E827F500CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/EMConnectingView_iPad_Landscape.xib; sourceTree = ""; }; - F975ADC619E827F900CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/EMConnectingView_iPad_Landscape.strings; sourceTree = ""; }; - F975ADC819E827F900CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/EMConnectingView_iPad_Landscape.strings; sourceTree = ""; }; - F975ADD619E82B7D00CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DatePickerViewController_Landscape.xib; sourceTree = ""; }; - F975ADD919E82B8000CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DatePickerViewController_Landscape.strings; sourceTree = ""; }; - F975ADDB19E82B8100CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DatePickerViewController_Landscape.strings; sourceTree = ""; }; - F975ADDD19E82B9800CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PriceChangerViewController_Landscape.xib; sourceTree = ""; }; - F975ADE419E82BE200CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PriceChangerViewController_Landscape.strings; sourceTree = ""; }; - F975ADE619E82BE300CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PriceChangerViewController_Landscape.strings; sourceTree = ""; }; - F975ADE819E82C5D00CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/PriceChangerViewController_iPad_Landscape.xib; sourceTree = ""; }; - F975ADEB19E82C6200CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/PriceChangerViewController_iPad_Landscape.strings; sourceTree = ""; }; - F975ADED19E82C6200CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/PriceChangerViewController_iPad_Landscape.strings; sourceTree = ""; }; - F975ADEF19E82D1400CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NameChangerViewController_Landscape.xib; sourceTree = ""; }; - F975ADF219E82D1600CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NameChangerViewController_Landscape.strings; sourceTree = ""; }; - F975ADF419E82D1600CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/NameChangerViewController_Landscape.strings; sourceTree = ""; }; - F975ADF619E82D9F00CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/NameChangerViewController_iPad_Landscape.xib; sourceTree = ""; }; - F975ADF919E82DA100CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/NameChangerViewController_iPad_Landscape.strings; sourceTree = ""; }; - F975ADFB19E82DA200CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/NameChangerViewController_iPad_Landscape.strings; sourceTree = ""; }; - F975ADFD19E8347700CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DateRangePickerViewController_Landscape.xib; sourceTree = ""; }; - F975AE0019E8347900CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DateRangePickerViewController_Landscape.strings; sourceTree = ""; }; - F975AE0219E8347A00CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DateRangePickerViewController_Landscape.strings; sourceTree = ""; }; - F975AE0419E8359B00CA4442 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DateRangePickerViewController_iPad_Landscape.xib; sourceTree = ""; }; - F975AE0719E8359D00CA4442 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DateRangePickerViewController_iPad_Landscape.strings; sourceTree = ""; }; - F975AE0919E8359E00CA4442 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DateRangePickerViewController_iPad_Landscape.strings; sourceTree = ""; }; - F97B90C919B859F500DDA9EF /* icon_checkmark.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_checkmark.png; sourceTree = SOURCE_ROOT; }; - F97B90CA19B859F500DDA9EF /* icon_delete.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = icon_delete.png; sourceTree = SOURCE_ROOT; }; - F98356D4192E835F00EA6821 /* InitialViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = InitialViewController.h; sourceTree = SOURCE_ROOT; }; - F98356D5192E835F00EA6821 /* InitialViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = InitialViewController.m; sourceTree = SOURCE_ROOT; }; - F98356D7192E906600EA6821 /* bluetooth.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = bluetooth.png; sourceTree = SOURCE_ROOT; }; - F98356D9192EAFD400EA6821 /* CommunicationProtocol.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CommunicationProtocol.h; sourceTree = SOURCE_ROOT; }; - F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = CommunicationProtocol.m; sourceTree = SOURCE_ROOT; }; - F98356DF192EC84700EA6821 /* MenuTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = MenuTableViewController.h; sourceTree = SOURCE_ROOT; }; - F98356E0192EC84700EA6821 /* MenuTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = MenuTableViewController.m; sourceTree = SOURCE_ROOT; }; - F98446EE19B9EAE9005C4992 /* Sensors.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sensors.h; sourceTree = SOURCE_ROOT; }; - F98446EF19B9EAE9005C4992 /* Sensors.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Sensors.m; sourceTree = SOURCE_ROOT; }; - F989B5F919BBC80300657DD9 /* carat-open.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "carat-open.png"; sourceTree = SOURCE_ROOT; }; - F989B5FA19BBC80300657DD9 /* carat.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = carat.png; sourceTree = SOURCE_ROOT; }; - F989B5FD19BCD7A100657DD9 /* Sale.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Sale.h; sourceTree = SOURCE_ROOT; }; - F989B5FE19BCD7A100657DD9 /* Sale.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Sale.m; sourceTree = SOURCE_ROOT; }; - F989B60019BCE28C00657DD9 /* SalesLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SalesLog.h; sourceTree = SOURCE_ROOT; }; - F989B60119BCE28C00657DD9 /* SalesLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SalesLog.m; sourceTree = SOURCE_ROOT; }; - F996591319CC7F3D00667BEC /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/DateRangePickerViewController_iPad.xib; sourceTree = ""; }; - F996591619CC7F4400667BEC /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/DateRangePickerViewController_iPad.strings; sourceTree = ""; }; - F996591819CC7F4500667BEC /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/DateRangePickerViewController_iPad.strings; sourceTree = ""; }; - F9A8EF7A192FE201009E7532 /* Stack.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Stack.h; sourceTree = SOURCE_ROOT; }; - F9A8EF7B192FE201009E7532 /* Stack.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Stack.m; sourceTree = SOURCE_ROOT; }; - F9B9100719E59773006D4D06 /* IncidentLog.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IncidentLog.h; sourceTree = SOURCE_ROOT; }; - F9B9100819E59773006D4D06 /* IncidentLog.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = IncidentLog.m; sourceTree = SOURCE_ROOT; }; - F9B9100A19E5A0A1006D4D06 /* Incident.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Incident.h; sourceTree = SOURCE_ROOT; }; - F9B9100B19E5A0A1006D4D06 /* Incident.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = Incident.m; sourceTree = SOURCE_ROOT; }; - F9C77F4F192CDE30002DBE8A /* system.json */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.json; path = system.json; sourceTree = SOURCE_ROOT; }; - F9CED59819BE086E008F3764 /* UIView+Toast.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "UIView+Toast.h"; sourceTree = SOURCE_ROOT; }; - F9CED59919BE086E008F3764 /* UIView+Toast.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = "UIView+Toast.m"; sourceTree = SOURCE_ROOT; }; - F9E4D8FE19B8FD32009A7359 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/EMConnectingView_iPad.xib; sourceTree = ""; }; - F9E4D90119B8FD36009A7359 /* en */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = en; path = en.lproj/EMConnectingView_iPad.strings; sourceTree = ""; }; - F9E4D90319B8FD37009A7359 /* es */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = es; path = es.lproj/EMConnectingView_iPad.strings; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 3471865A18070D9300FA0FB2 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 347186AC18070FAB00FA0FB2 /* CoreBluetooth.framework in Frameworks */, - 3471866318070D9300FA0FB2 /* CoreGraphics.framework in Frameworks */, - 3471866518070D9300FA0FB2 /* UIKit.framework in Frameworks */, - 347186A618070E7200FA0FB2 /* libEMFramework.a in Frameworks */, - 3471866118070D9300FA0FB2 /* Foundation.framework in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 3471865418070D9300FA0FB2 = { - isa = PBXGroup; - children = ( - 3471866618070D9300FA0FB2 /* BT Vendor */, - 3471865F18070D9300FA0FB2 /* Frameworks */, - 3471865E18070D9300FA0FB2 /* Products */, - ); - sourceTree = ""; - }; - 3471865E18070D9300FA0FB2 /* Products */ = { - isa = PBXGroup; - children = ( - 3471865D18070D9300FA0FB2 /* BT Vendor.app */, - ); - name = Products; - sourceTree = ""; - }; - 3471865F18070D9300FA0FB2 /* Frameworks */ = { - isa = PBXGroup; - children = ( - 347186AB18070FAB00FA0FB2 /* CoreBluetooth.framework */, - 3471866018070D9300FA0FB2 /* Foundation.framework */, - 3471866218070D9300FA0FB2 /* CoreGraphics.framework */, - 3471866418070D9300FA0FB2 /* UIKit.framework */, - 3471867918070D9300FA0FB2 /* XCTest.framework */, - ); - name = Frameworks; - sourceTree = ""; - }; - 3471866618070D9300FA0FB2 /* BT Vendor */ = { - isa = PBXGroup; - children = ( - F9CED59719BE0863008F3764 /* Toast View */, - 3471868F18070E4300FA0FB2 /* Framework */, - 347186A718070F7F00FA0FB2 /* Device Picker */, - 347186B91807290E00FA0FB2 /* Schemas */, - 3471866718070D9300FA0FB2 /* Supporting Files */, - F9ED745419B89E4600C7298D /* Views */, - F9ED745519B89E7700C7298D /* Headers */, - 34AAB877189804FF0019860D /* BTAppDelegate.m */, - F98356D5192E835F00EA6821 /* InitialViewController.m */, - F98356E0192EC84700EA6821 /* MenuTableViewController.m */, - F9A8EF7B192FE201009E7532 /* Stack.m */, - F98356DA192EAFD400EA6821 /* CommunicationProtocol.m */, - F933F80219B6819400521B90 /* DatePickerViewController.m */, - F92F567719B75F5E00A1EACA /* PriceChangerViewController.m */, - F92F568E19B763FD00A1EACA /* NameChangerViewController.m */, - F915612719C3D16D00126FE2 /* DateRangePickerViewController.m */, - 34AAB880189804FF0019860D /* main.m */, - F98446EF19B9EAE9005C4992 /* Sensors.m */, - F989B5FE19BCD7A100657DD9 /* Sale.m */, - F989B60119BCE28C00657DD9 /* SalesLog.m */, - F9B9100B19E5A0A1006D4D06 /* Incident.m */, - F9B9100819E59773006D4D06 /* IncidentLog.m */, - F95C3F2A19E87B8700C040C0 /* ChildViewController.m */, - ); - name = "BT Vendor"; - path = TestAppExample; - sourceTree = ""; - }; - 3471866718070D9300FA0FB2 /* Supporting Files */ = { - isa = PBXGroup; - children = ( - F9ED745719B89EF000C7298D /* Images */, - F961D814199A5FA000E9282C /* Localizable.strings */, - 34AAB87E189804FF0019860D /* BT Vendor-Info.plist */, - 34AAB87F189804FF0019860D /* BT Vendor-Prefix.pch */, - ); - name = "Supporting Files"; - sourceTree = ""; - }; - 3471868F18070E4300FA0FB2 /* Framework */ = { - isa = PBXGroup; - children = ( - 347186A518070E7200FA0FB2 /* libEMFramework.a */, - 3471869018070E6500FA0FB2 /* Headers */, - ); - name = Framework; - sourceTree = ""; - }; - 3471869018070E6500FA0FB2 /* Headers */ = { - isa = PBXGroup; - children = ( - 3471869118070E6500FA0FB2 /* EMBluetoothLowEnergyConnectionType.h */, - 3471869218070E6500FA0FB2 /* EMChecksum.h */, - 3471869318070E6500FA0FB2 /* EMConnection.h */, - 3471869518070E6500FA0FB2 /* EMConnectionListManager.h */, - 3471869718070E6500FA0FB2 /* EMConnectionManager.h */, - 3471869918070E6500FA0FB2 /* EMConnectionType.h */, - 3471869A18070E6500FA0FB2 /* EMDeviceBasicDescription.h */, - 3471869B18070E6500FA0FB2 /* EMFramework.h */, - 3471869E18070E6500FA0FB2 /* EMResourceValue+CocoaAdditions.h */, - 3471869F18070E6500FA0FB2 /* EMResourceValue.h */, - 347186A018070E6500FA0FB2 /* EMSchema.h */, - 347186A118070E6500FA0FB2 /* EMSerialPacket.h */, - 347186A218070E6500FA0FB2 /* EMSignalStrengthFilter.h */, - 347186A318070E6500FA0FB2 /* EMTypes.h */, - ); - name = Headers; - path = EmmocoMobileFramework/Headers; - sourceTree = SOURCE_ROOT; - }; - 347186A718070F7F00FA0FB2 /* Device Picker */ = { - isa = PBXGroup; - children = ( - F961D81B199A711300E9282C /* EMConnectingView.xib */, - F975ADBD19E827EC00CA4442 /* EMConnectingView_Landscape.xib */, - F9E4D8FF19B8FD32009A7359 /* EMConnectingView_iPad.xib */, - F975ADC419E827F500CA4442 /* EMConnectingView_iPad_Landscape.xib */, - 34AAB879189804FF0019860D /* EMDevicePickerViewController.h */, - 34AAB87A189804FF0019860D /* EMDevicePickerViewController.m */, - ); - name = "Device Picker"; - sourceTree = ""; - }; - 347186B91807290E00FA0FB2 /* Schemas */ = { - isa = PBXGroup; - children = ( - F9C77F4F192CDE30002DBE8A /* system.json */, - ); - name = Schemas; - sourceTree = ""; - }; - F9CED59719BE0863008F3764 /* Toast View */ = { - isa = PBXGroup; - children = ( - F9CED59819BE086E008F3764 /* UIView+Toast.h */, - F9CED59919BE086E008F3764 /* UIView+Toast.m */, - ); - name = "Toast View"; - sourceTree = ""; - }; - F9ED745419B89E4600C7298D /* Views */ = { - isa = PBXGroup; - children = ( - F961D806199A5F1000E9282C /* MainStoryboard.storyboard */, - F9015D9219B73052006C7882 /* DatePickerViewController.xib */, - F975ADD719E82B7D00CA4442 /* DatePickerViewController_Landscape.xib */, - F9015D9919B7305E006C7882 /* DatePickerViewController_iPad.xib */, - F975ADAE19E8248000CA4442 /* DatePickerViewController_iPad_Landscape.xib */, - F92F567F19B7609C00A1EACA /* PriceChangerViewController.xib */, - F975ADDE19E82B9800CA4442 /* PriceChangerViewController_Landscape.xib */, - F92F568619B760A800A1EACA /* PriceChangerViewController_iPad.xib */, - F975ADE919E82C5D00CA4442 /* PriceChangerViewController_iPad_Landscape.xib */, - F92F569419B7665F00A1EACA /* NameChangerViewController.xib */, - F975ADF019E82D1400CA4442 /* NameChangerViewController_Landscape.xib */, - F92F569D19B76A5D00A1EACA /* NameChangerViewController_iPad.xib */, - F975ADF719E82D9F00CA4442 /* NameChangerViewController_iPad_Landscape.xib */, - F90416FE19CC776E00333AD8 /* DateRangePickerViewController.xib */, - F975ADFE19E8347700CA4442 /* DateRangePickerViewController_Landscape.xib */, - F996591419CC7F3D00667BEC /* DateRangePickerViewController_iPad.xib */, - F975AE0519E8359B00CA4442 /* DateRangePickerViewController_iPad_Landscape.xib */, - ); - name = Views; - sourceTree = ""; - }; - F9ED745519B89E7700C7298D /* Headers */ = { - isa = PBXGroup; - children = ( - 34AAB876189804FF0019860D /* BTAppDelegate.h */, - F98356D4192E835F00EA6821 /* InitialViewController.h */, - F98356DF192EC84700EA6821 /* MenuTableViewController.h */, - F98356D9192EAFD400EA6821 /* CommunicationProtocol.h */, - F9A8EF7A192FE201009E7532 /* Stack.h */, - F933F80119B6819400521B90 /* DatePickerViewController.h */, - F92F567619B75F5E00A1EACA /* PriceChangerViewController.h */, - F92F568D19B763FD00A1EACA /* NameChangerViewController.h */, - F915612619C3D16D00126FE2 /* DateRangePickerViewController.h */, - F98446EE19B9EAE9005C4992 /* Sensors.h */, - F989B5FD19BCD7A100657DD9 /* Sale.h */, - F989B60019BCE28C00657DD9 /* SalesLog.h */, - F9B9100A19E5A0A1006D4D06 /* Incident.h */, - F9B9100719E59773006D4D06 /* IncidentLog.h */, - F95C3F2919E87B8700C040C0 /* ChildViewController.h */, - ); - name = Headers; - sourceTree = ""; - }; - F9ED745719B89EF000C7298D /* Images */ = { - isa = PBXGroup; - children = ( - 34AAB88C189805300019860D /* Images.xcassets */, - F989B5F919BBC80300657DD9 /* carat-open.png */, - F989B5FA19BBC80300657DD9 /* carat.png */, - F97B90C919B859F500DDA9EF /* icon_checkmark.png */, - F97B90CA19B859F500DDA9EF /* icon_delete.png */, - F961D80E199A5F2D00E9282C /* back_arrow.png */, - F98356D7192E906600EA6821 /* bluetooth.png */, - ); - name = Images; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 3471865C18070D9300FA0FB2 /* BT Vendor */ = { - isa = PBXNativeTarget; - buildConfigurationList = 3471868918070D9300FA0FB2 /* Build configuration list for PBXNativeTarget "BT Vendor" */; - buildPhases = ( - 3471865918070D9300FA0FB2 /* Sources */, - 3471865A18070D9300FA0FB2 /* Frameworks */, - 3471865B18070D9300FA0FB2 /* Resources */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = "BT Vendor"; - productName = TestAppExample; - productReference = 3471865D18070D9300FA0FB2 /* BT Vendor.app */; - productType = "com.apple.product-type.application"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 3471865518070D9300FA0FB2 /* Project object */ = { - isa = PBXProject; - attributes = { - CLASSPREFIX = EM; - LastUpgradeCheck = 0510; - ORGANIZATIONNAME = Emmoco; - }; - buildConfigurationList = 3471865818070D9300FA0FB2 /* Build configuration list for PBXProject "BT Vendor" */; - compatibilityVersion = "Xcode 3.2"; - developmentRegion = English; - hasScannedForEncodings = 0; - knownRegions = ( - en, - es, - Base, - ); - mainGroup = 3471865418070D9300FA0FB2; - productRefGroup = 3471865E18070D9300FA0FB2 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 3471865C18070D9300FA0FB2 /* BT Vendor */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXResourcesBuildPhase section */ - 3471865B18070D9300FA0FB2 /* Resources */ = { - isa = PBXResourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F975ADC219E827F500CA4442 /* EMConnectingView_iPad_Landscape.xib in Resources */, - F975ADF519E82D9F00CA4442 /* NameChangerViewController_iPad_Landscape.xib in Resources */, - F975AE0319E8359B00CA4442 /* DateRangePickerViewController_iPad_Landscape.xib in Resources */, - F975ADD519E82B7D00CA4442 /* DatePickerViewController_Landscape.xib in Resources */, - F97B90CC19B859F500DDA9EF /* icon_delete.png in Resources */, - F9015D9019B73052006C7882 /* DatePickerViewController.xib in Resources */, - F9E4D8FD19B8FD32009A7359 /* EMConnectingView_iPad.xib in Resources */, - F975ADDC19E82B9800CA4442 /* PriceChangerViewController_Landscape.xib in Resources */, - F98356D8192E906600EA6821 /* bluetooth.png in Resources */, - F9015D9719B7305E006C7882 /* DatePickerViewController_iPad.xib in Resources */, - F961D819199A711300E9282C /* EMConnectingView.xib in Resources */, - F975ADE719E82C5D00CA4442 /* PriceChangerViewController_iPad_Landscape.xib in Resources */, - F9C77F50192CDE30002DBE8A /* system.json in Resources */, - F989B5FC19BBC80300657DD9 /* carat.png in Resources */, - F92F569B19B76A5D00A1EACA /* NameChangerViewController_iPad.xib in Resources */, - F92F567D19B7609C00A1EACA /* PriceChangerViewController.xib in Resources */, - F92F569219B7665F00A1EACA /* NameChangerViewController.xib in Resources */, - F90416FC19CC776E00333AD8 /* DateRangePickerViewController.xib in Resources */, - F975ADFC19E8347700CA4442 /* DateRangePickerViewController_Landscape.xib in Resources */, - F975ADAC19E8248000CA4442 /* DatePickerViewController_iPad_Landscape.xib in Resources */, - F975ADEE19E82D1400CA4442 /* NameChangerViewController_Landscape.xib in Resources */, - F996591219CC7F3D00667BEC /* DateRangePickerViewController_iPad.xib in Resources */, - F961D80C199A5F2D00E9282C /* back_arrow.png in Resources */, - F961D816199A5FA000E9282C /* Localizable.strings in Resources */, - F97B90CB19B859F500DDA9EF /* icon_checkmark.png in Resources */, - 34AAB88D189805300019860D /* Images.xcassets in Resources */, - F989B5FB19BBC80300657DD9 /* carat-open.png in Resources */, - F92F568419B760A800A1EACA /* PriceChangerViewController_iPad.xib in Resources */, - F975ADBB19E827EC00CA4442 /* EMConnectingView_Landscape.xib in Resources */, - F961D804199A5F1000E9282C /* MainStoryboard.storyboard in Resources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXResourcesBuildPhase section */ - -/* Begin PBXSourcesBuildPhase section */ - 3471865918070D9300FA0FB2 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - F915612919C3D16D00126FE2 /* DateRangePickerViewController.m in Sources */, - F92F569019B763FD00A1EACA /* NameChangerViewController.m in Sources */, - F933F80419B6819400521B90 /* DatePickerViewController.m in Sources */, - F989B5FF19BCD7A100657DD9 /* Sale.m in Sources */, - F98356D6192E835F00EA6821 /* InitialViewController.m in Sources */, - F9B9100C19E5A0A1006D4D06 /* Incident.m in Sources */, - F9CED59A19BE086E008F3764 /* UIView+Toast.m in Sources */, - F9A8EF7C192FE201009E7532 /* Stack.m in Sources */, - 34AAB885189804FF0019860D /* EMDevicePickerViewController.m in Sources */, - F9B9100919E59773006D4D06 /* IncidentLog.m in Sources */, - F989B60219BCE28C00657DD9 /* SalesLog.m in Sources */, - F95C3F2B19E87B8700C040C0 /* ChildViewController.m in Sources */, - F92F567919B75F5E00A1EACA /* PriceChangerViewController.m in Sources */, - 34AAB883189804FF0019860D /* BTAppDelegate.m in Sources */, - F98356DB192EAFD400EA6821 /* CommunicationProtocol.m in Sources */, - F98356E1192EC84700EA6821 /* MenuTableViewController.m in Sources */, - F98446F019B9EAE9005C4992 /* Sensors.m in Sources */, - 34AAB889189804FF0019860D /* main.m in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin PBXVariantGroup section */ - F9015D9219B73052006C7882 /* DatePickerViewController.xib */ = { - isa = PBXVariantGroup; - children = ( - F9015D9119B73052006C7882 /* Base */, - F9015D9419B73056006C7882 /* en */, - F9015D9619B73057006C7882 /* es */, - ); - name = DatePickerViewController.xib; - sourceTree = SOURCE_ROOT; - }; - F9015D9919B7305E006C7882 /* DatePickerViewController_iPad.xib */ = { - isa = PBXVariantGroup; - children = ( - F9015D9819B7305E006C7882 /* Base */, - F9015D9B19B73062006C7882 /* en */, - F9015D9D19B73062006C7882 /* es */, - ); - name = DatePickerViewController_iPad.xib; - sourceTree = SOURCE_ROOT; - }; - F90416FE19CC776E00333AD8 /* DateRangePickerViewController.xib */ = { - isa = PBXVariantGroup; - children = ( - F90416FD19CC776E00333AD8 /* Base */, - F904170019CC777200333AD8 /* en */, - F904170219CC777300333AD8 /* es */, - ); - name = DateRangePickerViewController.xib; - sourceTree = SOURCE_ROOT; - }; - F92F567F19B7609C00A1EACA /* PriceChangerViewController.xib */ = { - isa = PBXVariantGroup; - children = ( - F92F567E19B7609C00A1EACA /* Base */, - F92F568119B760A100A1EACA /* en */, - F92F568C19B7616200A1EACA /* es */, - ); - name = PriceChangerViewController.xib; - sourceTree = SOURCE_ROOT; - }; - F92F568619B760A800A1EACA /* PriceChangerViewController_iPad.xib */ = { - isa = PBXVariantGroup; - children = ( - F92F568519B760A800A1EACA /* Base */, - F92F568819B760AA00A1EACA /* en */, - F92F568A19B760AB00A1EACA /* es */, - ); - name = PriceChangerViewController_iPad.xib; - sourceTree = SOURCE_ROOT; - }; - F92F569419B7665F00A1EACA /* NameChangerViewController.xib */ = { - isa = PBXVariantGroup; - children = ( - F92F569319B7665F00A1EACA /* Base */, - F92F569619B7666300A1EACA /* en */, - F92F569819B7666400A1EACA /* es */, - ); - name = NameChangerViewController.xib; - sourceTree = SOURCE_ROOT; - }; - F92F569D19B76A5D00A1EACA /* NameChangerViewController_iPad.xib */ = { - isa = PBXVariantGroup; - children = ( - F92F569C19B76A5D00A1EACA /* Base */, - F92F569F19B76A6300A1EACA /* en */, - F92F56A119B76A6400A1EACA /* es */, - ); - name = NameChangerViewController_iPad.xib; - sourceTree = SOURCE_ROOT; - }; - F961D806199A5F1000E9282C /* MainStoryboard.storyboard */ = { - isa = PBXVariantGroup; - children = ( - F961D807199A5F1800E9282C /* Base */, - F961D809199A5F2200E9282C /* en */, - F961D80B199A5F2300E9282C /* es */, - ); - name = MainStoryboard.storyboard; - path = FirstAppExample; - sourceTree = SOURCE_ROOT; - }; - F961D80E199A5F2D00E9282C /* back_arrow.png */ = { - isa = PBXVariantGroup; - children = ( - F961D80D199A5F2D00E9282C /* Base */, - F961D80F199A5F3100E9282C /* en */, - F961D810199A5F3100E9282C /* es */, - ); - name = back_arrow.png; - sourceTree = SOURCE_ROOT; - }; - F961D814199A5FA000E9282C /* Localizable.strings */ = { - isa = PBXVariantGroup; - children = ( - F961D815199A5FA000E9282C /* Base */, - F961D817199A5FA300E9282C /* en */, - F961D818199A5FA500E9282C /* es */, - ); - name = Localizable.strings; - sourceTree = ""; - }; - F961D81B199A711300E9282C /* EMConnectingView.xib */ = { - isa = PBXVariantGroup; - children = ( - F961D81A199A711300E9282C /* Base */, - F961D81D199A711600E9282C /* en */, - F961D81F199A711700E9282C /* es */, - ); - name = EMConnectingView.xib; - path = FirstAppExample; - sourceTree = SOURCE_ROOT; - }; - F975ADAE19E8248000CA4442 /* DatePickerViewController_iPad_Landscape.xib */ = { - isa = PBXVariantGroup; - children = ( - F975ADAD19E8248000CA4442 /* Base */, - F975ADB019E8248200CA4442 /* en */, - F975ADB219E8248300CA4442 /* es */, - ); - name = DatePickerViewController_iPad_Landscape.xib; - sourceTree = SOURCE_ROOT; - }; - F975ADBD19E827EC00CA4442 /* EMConnectingView_Landscape.xib */ = { - isa = PBXVariantGroup; - children = ( - F975ADBC19E827EC00CA4442 /* Base */, - F975ADBF19E827F000CA4442 /* en */, - F975ADC119E827F100CA4442 /* es */, - ); - name = EMConnectingView_Landscape.xib; - sourceTree = SOURCE_ROOT; - }; - F975ADC419E827F500CA4442 /* EMConnectingView_iPad_Landscape.xib */ = { - isa = PBXVariantGroup; - children = ( - F975ADC319E827F500CA4442 /* Base */, - F975ADC619E827F900CA4442 /* en */, - F975ADC819E827F900CA4442 /* es */, - ); - name = EMConnectingView_iPad_Landscape.xib; - sourceTree = SOURCE_ROOT; - }; - F975ADD719E82B7D00CA4442 /* DatePickerViewController_Landscape.xib */ = { - isa = PBXVariantGroup; - children = ( - F975ADD619E82B7D00CA4442 /* Base */, - F975ADD919E82B8000CA4442 /* en */, - F975ADDB19E82B8100CA4442 /* es */, - ); - name = DatePickerViewController_Landscape.xib; - sourceTree = SOURCE_ROOT; - }; - F975ADDE19E82B9800CA4442 /* PriceChangerViewController_Landscape.xib */ = { - isa = PBXVariantGroup; - children = ( - F975ADDD19E82B9800CA4442 /* Base */, - F975ADE419E82BE200CA4442 /* en */, - F975ADE619E82BE300CA4442 /* es */, - ); - name = PriceChangerViewController_Landscape.xib; - sourceTree = SOURCE_ROOT; - }; - F975ADE919E82C5D00CA4442 /* PriceChangerViewController_iPad_Landscape.xib */ = { - isa = PBXVariantGroup; - children = ( - F975ADE819E82C5D00CA4442 /* Base */, - F975ADEB19E82C6200CA4442 /* en */, - F975ADED19E82C6200CA4442 /* es */, - ); - name = PriceChangerViewController_iPad_Landscape.xib; - sourceTree = SOURCE_ROOT; - }; - F975ADF019E82D1400CA4442 /* NameChangerViewController_Landscape.xib */ = { - isa = PBXVariantGroup; - children = ( - F975ADEF19E82D1400CA4442 /* Base */, - F975ADF219E82D1600CA4442 /* en */, - F975ADF419E82D1600CA4442 /* es */, - ); - name = NameChangerViewController_Landscape.xib; - sourceTree = SOURCE_ROOT; - }; - F975ADF719E82D9F00CA4442 /* NameChangerViewController_iPad_Landscape.xib */ = { - isa = PBXVariantGroup; - children = ( - F975ADF619E82D9F00CA4442 /* Base */, - F975ADF919E82DA100CA4442 /* en */, - F975ADFB19E82DA200CA4442 /* es */, - ); - name = NameChangerViewController_iPad_Landscape.xib; - sourceTree = SOURCE_ROOT; - }; - F975ADFE19E8347700CA4442 /* DateRangePickerViewController_Landscape.xib */ = { - isa = PBXVariantGroup; - children = ( - F975ADFD19E8347700CA4442 /* Base */, - F975AE0019E8347900CA4442 /* en */, - F975AE0219E8347A00CA4442 /* es */, - ); - name = DateRangePickerViewController_Landscape.xib; - sourceTree = SOURCE_ROOT; - }; - F975AE0519E8359B00CA4442 /* DateRangePickerViewController_iPad_Landscape.xib */ = { - isa = PBXVariantGroup; - children = ( - F975AE0419E8359B00CA4442 /* Base */, - F975AE0719E8359D00CA4442 /* en */, - F975AE0919E8359E00CA4442 /* es */, - ); - name = DateRangePickerViewController_iPad_Landscape.xib; - sourceTree = SOURCE_ROOT; - }; - F996591419CC7F3D00667BEC /* DateRangePickerViewController_iPad.xib */ = { - isa = PBXVariantGroup; - children = ( - F996591319CC7F3D00667BEC /* Base */, - F996591619CC7F4400667BEC /* en */, - F996591819CC7F4500667BEC /* es */, - ); - name = DateRangePickerViewController_iPad.xib; - sourceTree = SOURCE_ROOT; - }; - F9E4D8FF19B8FD32009A7359 /* EMConnectingView_iPad.xib */ = { - isa = PBXVariantGroup; - children = ( - F9E4D8FE19B8FD32009A7359 /* Base */, - F9E4D90119B8FD36009A7359 /* en */, - F9E4D90319B8FD37009A7359 /* es */, - ); - name = EMConnectingView_iPad.xib; - sourceTree = SOURCE_ROOT; - }; -/* End PBXVariantGroup section */ - -/* Begin XCBuildConfiguration section */ - 3471868718070D9300FA0FB2 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - 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 = "iPhone Developer"; - "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.1; - ONLY_ACTIVE_ARCH = YES; - OTHER_CODE_SIGN_FLAGS = "-gta"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - }; - name = Debug; - }; - 3471868818070D9300FA0FB2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ALWAYS_SEARCH_USER_PATHS = NO; - 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 = "iPhone Developer"; - "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.1; - OTHER_CODE_SIGN_FLAGS = "-gta"; - SDKROOT = iphoneos; - TARGETED_DEVICE_FAMILY = "1,2"; - VALIDATE_PRODUCT = YES; - }; - name = Release; - }; - 3471868A18070D9300FA0FB2 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "FirstAppExample/BT Vendor-Prefix.pch"; - INFOPLIST_FILE = "FirstAppExample/BT Vendor-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - EmmocoMobileFramework/Framework, - ); - OTHER_LDFLAGS = "-all_load"; - PRODUCT_NAME = "BT Vendor"; - WRAPPER_EXTENSION = app; - }; - name = Debug; - }; - 3471868B18070D9300FA0FB2 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; - ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; - GCC_PRECOMPILE_PREFIX_HEADER = YES; - GCC_PREFIX_HEADER = "FirstAppExample/BT Vendor-Prefix.pch"; - INFOPLIST_FILE = "FirstAppExample/BT Vendor-Info.plist"; - LIBRARY_SEARCH_PATHS = ( - "$(inherited)", - EmmocoMobileFramework/Framework, - ); - OTHER_LDFLAGS = "-all_load"; - PRODUCT_NAME = "BT Vendor"; - WRAPPER_EXTENSION = app; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 3471865818070D9300FA0FB2 /* Build configuration list for PBXProject "BT Vendor" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3471868718070D9300FA0FB2 /* Debug */, - 3471868818070D9300FA0FB2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 3471868918070D9300FA0FB2 /* Build configuration list for PBXNativeTarget "BT Vendor" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 3471868A18070D9300FA0FB2 /* Debug */, - 3471868B18070D9300FA0FB2 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - }; - rootObject = 3471865518070D9300FA0FB2 /* Project object */; -} diff --git a/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index e7ac746..0000000 --- a/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,7 +0,0 @@ - - - - - diff --git a/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/DUREX Vendor Control.xccheckout b/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/DUREX Vendor Control.xccheckout deleted file mode 100644 index cde8688..0000000 --- a/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/DUREX Vendor Control.xccheckout +++ /dev/null @@ -1,46 +0,0 @@ - - - - - IDESourceControlProjectFavoriteDictionaryKey - - IDESourceControlProjectIdentifier - 5E047851-FD9C-4741-AB1E-249FB7E14E28 - IDESourceControlProjectName - DUREX Vendor Control - IDESourceControlProjectOriginsDictionary - - 910DC6DA-E12E-46D3-A774-09A58FE8ED66 - svn://server/durex - - IDESourceControlProjectPath - DUREX Vendor Control/DUREX Vendor Control.xcodeproj/project.xcworkspace - IDESourceControlProjectRelativeInstallPathDictionary - - 910DC6DA-E12E-46D3-A774-09A58FE8ED66 - ../../.. - - IDESourceControlProjectRepositoryRootDictionary - - 910DC6DA-E12E-46D3-A774-09A58FE8ED66 - svn://server/durex - - IDESourceControlProjectURL - svn://server/durex/DUREX%20Vendor%20Control/DUREX%20Vendor%20Control.xcodeproj - IDESourceControlProjectVersion - 110 - IDESourceControlProjectWCCIdentifier - 910DC6DA-E12E-46D3-A774-09A58FE8ED66 - IDESourceControlProjectWCConfigurations - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.subversion - IDESourceControlWCCIdentifierKey - 910DC6DA-E12E-46D3-A774-09A58FE8ED66 - IDESourceControlWCCName - durex - - - - diff --git a/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/FirstApp.xccheckout b/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/FirstApp.xccheckout deleted file mode 100644 index ad60022..0000000 --- a/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcshareddata/FirstApp.xccheckout +++ /dev/null @@ -1,46 +0,0 @@ - - - - - IDESourceControlProjectFavoriteDictionaryKey - - IDESourceControlProjectIdentifier - F3823CA7-4E1F-42C9-83E6-7F9A3B0B4380 - IDESourceControlProjectName - FirstApp - IDESourceControlProjectOriginsDictionary - - C52D274C-DEEC-4CDB-BD77-3B4747652588 - svn://imanolbarba.net/durex - - IDESourceControlProjectPath - ios-examples-13.4.9/FirstApp/FirstApp.xcodeproj/project.xcworkspace - IDESourceControlProjectRelativeInstallPathDictionary - - C52D274C-DEEC-4CDB-BD77-3B4747652588 - ../../../.. - - IDESourceControlProjectRepositoryRootDictionary - - C52D274C-DEEC-4CDB-BD77-3B4747652588 - svn://imanolbarba.net/durex - - IDESourceControlProjectURL - svn://imanolbarba.net/durex/ios-examples-13.4.9/FirstApp/FirstApp.xcodeproj - IDESourceControlProjectVersion - 110 - IDESourceControlProjectWCCIdentifier - C52D274C-DEEC-4CDB-BD77-3B4747652588 - IDESourceControlProjectWCConfigurations - - - IDESourceControlRepositoryExtensionIdentifierKey - public.vcs.subversion - IDESourceControlWCCIdentifierKey - C52D274C-DEEC-4CDB-BD77-3B4747652588 - IDESourceControlWCCName - durex - - - - diff --git a/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate b/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate deleted file mode 100644 index fe25d99..0000000 Binary files a/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/UserInterfaceState.xcuserstate and /dev/null differ diff --git a/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/WorkspaceSettings.xcsettings b/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/WorkspaceSettings.xcsettings deleted file mode 100644 index 659c876..0000000 --- a/DUREX Vendor Control/BT Vendor.xcodeproj/project.xcworkspace/xcuserdata/imanol.xcuserdatad/WorkspaceSettings.xcsettings +++ /dev/null @@ -1,10 +0,0 @@ - - - - - HasAskedToTakeAutomaticSnapshotBeforeSignificantChanges - - SnapshotAutomaticallyBeforeSignificantChanges - - - diff --git a/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist b/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist deleted file mode 100644 index b08e8dc..0000000 --- a/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist +++ /dev/null @@ -1,757 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/BT Vendor.xcscheme b/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/BT Vendor.xcscheme deleted file mode 100644 index 21d0961..0000000 --- a/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/BT Vendor.xcscheme +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/DUREX Vendor Control.xcscheme b/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/DUREX Vendor Control.xcscheme deleted file mode 100644 index 21d0961..0000000 --- a/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/DUREX Vendor Control.xcscheme +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/xcschememanagement.plist b/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/xcschememanagement.plist deleted file mode 100644 index 7d118c8..0000000 --- a/DUREX Vendor Control/BT Vendor.xcodeproj/xcuserdata/imanol.xcuserdatad/xcschemes/xcschememanagement.plist +++ /dev/null @@ -1,34 +0,0 @@ - - - - - SchemeUserState - - BT Vendor.xcscheme - - orderHint - 1 - - DUREX Vendor Control.xcscheme - - isShown - - orderHint - 0 - - - SuppressBuildableAutocreation - - 3471865C18070D9300FA0FB2 - - primary - - - 3471867718070D9300FA0FB2 - - primary - - - - - diff --git a/DUREX Vendor Control/Base.lproj/DatePickerViewController.xib b/DUREX Vendor Control/Base.lproj/DatePickerViewController.xib deleted file mode 100644 index 2d2118c..0000000 --- a/DUREX Vendor Control/Base.lproj/DatePickerViewController.xib +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ -y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ -5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g -8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ -AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg -DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ -HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g -KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ -OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg -Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ -VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg -Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ -cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg -f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/DatePickerViewController_Landscape.xib b/DUREX Vendor Control/Base.lproj/DatePickerViewController_Landscape.xib deleted file mode 100644 index 4798830..0000000 --- a/DUREX Vendor Control/Base.lproj/DatePickerViewController_Landscape.xib +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ -y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ -5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g -8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ -AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg -DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ -HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g -KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ -OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg -Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ -VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg -Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ -cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg -f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/DatePickerViewController_iPad.xib b/DUREX Vendor Control/Base.lproj/DatePickerViewController_iPad.xib deleted file mode 100644 index 8320152..0000000 --- a/DUREX Vendor Control/Base.lproj/DatePickerViewController_iPad.xib +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ -y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ -5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g -8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ -AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg -DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ -HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g -KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ -OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg -Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ -VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg -Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ -cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg -f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/DatePickerViewController_iPad_Landscape.xib b/DUREX Vendor Control/Base.lproj/DatePickerViewController_iPad_Landscape.xib deleted file mode 100644 index aab2a23..0000000 --- a/DUREX Vendor Control/Base.lproj/DatePickerViewController_iPad_Landscape.xib +++ /dev/null @@ -1,85 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -VFppZgAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAAAAAC5AAAABAAAABCepkign7sVkKCGKqChmveQ -y4kaoNIj9HDSYSYQ1v50INiArZDa/tGg28CQENzes6DdqayQ3r6VoN+JjpDgnneg4WlwkOJ+WaDjSVKQ -5F47oOUpNJDmR1gg5xJREOgnOiDo8jMQ6gccIOrSFRDr5v4g7LH3EO3G4CDukdkQ76/8oPBxuxDxj96g -8n/BkPNvwKD0X6OQ9U+ioPY/hZD3L4Sg+CiiEPkPZqD6CIQQ+viDIPvoZhD82GUg/chIEP64RyD/qCoQ -AJgpIAGIDBACeAsgA3EokARhJ6AFUQqQBkEJoAcw7JAHjUOgCRDOkAmtvyAK8LCQC+CvoAzZzRANwJGg -DrmvEA+priAQmZEQEYmQIBJ5cxATaXIgFFlVEBVJVCAWOTcQFyk2IBgiU5AZCRggGgI1kBryNKAb4heQ -HNIWoB3B+ZAesfigH6HbkCB2KyAhgb2QIlYNICNq2hAkNe8gJUq8ECYV0SAnKp4QJ/7toCkKgBAp3s+g -KupiECu+saAs036QLZ6ToC6zYJAvfnWgMJNCkDFnkiAycySQM0d0IDRTBpA1J1YgNjLokDcHOCA4HAUQ -OOcaIDn75xA6xvwgO9vJEDywGKA9u6sQPo/6oD+bjRBAb9ygQYSpkEJPvqBDZIuQRC+goEVEbZBF89Mg -Ry2KEEfTtSBJDWwQSbOXIErtThBLnLOgTNZqkE18laBOtkyQT1x3oFCWLpBRPFmgUnYQkFMcO6BUVfKQ -VPwdoFY11JBW5TogWB7xEFjFHCBZ/tMQWqT+IFvetRBchOAgXb6XEF5kwiBfnnkQYE3eoGGHlZBiLcCg -Y2d3kGQNoqBlR1mQZe2EoGcnO5BnzWagaQcdkGmtSKBq5v+Qa5ZlIGzQHBBtdkcgbq/+EG9WKSBwj+AQ -cTYLIHJvwhBzFe0gdE+kEHT/CaB2OMCQdt7roHgYopB4vs2gefiEkHqer6B72GaQfH6RoH24SJB+XnOg -f5gqkAABAAECAwEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEA -AQABAAEAAQAB//+dkAEA//+PgAAE//+dkAEI//+dkAEMUERUAFBTVABQV1QAUFBUAAAAAAEAAAABA - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/DateRangePickerViewController.xib b/DUREX Vendor Control/Base.lproj/DateRangePickerViewController.xib deleted file mode 100644 index 2b0c9b8..0000000 --- a/DUREX Vendor Control/Base.lproj/DateRangePickerViewController.xib +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/DateRangePickerViewController_Landscape.xib b/DUREX Vendor Control/Base.lproj/DateRangePickerViewController_Landscape.xib deleted file mode 100644 index b506f05..0000000 --- a/DUREX Vendor Control/Base.lproj/DateRangePickerViewController_Landscape.xib +++ /dev/null @@ -1,173 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/DateRangePickerViewController_iPad.xib b/DUREX Vendor Control/Base.lproj/DateRangePickerViewController_iPad.xib deleted file mode 100644 index b3f2518..0000000 --- a/DUREX Vendor Control/Base.lproj/DateRangePickerViewController_iPad.xib +++ /dev/null @@ -1,168 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/DateRangePickerViewController_iPad_Landscape.xib b/DUREX Vendor Control/Base.lproj/DateRangePickerViewController_iPad_Landscape.xib deleted file mode 100644 index 8fe159d..0000000 --- a/DUREX Vendor Control/Base.lproj/DateRangePickerViewController_iPad_Landscape.xib +++ /dev/null @@ -1,169 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/EMConnectingView_Landscape.xib b/DUREX Vendor Control/Base.lproj/EMConnectingView_Landscape.xib deleted file mode 100644 index a2ad04e..0000000 --- a/DUREX Vendor Control/Base.lproj/EMConnectingView_Landscape.xib +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/EMConnectingView_iPad.xib b/DUREX Vendor Control/Base.lproj/EMConnectingView_iPad.xib deleted file mode 100644 index 24ff55d..0000000 --- a/DUREX Vendor Control/Base.lproj/EMConnectingView_iPad.xib +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/EMConnectingView_iPad_Landscape.xib b/DUREX Vendor Control/Base.lproj/EMConnectingView_iPad_Landscape.xib deleted file mode 100644 index d94f2db..0000000 --- a/DUREX Vendor Control/Base.lproj/EMConnectingView_iPad_Landscape.xib +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/Localizable.strings b/DUREX Vendor Control/Base.lproj/Localizable.strings deleted file mode 100644 index 33a1df1..0000000 --- a/DUREX Vendor Control/Base.lproj/Localizable.strings +++ /dev/null @@ -1,116 +0,0 @@ -/* - Localizable.strings - DUREX test - - Created by Imanol Barba on 8/11/14. - Copyright (c) 2014 Emmoco. All rights reserved. -*/ - -"PIECE OF CRAP 2000 PRO ULTRA" = "PIECE OF CRAP 2000 PRO ULTRA"; -"FUCKING ONLINE" = "FUCKING ONLINE"; -"Maintenance" = "Maintenance"; -"Basic Configuration" = "Basic Configuration"; -"Sending a Report" = "Sending a Report"; -"Sensors" = "Sensors"; -"Commands" = "Commands"; -"Channels Present" = "Channels Present"; -"Channel 1" = "Channel 1"; -"Channel 2" = "Channel 2"; -"Channel 3" = "Channel 3"; -"Channel 4" = "Channel 4"; -"Channel 5" = "Channel 5"; -"Channel 6" = "Channel 6"; -"Channel 7" = "Channel 7"; -"Channel 8" = "Channel 8"; -"Channel 9" = "Channel 9"; -"Channel 10" = "Channel 10"; -"Channel 11" = "Channel 11"; -"Channel 12" = "Channel 12"; -"Channel 13" = "Channel 13"; -"Channel 14" = "Channel 14"; -"Channel 15" = "Channel 15"; -"Channel 16" = "Channel 16"; -"Product Present in Channel" = "Product Present in Channel"; -"Channel Engine Status" = "Channel Engine Status"; -"Door Sensor" = "Door Sensor"; -"Coil Sensor" = "Coil Sensor"; -"OPEN" = "OPEN"; -"CLOSED" = "CLOSED"; -"Money Collected" = "Money Collected"; -"Money Returned" = "Money Returned"; -"Products Sold" = "Products Sold"; -"Product 1" = "Product 1"; -"Product 2" = "Product 2"; -"Product 3" = "Product 3"; -"Product 4" = "Product 4"; -"Product 5" = "Product 5"; -"Product 6" = "Product 6"; -"Product 7" = "Product 7"; -"Product 8" = "Product 8"; -"Product 9" = "Product 9"; -"Product 10" = "Product 10"; -"Product 11" = "Product 11"; -"Product 12" = "Product 12"; -"Product 13" = "Product 13"; -"Product 14" = "Product 14"; -"Product 15" = "Product 15"; -"Product 16" = "Product 16"; -"Change Available" = "Change Available"; -"Sales log" = "Sales log"; -"Incident report" = "Incident report"; -"Send report" = "Send report"; -"Communication error" = "Communication error"; -"Error while trying to connect to the device" = "Error while trying to connect to the device"; -"Signal Strength: %0.0f" = "Signal Strength: %0.0f"; -"Searching for devices..." = "Searching for devices..."; -"Connection Failed" = "Connection Failed"; -"An error occurred while trying to connect to the selected device" = "An error occurred while trying to connect to the selected device"; -"Close" = "Close"; -"20€ Notes" = "20€ Notes"; -"10€ Notes" = "10€ Notes"; -"5€ Notes" = "5€ Notes"; -"2€ Coins" = "2€ Coins"; -"1€ Coins" = "1€ Coins"; -"50c Coins" = "50c Coins"; -"Channel" = "Channel"; -"Product Code" = "Product Code"; -"Product Price" = "Product Price"; -"Discounted Price" = "Discounted Price"; -"1€ Change" = "1€ Change"; -"50c Change" = "50c Change"; -"Money Paid" = "Money Paid"; -"Update Date & Time" = "Update Date & Time"; -"Update product price" = "Update product price"; -"Update product name" = "Update product name"; -"Sale on" = "Sale on"; -"Report sent successfully" = "Report sent successfully"; -"Success!" = "Success!"; -"Connection to server failed" = "Connection to server failed"; -"Error" = "Error"; -"Product" = "Product"; -"Entered price has an invalid format" = "Entered price has an invalid format"; -"Entered product code has an invalid format" = "Entered product code has an invalid format"; -"Entered channel has an invalid format" = "Entered channel has an invalid format"; -"Missing channel" = "Missing channel"; -"Missing product code" = "Missing product code"; -"Time and Date changed successfully" = "Time and Date changed successfully"; -"Time and Date change returned error" = "Time and Date change returned error"; -"Product price changed successfully" = "Product price changed successfully"; -"Product price change returned error" = "Product price change returned error"; -"Product name changed successfully" = "Product name changed successfully"; -"Product name change returned error" = "Product name change returned error"; -"Error occurred while reading answer from device" = "Error occurred while reading answer from device"; -"Error occurred while sending command to device" = "Error occurred while sending command to device"; -"Connection lost" = "Connection lost"; -"Device answer timeout occurred" = "Device answer timeout occurred"; -"Incident log" = "Incident log"; -"Error Code" = "Error Code"; -"Error Value" = "Error Value"; -"Error obtaining data from URL" = "Error obtaining data from URL"; -"Missing fields version and/or commands in JSON file" = "Missing fields version and/or commands in JSON file"; -"Version mismatch" = "Version mismatch"; -"Do you want to run batch command file" = "Do you want to run batch command file"; -"WARNING: Machine ID does not match currently connected machine. Do you wish to continue?" = "WARNING: Machine ID does not match currently connected machine. Do you wish to continue?"; -"Confirmation" = "Confirmation"; -"OK" = "OK"; -"Cancel" = "Cancel"; \ No newline at end of file diff --git a/DUREX Vendor Control/Base.lproj/NameChangerViewController.xib b/DUREX Vendor Control/Base.lproj/NameChangerViewController.xib deleted file mode 100644 index b0f47ba..0000000 --- a/DUREX Vendor Control/Base.lproj/NameChangerViewController.xib +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/NameChangerViewController_Landscape.xib b/DUREX Vendor Control/Base.lproj/NameChangerViewController_Landscape.xib deleted file mode 100644 index ef8a3fa..0000000 --- a/DUREX Vendor Control/Base.lproj/NameChangerViewController_Landscape.xib +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/NameChangerViewController_iPad.xib b/DUREX Vendor Control/Base.lproj/NameChangerViewController_iPad.xib deleted file mode 100644 index e37d32d..0000000 --- a/DUREX Vendor Control/Base.lproj/NameChangerViewController_iPad.xib +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/NameChangerViewController_iPad_Landscape.xib b/DUREX Vendor Control/Base.lproj/NameChangerViewController_iPad_Landscape.xib deleted file mode 100644 index 4180225..0000000 --- a/DUREX Vendor Control/Base.lproj/NameChangerViewController_iPad_Landscape.xib +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/PriceChangerViewController.xib b/DUREX Vendor Control/Base.lproj/PriceChangerViewController.xib deleted file mode 100644 index 9aabf3a..0000000 --- a/DUREX Vendor Control/Base.lproj/PriceChangerViewController.xib +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/PriceChangerViewController_Landscape.xib b/DUREX Vendor Control/Base.lproj/PriceChangerViewController_Landscape.xib deleted file mode 100644 index d7838d2..0000000 --- a/DUREX Vendor Control/Base.lproj/PriceChangerViewController_Landscape.xib +++ /dev/null @@ -1,113 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/PriceChangerViewController_iPad.xib b/DUREX Vendor Control/Base.lproj/PriceChangerViewController_iPad.xib deleted file mode 100644 index 8465b16..0000000 --- a/DUREX Vendor Control/Base.lproj/PriceChangerViewController_iPad.xib +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/PriceChangerViewController_iPad_Landscape.xib b/DUREX Vendor Control/Base.lproj/PriceChangerViewController_iPad_Landscape.xib deleted file mode 100644 index 3f8d17e..0000000 --- a/DUREX Vendor Control/Base.lproj/PriceChangerViewController_iPad_Landscape.xib +++ /dev/null @@ -1,112 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/Base.lproj/back_arrow.png b/DUREX Vendor Control/Base.lproj/back_arrow.png deleted file mode 100644 index 02b7278..0000000 Binary files a/DUREX Vendor Control/Base.lproj/back_arrow.png and /dev/null differ diff --git a/DUREX Vendor Control/ChildViewController.h b/DUREX Vendor Control/ChildViewController.h deleted file mode 100644 index 54b47b3..0000000 --- a/DUREX Vendor Control/ChildViewController.h +++ /dev/null @@ -1,24 +0,0 @@ -// -// ChildViewController.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 10/10/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -@class ChildViewController; - -#import - -@protocol ChildViewControllerDelegate -- (void)removeChildFromParentController:(ChildViewController*)controller; - -@end - -@interface ChildViewController : UIViewController - -- (void) parentViewControllerDidRotateWithOrientation: (UIDeviceOrientation) orientation; -- (void) parentViewControllerWillRotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration: (NSTimeInterval)duration; - -@property (nonatomic, strong) id childDelegate; -@end diff --git a/DUREX Vendor Control/ChildViewController.m b/DUREX Vendor Control/ChildViewController.m deleted file mode 100644 index 8cd3cb8..0000000 --- a/DUREX Vendor Control/ChildViewController.m +++ /dev/null @@ -1,59 +0,0 @@ -// -// ChildViewController.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 10/10/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "ChildViewController.h" - -@interface ChildViewController () - -@end - -@implementation ChildViewController - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - // Custom initialization - } - return self; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - // Do any additional setup after loading the view. -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -/* -#pragma mark - Navigation - -// In a storyboard-based application, you will often want to do a little preparation before navigation -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender -{ - // Get the new view controller using [segue destinationViewController]. - // Pass the selected object to the new view controller. -} -*/ - -- (void) parentViewControllerDidRotateWithOrientation:(UIDeviceOrientation)orientation -{ - //STUB -} - -- (void) parentViewControllerWillRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration -{ - //STUB -} - -@end diff --git a/DUREX Vendor Control/CommunicationProtocol.h b/DUREX Vendor Control/CommunicationProtocol.h deleted file mode 100644 index f69bb85..0000000 --- a/DUREX Vendor Control/CommunicationProtocol.h +++ /dev/null @@ -1,49 +0,0 @@ -// -// CommunicationProtocol.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 5/23/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -@class CommunicationProtocol; - -#import -#import "EMFramework.h" - -#define SLEEP_TIME ((NSTimeInterval)1) -#define MAX_STRING_LENGTH ((int)200) -#define MAX_RETRIES ((int)3) -#define MAX_PRODUCT_NAME_LENGTH ((int)64) -#define MAX_CHANNELS ((int)16) -#define MONEY_IN_NUM_UNITS ((int)6) -#define MONEY_OUT_NUM_UNITS ((int)3) -#define CHANGE_NUM_UNITS ((int)2) -#define MAX_PRODUCTS ((int)16) -#define SALE_STRING_LENGTH ((int)36) -#define INCIDENT_STRING_LENGTH ((int)20) -#define REPORT_SERVER_URL @"http://seneca.upc.es:8090/machine" - -@protocol CommunicationProtocolDelegate -- (void)processMessage:(CommunicationProtocol*)protocol didFinishEnteringItem:(NSString*) response; -- (void) reportProtocolError: (CommunicationProtocol*)protocol didFinishEnteringItem:(NSString*) error; -@end - -@interface CommunicationProtocol : NSObject - -@property (nonatomic, strong) id delegate; - --(void) writeMessage: (NSString*) message; --(void) readMessage; --(void) establishConnection; --(void) disconnect; --(void) updateTime: (NSDateComponents*) date; --(void) updatePrice: (uint8_t) channel : (uint8_t) product : (uint8_t) eur : (uint8_t) cents; --(void) updateProductName: (uint8_t) channel : (uint8_t) product : (NSString*) name; --(void) readSensorData; --(void) readSalesLog: (NSDateComponents*) start : (NSDateComponents*) end; --(void) readIncidentLog: (NSDateComponents*) start : (NSDateComponents*) end; -//-(void) testA9 : (NSMutableString*) testString; -+(id) sharedProtocol; - -@end diff --git a/DUREX Vendor Control/CommunicationProtocol.m b/DUREX Vendor Control/CommunicationProtocol.m deleted file mode 100644 index 47fa530..0000000 --- a/DUREX Vendor Control/CommunicationProtocol.m +++ /dev/null @@ -1,366 +0,0 @@ -// -// CommunicationProtocol.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 5/23/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "CommunicationProtocol.h" - -@interface CommunicationProtocol () - -@property Boolean messageAvailableMobile; -@property Boolean messageAvailableDevice; -@property NSMutableString *message; -@property NSUInteger currentIndex; -@property NSUInteger remainingBytes; -@property NSInteger numPackets; - -@end - -@implementation CommunicationProtocol - -+ (id)sharedProtocol -{ - static CommunicationProtocol *shared = nil; - static dispatch_once_t onceToken; - dispatch_once(&onceToken, ^{ - shared = [[self alloc] init]; - [shared setMessageAvailableDevice:FALSE]; - [shared setMessageAvailableMobile:FALSE]; - }); - return shared; -} - --(void) readMessage -{ - [self setMessage:[NSMutableString stringWithFormat:@""]]; - self.numPackets = -1; - [self waitForMessage: 0]; -} - -- (void) readNextFragment -{ - __block NSUInteger numBytes; - [[EMConnectionManager sharedManager] readResource:@"numBytes" onSuccess:^(id readValue) - { - numBytes = [readValue unsignedCharValue]; - NSLog(@"[CommunicationProtocol.m]: numBytes read: %d",numBytes); - [[EMConnectionManager sharedManager] readResource:@"data" onSuccess:^(id readValue) - { - NSString *readData = [readValue substringToIndex:numBytes]; - if([readValue length] < numBytes) - { - NSLog(@"[CommunicationProtocol.m]: WARNING: Device issued wrong numBytes, possible truncated message."); - } - [self.message appendString:readData]; - NSLog(@"[CommunicationProtocol.m]: data read: %@",readData); - [[EMConnectionManager sharedManager] writeValue:@"0" toResource:@"messageAvailableDevice" onSuccess:^ - { - NSLog(@"[CommunicationProtocol.m]: messageAvailableDevice set to FALSE"); - NSLog(@"[CommunicationProtocol.m]: packet read"); - self.numPackets--; - if(self.numPackets) - { - [self waitForMessage: 0]; - } - else - { - [[self delegate] processMessage:self didFinishEnteringItem:self.message]; - } - }onFail:^(NSError *error) - { - NSLog(@"[CommunicationProtocol.m]: On setMessageAvailableDevice to FALSE: %@",error); - [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while reading answer from device",nil),[error localizedDescription]]]; - }]; - }onFail:^(NSError *error) - { - NSLog(@"[CommunicationProtocol.m]: On readData: %@",error); - [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while reading answer from device",nil),[error localizedDescription]]]; - }]; - }onFail:^(NSError *error) - { - NSLog(@"[CommunicationProtocol.m]: On readNumBytes: %@",error); - [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while reading answer from device",nil),[error localizedDescription]]]; - }]; -} - -- (void) readNumPackets -{ - [[EMConnectionManager sharedManager] readResource:@"numPackets" onSuccess:^(id readValue) - { - self.numPackets = [readValue unsignedCharValue]; - NSLog(@"[CommunicationProtocol.m]: numPackets read: %d",self.numPackets); - [self readNextFragment]; - }onFail:^(NSError *error) - { - NSLog(@"[CommunicationProtocol.m]: On readNumPackets: %@",error); - [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while reading answer from device",nil),[error localizedDescription]]]; - }]; -} - -- (void) waitForMessage: (uint8_t) retries -{ - if(retries == MAX_RETRIES) - { - NSLog(@"[CommunicationProtocol.m]: Device not ready."); - NSLog(@"[CommunicationProtocol.m]: Timeout while expecting message"); - } - else - { - NSLog(@"[CommunicationProtocol.m]: Reading messageAvailable from device"); - [[EMConnectionManager sharedManager] readResource:@"messageAvailableDevice" onSuccess:^(id readValue) - { - [self setMessageAvailableDevice:[readValue intValue]]; - if(![self messageAvailableDevice]) - { - NSLog(@"[CommunicationProtocol.m]: Device not ready. Retrying..."); - [NSThread sleepForTimeInterval:SLEEP_TIME]; - [self waitForMessage:retries + 1]; - } - else - { - if(self.numPackets == -1) - { - [self readNumPackets]; - } - else - { - [self readNextFragment]; - } - } - }onFail:^(NSError *error) - { - NSLog(@"[CommunicationProtocol.m]: On waitForMessage: %@",error); - [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while reading answer from device",nil),[error localizedDescription]]]; - }]; - } -} - --(void) writeMessage: (NSString*) message -{ - NSLog(@"[CommunicationProtocol.m]: Sending message: %@",message); - [self setMessage:[NSMutableString stringWithString:message]]; - [self setRemainingBytes:[message length]]; - [self setCurrentIndex:0]; - [[EMConnectionManager sharedManager] writeValue:[NSNumber numberWithUnsignedChar:(unsigned char)([message length]/MAX_STRING_LENGTH)+1] toResource:@"numPackets" onSuccess:^ - { - NSLog(@"[CommunicationProtocol.m]: numPackets set to %u",([message length]/MAX_STRING_LENGTH) + 1); - [self sendNextFragment]; - }onFail:^(NSError *error) - { - NSLog(@"[CommunicationProtocol.m]: On setNumPackets: %@",error); - [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while sending command to device",nil),[error localizedDescription]]]; - }]; -} - -- (void) sendNextFragment -{ - if(self.remainingBytes) - { - NSLog(@"[CommunicationProtocol.m]: Sending next fragment"); - NSUInteger numBytes; - if(self.remainingBytes > MAX_STRING_LENGTH) - { - numBytes = MAX_STRING_LENGTH; - self.remainingBytes -= MAX_STRING_LENGTH; - } - else - { - numBytes = self.remainingBytes; - self.remainingBytes = 0; - } - [[EMConnectionManager sharedManager] writeValue:[NSNumber numberWithUnsignedChar:(unsigned char)numBytes] toResource:@"numBytes" onSuccess:^ - { - NSLog(@"[CommunicationProtocol.m]: numBytes set to %d", numBytes); - NSString *data = [self.message substringWithRange:NSMakeRange(self.currentIndex, numBytes)]; - self.currentIndex += numBytes; - [[EMConnectionManager sharedManager] writeValue:data toResource:@"data" onSuccess:^ - { - NSLog(@"[CommunicationProtocol.m]: data set to: %@",data); - [[EMConnectionManager sharedManager] writeValue:@"1" toResource:@"messageAvailableMobile" onSuccess:^ - { - NSLog(@"[CommunicationProtocol.m]: messageAvailableMobile set to TRUE"); - NSLog(@"[CommunicationProtocol.m]: Packet written"); - [self readACK: 0]; - }onFail:^(NSError *error) - { - NSLog(@"[CommunicationProtocol.m]: On setMessageAvailable to TRUE: %@",error); - [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while sending command to device",nil),[error localizedDescription]]]; - }]; - }onFail:^(NSError *error) - { - NSLog(@"[CommunicationProtocol.m]: On setData: %@",error); - [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while sending command to device",nil),[error localizedDescription]]]; - }]; - }onFail:^(NSError *error) - { - NSLog(@"[CommunicationProtocol.m]: On setNumBytes: %@",error); - [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while sending command to device",nil),[error localizedDescription]]]; - }]; - } - else - { - NSLog(@"[CommunicationProtocol.m]: Finished sending message"); - [self readMessage]; - } -} - -- (void) readACK: (uint8_t) retries -{ - if(retries == MAX_RETRIES) - { - NSLog(@"[CommunicationProtocol.m]: Device not ready."); - NSLog(@"[CommunicationProtocol.m]: Timeout while expecting ACK"); - } - else - { - NSLog(@"[CommunicationProtocol.m]: Reading ACK from device"); - [[EMConnectionManager sharedManager] readResource:@"messageAvailableMobile" onSuccess:^(id readValue) - { - [self setMessageAvailableMobile:[readValue intValue]]; - if([self messageAvailableMobile]) - { - NSLog(@"[CommunicationProtocol.m]: Device not ready. Retrying..."); - [NSThread sleepForTimeInterval:SLEEP_TIME]; - [self readACK:retries + 1]; - } - else - { - [self sendNextFragment]; - } - }onFail:^(NSError *error) - { - NSLog(@"[CommunicationProtocol.m]: On readACK: %@",error); - [[self delegate] reportProtocolError:self didFinishEnteringItem:[NSString stringWithFormat:@"%@: %@",NSLocalizedString(@"Error occurred while sending command to device",nil),[error localizedDescription]]]; - }]; - } -} - --(void) establishConnection -{ - NSLog(@"[CommunicationProtocol.m]: Establishing connection..."); - [self writeMessage:@"Hello"]; - NSLog(@"[CommunicationProtocol.m]: Hello sent"); -} - --(void) disconnect -{ - NSLog(@"[CommunicationProtocol.m]: Terminating connection..."); - [self writeMessage:@"Bye"]; - NSLog(@"[CommunicationProtocol.m]: Bye sent"); -} - --(void) updateTime: (NSDateComponents*) date -{ - NSMutableString *command = [NSMutableString stringWithFormat: @"A5"]; - NSInteger year = [date year]; - year = year - (year/100)*100; - [command appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; - [command appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld%02ld",(long)[date month],(long)[date day],(long)[date hour],(long)[date minute],(long)[date second]]]; - [self writeMessage:command]; -} - --(void) updatePrice: (uint8_t) channel : (uint8_t) product : (uint8_t) eur : (uint8_t) cents -{ - NSMutableString *command = [NSMutableString stringWithFormat: @"A6%01d%01d%02d%02d",channel,product,eur,cents]; - [self writeMessage:command]; -} - --(void) updateProductName: (uint8_t) channel : (uint8_t) product : (NSString*) name -{ - if([name length] > MAX_PRODUCT_NAME_LENGTH) - { - name = [name substringToIndex:MAX_PRODUCT_NAME_LENGTH-1]; - } - NSMutableString *command = [NSMutableString stringWithFormat: @"A7%01d%01d%@",channel,product,name]; - [self writeMessage:command]; -} - --(void) readSensorData -{ - NSString *command = @"A4"; - [self writeMessage:command]; - - /*NSMutableString *answer = [[NSMutableString alloc]initWithString:@"P4000150001500015000000010010030050020000010020101010100000000000000000000000000"];*/ -} - --(void) readSalesLog : (NSDateComponents*) start : (NSDateComponents*) end -{ - NSMutableString *startDate = [NSMutableString stringWithString:@""]; - NSMutableString *endDate = [NSMutableString stringWithString:@""]; - NSMutableString *command = [NSMutableString stringWithString:@"A2"]; - if(start == nil) - { - [startDate setString:@""]; - } - else - { - NSInteger year = [start year]; - year = year - (year/100)*100; - [startDate appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; - [startDate appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld",(long)[start month],(long)[start day],(long)[start hour],(long)[start minute]]]; - } - if(end == nil) - { - [endDate setString:@""]; - } - else - { - NSInteger year = [end year]; - year = year - (year/100)*100; - [endDate appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; - [endDate appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld",(long)[end month],(long)[end day],(long)[end hour],(long)[end minute]]]; - } - [command appendString:startDate]; - [command appendString:@"-"]; - [command appendString:endDate]; - [self writeMessage:command]; - - //NSMutableString *answer = [[NSMutableString alloc]initWithString:@"P21408161036000001000000110450000001P21409012216000100000000220900000100P21409032307000000010502330800000000P21409070540000000020000440350000001P2P2"]; -} - --(void) readIncidentLog:(NSDateComponents *)start :(NSDateComponents *)end -{ - NSMutableString *startDate = [NSMutableString stringWithString:@""]; - NSMutableString *endDate = [NSMutableString stringWithString:@""]; - NSMutableString *command = [NSMutableString stringWithString:@"A3"]; - if(start == nil) - { - [startDate setString:@""]; - } - else - { - NSInteger year = [start year]; - year = year - (year/100)*100; - [startDate appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; - [startDate appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld",(long)[start month],(long)[start day],(long)[start hour],(long)[start minute]]]; - } - if(end == nil) - { - [endDate setString:@""]; - } - else - { - NSInteger year = [end year]; - year = year - (year/100)*100; - [endDate appendString:[NSString stringWithFormat:@"%02ld",(long)year]]; - [endDate appendString:[NSString stringWithFormat:@"%02ld%02ld%02ld%02ld",(long)[end month],(long)[end day],(long)[end hour],(long)[end minute]]]; - } - [command appendString:startDate]; - [command appendString:@"-"]; - [command appendString:endDate]; - [self writeMessage:command]; - - //@"P3140816103600012222P3140910093600023333P3140921103600034444P3140927103600045555P3P3" -} - -/*-(void) testA9:(NSMutableString *)testString -{ - NSMutableString *messageA9 = [[NSMutableString alloc] initWithString:@"A9"]; - [messageA9 appendString:testString]; - [self writeMessage:messageA9]; -}*/ - -@end diff --git a/DUREX Vendor Control/DatePickerViewController.h b/DUREX Vendor Control/DatePickerViewController.h deleted file mode 100644 index feaefe6..0000000 --- a/DUREX Vendor Control/DatePickerViewController.h +++ /dev/null @@ -1,29 +0,0 @@ -// -// DatePickerViewController.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 03/09/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -@class DatePickerViewController; - -#import -#import -#import "BTAppDelegate.h" - -@protocol DatePickerViewControllerDelegate -- (void)passDateViewController:(DatePickerViewController*)controller didFinishEnteringItem:(NSDate *)date; - -@end - -@interface DatePickerViewController : UIViewController - -@property (strong, nonatomic) IBOutlet UIView *datePickerView; -@property (strong, nonatomic) IBOutlet UIDatePicker *datePicker; -@property (nonatomic, strong) id delegate; - -- (void)showInView:(UIView *)aView animated:(BOOL)animated; -- (IBAction)closePopup:(id)sender; - -@end diff --git a/DUREX Vendor Control/DatePickerViewController.m b/DUREX Vendor Control/DatePickerViewController.m deleted file mode 100644 index 2fcc189..0000000 --- a/DUREX Vendor Control/DatePickerViewController.m +++ /dev/null @@ -1,83 +0,0 @@ -// -// DatePickerViewController.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 03/09/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "DatePickerViewController.h" - -@interface DatePickerViewController () - -@end - -@implementation DatePickerViewController - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - // Custom initialization - } - return self; -} - -- (void)viewDidLoad -{ - self.view.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:.7]; - self.datePickerView.layer.cornerRadius = 5; - self.datePickerView.layer.shadowOpacity = 0.8; - self.datePickerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); - - //Fix transparency glitch on iPad - [self.datePicker setDate:[NSDate dateWithTimeIntervalSince1970:NSTimeIntervalSince1970]]; - [self.datePicker setDate:[NSDate date]]; - - [super viewDidLoad]; - // Do any additional setup after loading the view from its nib. -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -- (void)showAnimate -{ - self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); - self.view.alpha = 0; - [UIView animateWithDuration:.25 animations:^{ - self.view.alpha = 1; - self.view.transform = CGAffineTransformMakeScale(1, 1); - }]; -} - -- (void)removeAnimate -{ - [UIView animateWithDuration:.25 animations:^{ - self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); - self.view.alpha = 0.0; - } completion:^(BOOL finished) { - if (finished) { - [self.view removeFromSuperview]; - } - }]; -} - -- (IBAction)closePopup:(id)sender -{ - [self.delegate passDateViewController:self didFinishEnteringItem:[[self datePicker] date]]; - [self removeAnimate]; -} - -- (void)showInView:(UIView *)aView animated:(BOOL)animated -{ - [aView addSubview:self.view]; - if (animated) { - [self showAnimate]; - } -} - -@end diff --git a/DUREX Vendor Control/DateRangePickerViewController.h b/DUREX Vendor Control/DateRangePickerViewController.h deleted file mode 100644 index 909c2be..0000000 --- a/DUREX Vendor Control/DateRangePickerViewController.h +++ /dev/null @@ -1,47 +0,0 @@ -// -// DateRangePickerViewController.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 9/13/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -// -// DatePickerViewController.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 03/09/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -@class DateRangePickerViewController; - -#import -#import -#import "BTAppDelegate.h" -#import "ChildViewController.h" - -@protocol DateRangePickerViewControllerDelegate -- (void)passDateRangeViewController:(DateRangePickerViewController*)controller didFinishEnteringItem:(NSDate*) from : (NSDate*) to; - -@end - -@interface DateRangePickerViewController : ChildViewController - -@property (strong, nonatomic) IBOutlet UIView *dateRangePickerView; -@property (strong, nonatomic) IBOutlet UIDatePicker *fromDate; -@property (strong, nonatomic) IBOutlet UIDatePicker *toDate; -@property (strong, nonatomic) IBOutlet UISwitch *fromToggler; -@property (strong, nonatomic) IBOutlet UISwitch *toToggler; -@property (strong, nonatomic) IBOutlet UIButton *doneButton; -@property (strong, nonatomic) IBOutlet UILabel *toLabel; -@property (strong, nonatomic) IBOutlet UIScrollView *scrollView; -@property (strong, nonatomic) IBOutlet UIView *scrolledView; -@property (nonatomic, strong) id delegate; - -- (void)showInView:(UIView *)aView animated:(BOOL)animated; -- (IBAction)toggleFromDate:(id)sender; -- (IBAction)toggleToDate:(id)sender; -- (IBAction)closePopup:(id)sender; - -@end diff --git a/DUREX Vendor Control/DateRangePickerViewController.m b/DUREX Vendor Control/DateRangePickerViewController.m deleted file mode 100644 index 83132b6..0000000 --- a/DUREX Vendor Control/DateRangePickerViewController.m +++ /dev/null @@ -1,240 +0,0 @@ -// -// DateRangePickerViewController.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 9/13/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "DateRangePickerViewController.h" - -@interface DateRangePickerViewController () - -@property uint8_t isExtended; -@property NSUInteger currentHeight; - -@end - -@implementation DateRangePickerViewController - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - - } - return self; -} - -- (void)viewDidLoad -{ - self.view.backgroundColor=[[UIColor blackColor] colorWithAlphaComponent:.7]; - self.dateRangePickerView.layer.cornerRadius = 5; - self.dateRangePickerView.layer.shadowOpacity = 0.8; - self.dateRangePickerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); - - //Fix transparency glitch on iPad - [self.fromDate setDate:[NSDate dateWithTimeIntervalSince1970:NSTimeIntervalSince1970]]; - [self.fromDate setDate:[NSDate date]]; - [self.toDate setDate:[NSDate dateWithTimeIntervalSince1970:NSTimeIntervalSince1970]]; - [self.toDate setDate:[NSDate date]]; - - [self setIsExtended:0]; - [self setCurrentHeight:[self scrollView].frame.size.height]; - - [super viewDidLoad]; - // Do any additional setup after loading the view from its nib. -} - -- (void) viewDidAppear:(BOOL)animated -{ - [super viewDidAppear:animated]; -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -- (void) parentViewControllerDidRotateWithOrientation: (UIDeviceOrientation) orientation -{ - NSLog(@"[DateRangePickerViewController.m]: Screen did rotate"); - [self resizeViewHeight:self.scrollView :self.currentHeight :FALSE :FALSE]; - if([self.fromToggler isOn]) - { - NSUInteger height = [self fromDate].frame.size.height; - self.currentHeight -= (height + 20); - [self toggleFromDate:self]; - } - if([self.toToggler isOn]) - { - NSUInteger height = [self toDate].frame.size.height; - self.currentHeight -= (height + 20); - [self toggleToDate:self]; - } -} - -- (void) parentViewControllerWillRotateToInterfaceOrientation: (UIInterfaceOrientation)toInterfaceOrientation duration: (NSTimeInterval)duration -{ - NSLog(@"[DateRangePickerViewController.m]: Screen will rotate"); -} - -- (void) expandScrollView -{ - -} - -- (void)showAnimate -{ - self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); - self.view.alpha = 0; - [UIView animateWithDuration:.25 animations:^{ - self.view.alpha = 1; - self.view.transform = CGAffineTransformMakeScale(1, 1); - }]; -} - -- (void)removeAnimate -{ - [UIView animateWithDuration:.25 animations:^{ - self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); - self.view.alpha = 0.0; - } completion:^(BOOL finished) { - if (finished) { - [self.view removeFromSuperview]; - } - }]; -} - -- (void) moveUp: (UIView*) view : (NSUInteger) height -{ - CGPoint position = view.center; - position.y -= height; - [UIView beginAnimations:@"MoveUp" context:NULL]; - [UIView setAnimationDuration:0.5]; - view.center = position; - [UIView commitAnimations]; -} - -- (void) moveDown: (UIView*) view : (NSUInteger) height -{ - CGPoint position = view.center; - position.y += height; - [UIView beginAnimations:@"MoveDown" context:NULL]; - [UIView setAnimationDuration:0.5]; - view.center = position; - [UIView commitAnimations]; -} - -- (void) resizeViewHeight : (UIView*) view : (NSInteger) height : (Boolean) ignoreHeight : (Boolean) realResize -{ - NSLog(@"[DateRangePickerViewController.m]: currentHeight is %lu", (unsigned long)self.currentHeight); - CGRect screenRect = [[UIScreen mainScreen] bounds]; - CGFloat screenHeight; - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - screenHeight = screenRect.size.width; - } - else - { - screenHeight = screenRect.size.height; - } - if((height > (screenHeight-40)) && !ignoreHeight) - { - NSLog(@"[DateRangePickerViewController.m]: Screen height limit reached"); - height = screenHeight-40; - } - [UIView beginAnimations:nil context:NULL]; - [UIView setAnimationDuration:0.5]; - view.frame = CGRectMake(view.frame.origin.x, view.frame.origin.y, view.frame.size.width,height); - [UIView commitAnimations]; - if(realResize) - { - if(height < 0) - { - [self setIsExtended: [self isExtended] - 1]; - } - else - { - [self setIsExtended: [self isExtended] + 1]; - } - } - [self.scrollView setContentSize:CGSizeMake([self scrolledView].frame.size.width,[self currentHeight])]; - [self.scrollView flashScrollIndicators]; -} - -- (IBAction)toggleFromDate:(id)sender -{ - NSUInteger height = [self fromDate].frame.size.height; - if([[self fromToggler] isOn]) - { - [[self fromDate] setEnabled:TRUE]; - [[self fromDate] setHidden:FALSE]; - [self moveDown:[self toToggler] :height]; - [self moveDown:[self toDate] :height]; - [self moveDown:[self doneButton] :height]; - [self moveDown:[self toLabel] :height]; - [self setCurrentHeight:[self currentHeight] + height + 20]; - [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE]; - } - else - { - [[self fromDate] setEnabled:FALSE]; - [[self fromDate] setHidden:TRUE]; - [self moveUp:[self toToggler] :height]; - [self moveUp:[self toDate] :height]; - [self moveUp:[self doneButton] :height]; - [self moveUp:[self toLabel] :height]; - [self setCurrentHeight:[self currentHeight] - height - 20]; - [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE]; - } -} -- (IBAction)toggleToDate:(id)sender -{ - NSUInteger height = [self toDate].frame.size.height; - if([[self toToggler] isOn]) - { - [[self toDate] setEnabled:TRUE]; - [[self toDate] setHidden:FALSE]; - [self moveDown:[self doneButton] :height]; - [self setCurrentHeight:[self currentHeight] + height + 20]; - [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE]; - } - else - { - [[self toDate] setEnabled:FALSE]; - [[self toDate] setHidden:TRUE]; - [self moveUp:[self doneButton] :height]; - [self setCurrentHeight:[self currentHeight] - height - 20]; - [self resizeViewHeight : [self scrollView] : [self currentHeight] : FALSE : TRUE]; - } -} - -- (IBAction)closePopup:(id)sender -{ - NSDate *from = nil; - NSDate *to = nil; - if([[self fromToggler] isOn]) - { - from = [[self fromDate] date]; - } - if([[self toToggler] isOn]) - { - to = [[self toDate] date]; - } - [self.delegate passDateRangeViewController:self didFinishEnteringItem:from : to]; - [self.childDelegate removeChildFromParentController:self]; - [self removeAnimate]; -} - -- (void)showInView:(UIView *)aView animated:(BOOL)animated -{ - [aView addSubview:self.view]; - if (animated) - { - [self showAnimate]; - } -} - -@end \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Assets/system.json b/DUREX Vendor Control/EmmocoMobileFramework/Assets/system.json deleted file mode 100644 index 7a27c17..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Assets/system.json +++ /dev/null @@ -1,196 +0,0 @@ -{ - "resources": { - "$activeParameterGroup": { - "id": -10, - "align": 1, - "pack": 1, - "attributes": {"readwrite": true}, - "type": "E:system@emmoco.com.System/ParameterGroup", - "access": "rw", - "size": 1 - }, - "$schemaHash": { - "dim": 20, - "id": -6, - "align": 1, - "attributes": {"readonly": true}, - "type": "A20:u1", - "access": "r", - "size": 20 - }, - "$eapProtocolLevel": { - "id": -3, - "align": 2, - "attributes": {"readonly": true}, - "type": "u2", - "access": "r", - "size": 2 - }, - "$mcmProtocolLevel": { - "id": -2, - "align": 2, - "attributes": {"readonly": true}, - "type": "u2", - "access": "r", - "size": 2 - }, - "$mobileRssi": { - "id": -8, - "align": 1, - "attributes": {"readonly": true}, - "type": "i1", - "access": "r", - "size": 1 - }, - "$mcmDisconnect": { - "id": -9, - "align": 1, - "attributes": {"writeonly": true}, - "type": "u1", - "access": "w", - "size": 1 - }, - "$eapBuildDate": { - "dim": 8, - "id": -4, - "align": 1, - "attributes": {"readonly": true}, - "type": "A8:u1", - "access": "r", - "size": 8 - }, - "$resourceCount": { - "id": -7, - "align": 1, - "attributes": {"readonly": true}, - "type": "S:system@emmoco.com.System/ResourceCount", - "access": "r", - "size": 2 - }, - "$fileIndexReset": { - "id": -5, - "align": 2, - "attributes": {"writeonly": true}, - "type": "i2", - "access": "w", - "size": 2 - } - }, - "resourceNamesSys": [ - "$activeParameterGroup", - "$eapBuildDate", - "$eapProtocolLevel", - "$fileIndexReset", - "$mcmDisconnect", - "$mcmProtocolLevel", - "$mobileRssi", - "$resourceCount", - "$schemaHash" - ], - "manifest": { - "protocolLevel": 13, - "hash": [ - 108, - 31, - 53, - 92, - 46, - 47, - 48, - 241, - 201, - 5, - 236, - 253, - 10, - 254, - 240, - 187 - ], - "toolVersion": "13.3.0.201307022239", - "name": "System", - "$$md5": "6c1f355c2e2f30f1c905ecfd0afef0bb", - "build": [ - 99, - 80, - 140, - 161, - 63, - 1, - 0, - 0 - ], - "date": "2013-07-02T17:41:34", - "idFormat": "BINARY4", - "maxAlign": 2, - "maxSize": 20, - "version": "13.3.0" - }, - "resourceNames": [ - "$mcmProtocolLevel", - "$eapProtocolLevel", - "$eapBuildDate", - "$fileIndexReset", - "$schemaHash", - "$resourceCount", - "$mobileRssi", - "$mcmDisconnect", - "$activeParameterGroup" - ], - "attributes": { - "description": "System resources schema", - "version": "13.3.0" - }, - "types": { - "system@emmoco.com.System/ResourceCount": { - "packed": false, - "align": 1, - "type": "S:system@emmoco.com.System/ResourceCount", - "size": 2, - "fields": [ - { - "pad": 0, - "align": 1, - "name": "app", - "type": "u1", - "size": 1 - }, - { - "pad": 0, - "align": 1, - "name": "sys", - "type": "u1", - "size": 1 - } - ] - }, - "std:i2": { - "align": 2, - "size": 2 - }, - "std:i1": { - "align": 1, - "size": 1 - }, - "std:u1": { - "align": 1, - "size": 1 - }, - "system@emmoco.com.System/ParameterGroup": { - "values": [ - "GROUP_A", - "GROUP_B" - ], - "align": 1, - "pack": 1, - "type": "E:system@emmoco.com.System/ParameterGroup", - "size": 1 - }, - "std:u2": { - "align": 2, - "size": 2 - } - }, - "resourceNamesApp": [], - "imports": {"@emmoco.com.System": true} -} \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/ArrayValue.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/ArrayValue.html deleted file mode 100644 index 875bda7..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/ArrayValue.html +++ /dev/null @@ -1,1231 +0,0 @@ - - - - - ArrayValue Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
- - - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - - - -
- -

Instance Methods

- -
- -

copyFromResource:

- - - - -
- (void)copyFromResource:(EMResourceValue *)source
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

doubleValue

- - - - -
- (double)doubleValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

enumValues

- - - - -
- (NSArray *)enumValues
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fieldNames

- - - - -
- (NSArray *)fieldNames
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileEof

- - - - -
- (BOOL)fileEof
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileFetch

- - - - -
- (void)fileFetch
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileStore

- - - - -
- (void)fileStore
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

getDataOfSize:fromBuffer:

- - - - -
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

index:

- - - - -
- (EMResourceValue *)index:(int)index
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

initWithName:type:schema:

- - - - -
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

length

- - - - -
- (long)length
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

longValue

- - - - -
- (long long)longValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

max

- - - - -
- (double)max
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

min

- - - - -
- (double)min
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

putData:

- - - - -
- (void)putData:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

reset

- - - - -
- (void)reset
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

select:

- - - - -
- (EMResourceValue *)select:(NSString *)fieldName
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setDoubleValue:

- - - - -
- (void)setDoubleValue:(double)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setLongValue:

- - - - -
- (void)setLongValue:(long long)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setStringValue:

- - - - -
- (void)setStringValue:(NSString *)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

step

- - - - -
- (double)step
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

stringValue

- - - - -
- (NSString *)stringValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType.html deleted file mode 100644 index 67de2aa..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType.html +++ /dev/null @@ -1,1030 +0,0 @@ - - - - - EMBluetoothLowEnergyConnectionType Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromNSObject
Conforms toCBCentralManagerDelegate
CBPeripheralDelegate
EMConnectionType
Declared inEMBluetoothLowEnergyConnectionType.h
EMBluetoothLowEnergyConnectionType.m
- - - - -
- -

Overview

-

EMBluethoothLowEnergyConnectionType is a concrete EMConnectionType for Bluetooth Low Energy.

- -

If you want the framework to interact with Bluetooth Low Energy devices, add an instance of this class to EMConnectionListManager via the -addConnectionTypeToUpdates: method.

-
- - - - - -
- -

Tasks

- - - -

Other Methods

- -
    -
  • - -   discoversAllEmmocoBLEDevices -

    By default, EMBluetoothLowEnergyConnectionType will ‘discover’ devices that have a schema hash matching a schema in your application bundle. -Set this flag to ‘YES’ for an instance of this class to discover all Emmoco BLE devices. -NOTE: Most applications should not have this enabled.

    -
    - property - -
  • -
- - - -

Other Methods

- - - - - -

Extension Methods

- -
    -
  • - -   connected -

    A boolean indicating whether or not there is a connection with a device.

    -
    - property - -
  • -
- -
- - - - - -
- -

Properties

- -
- -

connected

- - - -
-

A boolean indicating whether or not there is a connection with a device.

-
- - -
@property (nonatomic, getter=isConnected) BOOL connected
- - - - - - - - -
-

Discussion

-

A boolean indicating whether or not there is a connection with a device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

discoversAllEmmocoBLEDevices

- - - -
-

By default, EMBluetoothLowEnergyConnectionType will ‘discover’ devices that have a schema hash matching a schema in your application bundle. -Set this flag to ‘YES’ for an instance of this class to discover all Emmoco BLE devices. -NOTE: Most applications should not have this enabled.

-
- - -
@property (nonatomic) BOOL discoversAllEmmocoBLEDevices
- - - - - - - - -
-

Discussion

-

By default, EMBluetoothLowEnergyConnectionType will ‘discover’ devices that have a schema hash matching a schema in your application bundle. -Set this flag to ‘YES’ for an instance of this class to discover all Emmoco BLE devices. -NOTE: Most applications should not have this enabled.

-
- - - - - - - -
-

Declared In

- EMBluetoothLowEnergyConnectionType.h
-
- - -
- -
- - - - - -
- -

Instance Methods

- -
- -

connectToDevice:connectionDelegate:

- - - -
-

Establishes a connection with a device

-
- - -
- (void)connectToDevice:(EMDeviceBasicDescription *)device connectionDelegate:(id<EMDeviceDelegate>)connDelegate
- - - - - - - - -
-

Discussion

-

Establishes a connection with a device

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

deviceType

- - - -
-

The type of device - this can be set to anything and retreived for printing or examining.

-
- - -
- (NSString *)deviceType
- - - - - - - - -
-

Discussion

-

The type of device - this can be set to anything and retreived for printing or examining.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

disconnect

- - - -
-

disconnects the current device.

-
- - -
- (void)disconnect
- - - - - - - - -
-

Discussion

-

disconnects the current device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

fetch:

- - - -
-

Fetches a resource. Can be retrieved in “lastReadValue”

-
- - -
- (void)fetch:(EMResourceValue *)value
- - - - - - - - -
-

Discussion

-

Fetches a resource. Can be retrieved in “lastReadValue”

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

fetchSystemResource:

- - - -
-

Fetches a system resource. Can be retrieved in “lastReadValue”.

-
- - -
- (void)fetchSystemResource:(EMResourceValue *)value
- - - - - - - - -
-

Discussion

-

Fetches a system resource. Can be retrieved in “lastReadValue”.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

isAvailable

- - - -
-

YES if available on the current device, NO if unavailable.

-
- - -
- (BOOL)isAvailable
- - - - - - - - -
-

Discussion

-

YES if available on the current device, NO if unavailable.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

lastReadValue

- - - -
-

The last read resource value from the device

-
- - -
- (EMResourceValue *)lastReadValue
- - - - - - - - -
-

Discussion

-

The last read resource value from the device

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

setConnectionDelegate:

- - - -
-

The delegate for connection communication

-
- - -
- (void)setConnectionDelegate:(id<EMDeviceDelegate>)connectionDelegate
- - - - - - - - -
-

Discussion

-

The delegate for connection communication

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

startUpdating

- - - -
-

Tells the connection to start looking for devices of its type.

-
- - -
- (void)startUpdating
- - - - - - - - -
-

Discussion

-

Tells the connection to start looking for devices of its type.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

stopUpdating

- - - -
-

Tells the connection to stop looking for devices of its type.

-
- - -
- (void)stopUpdating
- - - - - - - - -
-

Discussion

-

Tells the connection to stop looking for devices of its type.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

store:

- - - -
-

writes a value to a device.

-
- - -
- (void)store:(EMResourceValue *)value
- - - - - - - - -
-

Discussion

-

writes a value to a device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v12.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v12.html deleted file mode 100644 index 2f3d888..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v12.html +++ /dev/null @@ -1,866 +0,0 @@ - - - - - EMBluetoothLowEnergyConnectionType_v12 Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromNSObject
Conforms toCBCentralManagerDelegate
CBPeripheralDelegate
EMConnectionType
Declared inEMBluetoothLowEnergyConnectionType_v12.h
EMBluetoothLowEnergyConnectionType_v12.m
- - - - -
- -

Overview

-

EMBluethoothLowEnergyConnectionType is a concrete EMConnectionType for Bluetooth Low Energy.

- -

If you want the framework to interact with Bluetooth Low Energy devices, add an instance of this class to EMConnectionListManager via the -addConnectionTypeToUpdates: method.

-
- - - - - -
- -

Tasks

- - - -

Other Methods

- - - - - -

Extension Methods

- -
    -
  • - -   connected -

    A boolean indicating whether or not there is a connection with a device.

    -
    - property - -
  • -
- -
- - - - - -
- -

Properties

- -
- -

connected

- - - -
-

A boolean indicating whether or not there is a connection with a device.

-
- - -
@property (nonatomic, getter=isConnected) BOOL connected
- - - - - - - - -
-

Discussion

-

A boolean indicating whether or not there is a connection with a device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- - - - - -
- -

Instance Methods

- -
- -

connectToDevice:connectionDelegate:

- - - -
-

Establishes a connection with a device

-
- - -
- (void)connectToDevice:(EMDeviceBasicDescription *)device connectionDelegate:(id<EMDeviceDelegate>)connDelegate
- - - - - - - - -
-

Discussion

-

Establishes a connection with a device

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

deviceType

- - - -
-

The type of device - this can be set to anything and retreived for printing or examining.

-
- - -
- (NSString *)deviceType
- - - - - - - - -
-

Discussion

-

The type of device - this can be set to anything and retreived for printing or examining.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

disconnect

- - - -
-

disconnects the current device.

-
- - -
- (void)disconnect
- - - - - - - - -
-

Discussion

-

disconnects the current device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

fetch:

- - - -
-

Fetches a resource. Can be retrieved in “lastReadValue”

-
- - -
- (void)fetch:(EMResourceValue *)value
- - - - - - - - -
-

Discussion

-

Fetches a resource. Can be retrieved in “lastReadValue”

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

fetchSystemResource:

- - - -
-

Fetches a system resource. Can be retrieved in “lastReadValue”.

-
- - -
- (void)fetchSystemResource:(EMResourceValue *)value
- - - - - - - - -
-

Discussion

-

Fetches a system resource. Can be retrieved in “lastReadValue”.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

isAvailable

- - - -
-

YES if available on the current device, NO if unavailable.

-
- - -
- (BOOL)isAvailable
- - - - - - - - -
-

Discussion

-

YES if available on the current device, NO if unavailable.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

startUpdating

- - - -
-

Tells the connection to start looking for devices of its type.

-
- - -
- (void)startUpdating
- - - - - - - - -
-

Discussion

-

Tells the connection to start looking for devices of its type.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

stopUpdating

- - - -
-

Tells the connection to stop looking for devices of its type.

-
- - -
- (void)stopUpdating
- - - - - - - - -
-

Discussion

-

Tells the connection to stop looking for devices of its type.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

store:

- - - -
-

writes a value to a device.

-
- - -
- (void)store:(EMResourceValue *)value
- - - - - - - - -
-

Discussion

-

writes a value to a device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v13.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v13.html deleted file mode 100644 index 125b2cd..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMBluetoothLowEnergyConnectionType_v13.html +++ /dev/null @@ -1,866 +0,0 @@ - - - - - EMBluetoothLowEnergyConnectionType_v13 Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromNSObject
Conforms toCBCentralManagerDelegate
CBPeripheralDelegate
EMConnectionType
Declared inEMBluetoothLowEnergyConnectionType_v13.h
EMBluetoothLowEnergyConnectionType_v13.m
- - - - -
- -

Overview

-

EMBluethoothLowEnergyConnectionType is a concrete EMConnectionType for Bluetooth Low Energy.

- -

If you want the framework to interact with Bluetooth Low Energy devices, add an instance of this class to EMConnectionListManager via the -addConnectionTypeToUpdates: method.

-
- - - - - -
- -

Tasks

- - - -

Other Methods

- - - - - -

Extension Methods

- -
    -
  • - -   connected -

    A boolean indicating whether or not there is a connection with a device.

    -
    - property - -
  • -
- -
- - - - - -
- -

Properties

- -
- -

connected

- - - -
-

A boolean indicating whether or not there is a connection with a device.

-
- - -
@property (nonatomic, getter=isConnected) BOOL connected
- - - - - - - - -
-

Discussion

-

A boolean indicating whether or not there is a connection with a device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- - - - - -
- -

Instance Methods

- -
- -

connectToDevice:connectionDelegate:

- - - -
-

Establishes a connection with a device

-
- - -
- (void)connectToDevice:(EMDeviceBasicDescription *)device connectionDelegate:(id<EMDeviceDelegate>)connDelegate
- - - - - - - - -
-

Discussion

-

Establishes a connection with a device

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

deviceType

- - - -
-

The type of device - this can be set to anything and retreived for printing or examining.

-
- - -
- (NSString *)deviceType
- - - - - - - - -
-

Discussion

-

The type of device - this can be set to anything and retreived for printing or examining.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

disconnect

- - - -
-

disconnects the current device.

-
- - -
- (void)disconnect
- - - - - - - - -
-

Discussion

-

disconnects the current device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

fetch:

- - - -
-

Fetches a resource. Can be retrieved in “lastReadValue”

-
- - -
- (void)fetch:(EMResourceValue *)value
- - - - - - - - -
-

Discussion

-

Fetches a resource. Can be retrieved in “lastReadValue”

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

fetchSystemResource:

- - - -
-

Fetches a system resource. Can be retrieved in “lastReadValue”.

-
- - -
- (void)fetchSystemResource:(EMResourceValue *)value
- - - - - - - - -
-

Discussion

-

Fetches a system resource. Can be retrieved in “lastReadValue”.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

isAvailable

- - - -
-

YES if available on the current device, NO if unavailable.

-
- - -
- (BOOL)isAvailable
- - - - - - - - -
-

Discussion

-

YES if available on the current device, NO if unavailable.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

startUpdating

- - - -
-

Tells the connection to start looking for devices of its type.

-
- - -
- (void)startUpdating
- - - - - - - - -
-

Discussion

-

Tells the connection to start looking for devices of its type.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

stopUpdating

- - - -
-

Tells the connection to stop looking for devices of its type.

-
- - -
- (void)stopUpdating
- - - - - - - - -
-

Discussion

-

Tells the connection to stop looking for devices of its type.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

store:

- - - -
-

writes a value to a device.

-
- - -
- (void)store:(EMResourceValue *)value
- - - - - - - - -
-

Discussion

-

writes a value to a device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnection.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnection.html deleted file mode 100644 index 2edb0eb..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnection.html +++ /dev/null @@ -1,1105 +0,0 @@ - - - - - EMConnection Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromNSObject
Conforms toEMDeviceDelegate
Declared inEMConnection.h
EMConnection.m
- - - - -
- -

Overview

-

The state of the current connection. Use KVO to receive updates on this property and react to changes.

-
- - - - - -
- -

Tasks

- - - - - - - -
- - - - - -
- -

Properties

- -
- -

connectionAttemptTimeout

- - - -
-

The timeout interval for a pending connection

-
- - -
@property (atomic) NSTimeInterval connectionAttemptTimeout
- - - - - - - - -
-

Discussion

-

The timeout interval for a pending connection

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

connectionClosedBlock

- - - -
-

This block will be called when an open connection is closed for any reason

-
- - -
@property (atomic, strong) EMResourceBlock connectionClosedBlock
- - - - - - - - -
-

Discussion

-

This block will be called when an open connection is closed for any reason

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

connectionDelegate

- - - -
-

The connection delegate. EMConnectionManager will post connect and disconnect delegate messages to this object if it is set.

-
- - -
@property (nonatomic, unsafe_unretained) id<EMConnectionDelegate> connectionDelegate
- - - - - - - - -
-

Discussion

-

The connection delegate. EMConnectionManager will post connect and disconnect delegate messages to this object if it is set.

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

device

- - - -
-

The EMDeviceBasicDescription used for conenction

-
- - -
@property (nonatomic, strong) EMDeviceBasicDescription *device
- - - - - - - - -
-

Discussion

-

The EMDeviceBasicDescription used for conenction

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

schema

- - - -
-

The schema for connection

-
- - -
@property (nonatomic, strong) EMSchema *schema
- - - - - - - - -
-

Discussion

-

The schema for connection

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- - - - - -
- -

Instance Methods

- -
- -

cancelOpen

- - - -
-

Cancels the attempt to open this EMTargetConnection, posting the open block with a failed status.

-
- - -
- (void)cancelOpen
- - - - - - - - -
-

Discussion

-

Cancels the attempt to open this EMTargetConnection, posting the open block with a failed status.

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

closeConnectionWithSuccess:onFail:

- - - -
-

Closes the connection

-
- - -
- (void)closeConnectionWithSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock
- - -
-

Parameters

- -
-
successBlock
-

A block to call on a successful disconnect

-
- -
-
failBlock
-

A block to call on a failed disconnect

-
- -
- - - - - - - -
-

Discussion

-

Closes the connection

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

initWithDevice:

- - - -
-

Creates a new EMConnection object. -Actual connection and disconnection to the named target occurs through calls to open and close on this object.

-
- - -
- (id)initWithDevice:(EMDeviceBasicDescription *)device
- - -
-

Parameters

- -
-
device
-

The basic description of a device

-
- -
- - - - - - - -
-

Discussion

-

Creates a new EMConnection object. -Actual connection and disconnection to the named target occurs through calls to open and close on this object.

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

initWithDevice:schema:

- - - -
-

Creates a new EMTargetConnection object. -Actual connection and disconnection to the named target occurs through calls to open and close on this object.

-
- - -
- (id)initWithDevice:(EMDeviceBasicDescription *)device schema:(EMSchema *)resourceSchema
- - -
-

Parameters

- -
-
device
-

the name of the target device, including one of the pre-defined prefixes

-
- -
-
resourceSchema
-

the schema describing the resources available in this connection

-
- -
- - - - - - - -
-

Discussion

-

Creates a new EMTargetConnection object. -Actual connection and disconnection to the named target occurs through calls to open and close on this object.

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

isConnected

- - - -
-

Returns true if connected and false otherwise.

-
- - -
- (BOOL)isConnected
- - - - - - - - -
-

Discussion

-

Returns true if connected and false otherwise.

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

openConnectionWithSuccess:onFail:

- - - -
-

Opens a connection to the @device device property

-
- - -
- (void)openConnectionWithSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock
- - -
-

Parameters

- -
-
successBlock
-

A block to call on a successful connect

-
- -
-
failBlock
-

A block to call on a failed connect

-
- -
- - - - - - - -
-

Discussion

-

Opens a connection to the @device device property

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

readValueNamed:onSuccess:onFail:

- - - -
-

Reads a value

-
- - -
- (void)readValueNamed:(NSString *)resourceName onSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock
- - -
-

Parameters

- -
-
resourceName
-

The name of the resource to read

-
- -
-
successBlock
-

A block to call on a successful read

-
- -
-
failBlock
-

A block to call on a failed read

-
- -
- - - - - - - -
-

Discussion

-

Reads a value

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- -

writeResource:onSuccess:onFail:

- - - -
-

Writes a resource to the device

-
- - -
- (void)writeResource:(EMResourceValue *)resourceValue onSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock
- - -
-

Parameters

- -
-
resourceValue
-

The resource value

-
- -
-
successBlock
-

A block to call on a successful write

-
- -
-
failBlock
-

A block to call on a failed write

-
- -
- - - - - - - -
-

Discussion

-

Writes a resource to the device

-
- - - - - - - -
-

Declared In

- EMConnection.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnectionListManager.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnectionListManager.html deleted file mode 100644 index 9351c68..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnectionListManager.html +++ /dev/null @@ -1,1200 +0,0 @@ - - - - - EMConnectionListManager Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromNSObject
Conforms toEMConnectionTypeScannerDelegate
Declared inEMConnectionListManager.h
EMConnectionListManager.m
- - - - -
- -

Overview

-

EMConnectionListManager is a singleton class used for viewing a list of devices available for interaction.

-
- - - - - -
- -

Tasks

- - - -

Other Methods

- -
    -
  • - -   devices -

    @property devices -A list of devices that has been discovered as available by the connection list manager

    -
    - property - -
  • - -   filterPredicate -

    @property filterPredicate -A filter that allows only devices conforming to the predicate to be visible

    -
    - property - -
  • - -   updating -

    @property updating -A boolean value indicating whether or not the connection list manager is actively updating the devices list

    -
    - property - -
  • - -   updateRate -

    @property updateRate -updateRate determines the scan frequency for discovering devices

    -
    - property - -
  • - -   automaticallyConnectsToLastDevice -

    @param automaticallyConnectsToLastDevice -A boolean value indicating whether or not the connection list manager should automatically connect to the last device it was connected to if it encounters it in a scan.

    -
    - property - -
  • - - + sharedManager -

    Use the +sharedManager to get the singleton, shared instance of EMConnectionListManager

    -
    - - -
  • - - – deviceBasicDescriptionForDeviceNamed: -

    Retrieve a device description for a given unique identifier

    -
    - - -
  • - - – startUpdating -

    Tells the connection list manager to begin actively looking for devices to interact with.

    -
    - - -
  • - - – stopUpdating -

    Tells the connection list manager to stop looking for devices to interact with.

    -
    - - -
  • - - – reset -

    Manually clears out all devices on the connection list manager.

    -
    - - -
  • - - – isBluetoothAvailable -

    Detect if Bluetooth is available

    -
    - - -
  • - - – addConnectionTypeToUpdates: -

    Add your own connection type outside of bluetooth low energy

    -
    - - -
  • - - – removeConnectionToFromUpdates: -

    Remove your own connection type outside of bluetooth low energy

    -
    - - -
  • -
- - - -

Other Methods

- - - -
- - - - - -
- -

Properties

- -
- -

automaticallyConnectsToLastDevice

- - - -
-

@param automaticallyConnectsToLastDevice -A boolean value indicating whether or not the connection list manager should automatically connect to the last device it was connected to if it encounters it in a scan.

-
- - -
@property (nonatomic) BOOL automaticallyConnectsToLastDevice
- - - - - - - - -
-

Discussion

-

@param automaticallyConnectsToLastDevice -A boolean value indicating whether or not the connection list manager should automatically connect to the last device it was connected to if it encounters it in a scan.

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- -

devices

- - - -
-

@property devices -A list of devices that has been discovered as available by the connection list manager

-
- - -
@property (nonatomic, strong, readonly) NSArray *devices
- - - - - - - - -
-

Discussion

-

@property devices -A list of devices that has been discovered as available by the connection list manager

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- -

filterPredicate

- - - -
-

@property filterPredicate -A filter that allows only devices conforming to the predicate to be visible

-
- - -
@property (nonatomic, strong) NSPredicate *filterPredicate
- - - - - - - - -
-

Discussion

-

@property filterPredicate -A filter that allows only devices conforming to the predicate to be visible

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- -

updateRate

- - - -
-

@property updateRate -updateRate determines the scan frequency for discovering devices

-
- - -
@property (nonatomic) NSTimeInterval updateRate
- - - - - - - - -
-

Discussion

-

@property updateRate -updateRate determines the scan frequency for discovering devices

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- -

updating

- - - -
-

@property updating -A boolean value indicating whether or not the connection list manager is actively updating the devices list

-
- - -
@property (nonatomic, getter=isUpdating, readonly) BOOL updating
- - - - - - - - -
-

Discussion

-

@property updating -A boolean value indicating whether or not the connection list manager is actively updating the devices list

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- - - -
- -

Class Methods

- -
- -

sharedManager

- - - -
-

Use the +sharedManager to get the singleton, shared instance of EMConnectionListManager

-
- - -
+ (EMConnectionListManager *)sharedManager
- - - - - - - - -
-

Discussion

-

Use the +sharedManager to get the singleton, shared instance of EMConnectionListManager

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- - - -
- -

Instance Methods

- -
- -

addConnectionTypeToUpdates:

- - - -
-

Add your own connection type outside of bluetooth low energy

-
- - -
- (void)addConnectionTypeToUpdates:(id<EMConnectionType>)connectionType
- - - - - - - - -
-

Discussion

-

Add your own connection type outside of bluetooth low energy

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- -

deviceBasicDescriptionForDeviceNamed:

- - - -
-

Retrieve a device description for a given unique identifier

-
- - -
- (EMDeviceBasicDescription *)deviceBasicDescriptionForDeviceNamed:(NSString *)name
- - -
-

Parameters

- -
-
name
-

The name of the device

-
- -
- - - - - - - -
-

Discussion

-

Retrieve a device description for a given unique identifier

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- -

deviceScanner:didFindDevice:

- - - -
-

Tells the delegate a device was found.

-
- - -
- (void)deviceScanner:(id<EMConnectionType>)scanner didFindDevice:(EMDeviceBasicDescription *)device
- - - - - - - - -
-

Discussion

-

Tells the delegate a device was found.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

deviceScanner:didLoseDevice:

- - - -
-

Tells the delegate a device was lost.

-
- - -
- (void)deviceScanner:(id)scanner didLoseDevice:(EMDeviceBasicDescription *)device
- - - - - - - - -
-

Discussion

-

Tells the delegate a device was lost.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

deviceScanner:didUpdateDevice:

- - - -
-

Updates the data for a device description

-
- - -
- (void)deviceScanner:(id)scanner didUpdateDevice:(EMDeviceBasicDescription *)device
- - - - - - - - -
-

Discussion

-

Updates the data for a device description

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

isBluetoothAvailable

- - - -
-

Detect if Bluetooth is available

-
- - -
- (BOOL)isBluetoothAvailable
- - - - - - - - -
-

Discussion

-

Detect if Bluetooth is available

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- -

removeConnectionToFromUpdates:

- - - -
-

Remove your own connection type outside of bluetooth low energy

-
- - -
- (void)removeConnectionToFromUpdates:(id<EMConnectionType>)connectionType
- - - - - - - - -
-

Discussion

-

Remove your own connection type outside of bluetooth low energy

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- -

reset

- - - -
-

Manually clears out all devices on the connection list manager.

-
- - -
- (void)reset
- - - - - - - - -
-

Discussion

-

Manually clears out all devices on the connection list manager.

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- -

startUpdating

- - - -
-

Tells the connection list manager to begin actively looking for devices to interact with.

-
- - -
- (void)startUpdating
- - - - - - - - -
-

Discussion

-

Tells the connection list manager to begin actively looking for devices to interact with.

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- -

stopUpdating

- - - -
-

Tells the connection list manager to stop looking for devices to interact with.

-
- - -
- (void)stopUpdating
- - - - - - - - -
-

Discussion

-

Tells the connection list manager to stop looking for devices to interact with.

-
- - - - - - - -
-

Declared In

- EMConnectionListManager.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnectionManager.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnectionManager.html deleted file mode 100644 index 7d585ad..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMConnectionManager.html +++ /dev/null @@ -1,1333 +0,0 @@ - - - - - EMConnectionManager Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromNSObject
Conforms toEMConnectionDelegate
Declared inEMConnectionManager.h
EMConnectionManager.m
- - - - -
- -

Overview

-

EMConnectionManager is a singleton class for managing a connection with a physical or mock device.

-
- - - - - -
- -

Tasks

- - - - - - - -
- - - - - -
- -

Properties

- -
- -

backgroundUpdatesEnabled

- - - -
-

@property backgroundUpdatesEnabled -@description If you set this flag to “YES”, the connection manager has the ability to persist while running in the background. By default, the connection manager severs connections when entering the background.

-
- - -
@property (nonatomic) BOOL backgroundUpdatesEnabled
- - - - - - - - -
-

Discussion

-

@property backgroundUpdatesEnabled -@description If you set this flag to “YES”, the connection manager has the ability to persist while running in the background. By default, the connection manager severs connections when entering the background.

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- - - -
- -

Class Methods

- -
- -

sharedManager

- - - -
-

Use the +sharedManager class method to access the application-wide singleton instance of EMConnectionManager. -Note: Accessing the connection manager in any way other is not recommended.

-
- - -
+ (EMConnectionManager *)sharedManager
- - - - - - - - -
-

Discussion

-

Use the +sharedManager class method to access the application-wide singleton instance of EMConnectionManager. -Note: Accessing the connection manager in any way other is not recommended.

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- - - -
- -

Instance Methods

- -
- -

addSchemaSearchForFilesInDirectory:

- - - -
-

Tells the connection manager where it should look for schemas other than the NSBundle’s mainBundle

-
- - -
- (void)addSchemaSearchForFilesInDirectory:(NSString *)path
- - -
-

Parameters

- -
-
path
-

The path for the directory in which to search

-
- -
- - - - - - - -
-

Discussion

-

Tells the connection manager where it should look for schemas other than the NSBundle’s mainBundle

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

connectDevice:onSuccess:onFail:

- - - -
-

Tells the connection manager to connect to a specific device.

-
- - -
- (void)connectDevice:(EMDeviceBasicDescription *)device onSuccess:(void ( ^ ) ( void ))successBlock onFail:(void ( ^ ) ( NSError *error ))failBlock
- - -
-

Parameters

- -
-
device
-

An instance of EMDeviceBasicDescription the connection manager should connect to

-
- -
-
successBlock
-

The block to run after a successful connection

-
- -
-
failBlock
-

The block to run if the connectino fails -@description The implementation of this method calls connectDevice:timeoutInterval:onSuccess:onFail: with a default time interval of 10 seconds

-
- -
- - - - - - - -
-

Discussion

-

Tells the connection manager to connect to a specific device.

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

connectDevice:timeoutInterval:onSuccess:onFail:

- - - -
-

Tells the connection manager to connect to a specific device.

-
- - -
- (void)connectDevice:(EMDeviceBasicDescription *)device timeoutInterval:(NSTimeInterval)timeout onSuccess:(void ( ^ ) ( void ))successBlock onFail:(void ( ^ ) ( NSError *error ))failBlock
- - -
-

Parameters

- -
-
device
-

An instance of EMDeviceBasicDescription the connection manager should connect to

-
- -
-
timeout
-

The time the connection manager should allow for a successful connection. After the specified time interval passes, the fail block will be called.

-
- -
-
successBlock
-

The block to run after a successful connection

-
- -
-
failBlock
-

The block to run if the connection fails -@description The implementation of this method calls connectDevice:timeoutInterval:onSuccess:onFail: with a default time interval of 10 seconds

-
- -
- - - - - - - -
-

Discussion

-

Tells the connection manager to connect to a specific device.

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

connectedDevice

- - - -
-

Returns an array of EMDeviceBasicDescription’s for the device that is actively connected

-
- - -
- (EMDeviceBasicDescription *)connectedDevice
- - - - - - - - -
-

Discussion

-

Returns an array of EMDeviceBasicDescription’s for the device that is actively connected

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

disconnectWithSuccess:onFail:

- - - -
-

Tells the connection manager to disconnect from a specific device

-
- - -
- (void)disconnectWithSuccess:(void ( ^ ) ( void ))successBlock onFail:(void ( ^ ) ( NSError *error ))failBlock
- - -
-

Parameters

- -
-
successBlock
-

The block to run after a successful disconnection

-
- -
-
failBlock
-

The block to run if the disconnection fails.

-
- -
- - - - - - - -
-

Discussion

-

Tells the connection manager to disconnect from a specific device

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

embeddedSystemProtocolLevel

- - - -
-

Gets the embedded system protocol level from the schema used to connect to the device -@description This call does not send a message down to the board - the protocol level is pulled directly from the schema that was used to connect to the device.

-
- - -
- (NSNumber *)embeddedSystemProtocolLevel
- - - - - - - - -
-

Discussion

-

Gets the embedded system protocol level from the schema used to connect to the device -@description This call does not send a message down to the board - the protocol level is pulled directly from the schema that was used to connect to the device.

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

forceConnectionWithDefaultSchema:

- - - -
-

Forces the connection manager to connect to a device with the default schema

-
- - -
- (void)forceConnectionWithDefaultSchema:(EMDeviceBasicDescription *)device
- - -
-

Parameters

- -
-
device
-

The device for the forced connection -@description Use this method with extreme caution. Many undefined behaviors can come from using this method with a schema that isn’t an exact match for the specified device. EMConnectionManager uses this method internally. It is very rare that you will need to call this method directly.

-
- -
- - - - - - - -
-

Discussion

-

Forces the connection manager to connect to a device with the default schema

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

readResource:onSuccess:onFail:

- - - -
-

Reads a resource from a connected device

-
- - -
- (void)readResource:(NSString *)resourceName onSuccess:(void ( ^ ) ( id readValue ))successBlock onFail:(void ( ^ ) ( NSError *error ))failBlock
- - -
-

Parameters

- -
-
resourceName
-

The name of the resource to read. This is the name of the resource in the device’s schema.

-
- -
-
successBlock
-

The block to call when a read occurs successfully. Connection manager will call this block with the value read.

-
- -
-
failBlock
-

The block to call when a read fails.

-
- -
- - - - - - - -
-

Discussion

-

Reads a resource from a connected device

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

removeSchemaSearchForFilesInDirectory:

- - - -
-

Tells the connection manager to no longer look in the specified path for schemas

-
- - -
- (void)removeSchemaSearchForFilesInDirectory:(NSString *)path
- - -
-

Parameters

- -
-
path
-

The path to no longer search -@description Note: This method will never ignore the current bundle’s mainBundle

-
- -
- - - - - - - -
-

Discussion

-

Tells the connection manager to no longer look in the specified path for schemas

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

schemaFileNameForHashString:

- - - -
-

Gives the schema name in the application bundle for a given hash string

-
- - -
- (NSString *)schemaFileNameForHashString:(NSString *)hashString
- - -
-

Parameters

- -
-
hashString
-

A full or partial schema hash string -@description This method takes either a full hash or partial hash. If any schema begins with ‘hash string’, the file name in the bundle is returned. Returns nil if no matching schema was found in the bundle. -If one or more schemas share ‘hashString’ at the beginning of their hash, the first path will be returned.

-
- -
- - - - - - - -
-

Discussion

-

Gives the schema name in the application bundle for a given hash string

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

schemaForConnectedDevice

- - - -
-

Gets the schema for the connected device. -@description Returns nil if no device is connected.

-
- - -
- (EMSchema *)schemaForConnectedDevice
- - - - - - - - -
-

Discussion

-

Gets the schema for the connected device. -@description Returns nil if no device is connected.

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

schemaHashForConnectedDevice

- - - -
-

Returns a version of the the schema hash from a connected device’s firmware as it appears on em-hub

-
- - -
- (NSString *)schemaHashForConnectedDevice
- - - - - - - - -
-

Discussion

-

Returns a version of the the schema hash from a connected device’s firmware as it appears on em-hub

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

updateInternalSchemaCache

- - - -
-

Tells EMConnectionManager to update its internal cache of schemas used for connection. -@description EMConnectionManager uses this method internally. It is very rare taht you will need to call this method directly.

-
- - -
- (void)updateInternalSchemaCache
- - - - - - - - -
-

Discussion

-

Tells EMConnectionManager to update its internal cache of schemas used for connection. -@description EMConnectionManager uses this method internally. It is very rare taht you will need to call this method directly.

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- -

writeValue:toResource:onSuccess:onFail:

- - - -
-

Writes a value to a resource on a connected device

-
- - -
- (void)writeValue:(id)resourceValue toResource:(NSString *)resource onSuccess:(void ( ^ ) ( void ))successBlock onFail:(void ( ^ ) ( NSError *error ))failBlock
- - -
-

Parameters

- -
-
resourceValue
-

The value to write to the resource. This should be an instance of NSString, NSData, NSArray, NSNumber, or NSDictionary

-
- -
-
resource
-

The name of the resource for writing. This is the name of the resource in the schema.

-
- -
-
successBlock
-

The block to call when the write occurs successfully.

-
- -
-
failBlock
-

The block to call when the write fails.

-
- -
- - - - - - - -
-

Discussion

-

Writes a value to a resource on a connected device

-
- - - - - - - -
-

Declared In

- EMConnectionManager.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMDeviceBasicDescription.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMDeviceBasicDescription.html deleted file mode 100644 index ae519b0..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMDeviceBasicDescription.html +++ /dev/null @@ -1,753 +0,0 @@ - - - - - EMDeviceBasicDescription Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - -
Inherits fromNSObject
Declared inEMDeviceBasicDescription.h
EMDeviceBasicDescription.m
- - - - -
- -

Overview

-

EMDeviceBasicDescription is a class used to describe basic device characteristics throughout the entire framework. -All devices, regardless of connection type, will have these properties.

- -

All classes implementing the EMConnectionType protocol will receive and deliver device information in the form of an EMDeviceBasicDescription.

-
- - - - - -
- -

Tasks

- - - - - -
    -
  • - -   name -

    The name of the device used thoughout the framework. -Like the unique_identifier, this property needs to be unique.

    -
    - property - -
  • - -   connectionType -

    A concrete EMConnectionType instance that will be used to send messages to the device.

    -
    - property - -
  • - -   signalStrength -

    A value between -100 and 0 used to describe signal strength.

    -
    - property - -
  • - -   signalStrengthFilter -

    The signal strength filter for smoothing

    -
    - property - -
  • - -   advertiseData -

    Data that was discovered along with the device. -Ex: When dealing with bluetooth, this is the advertising packet data

    -
    - property - -
  • - -   advertiseObject -

    An object taken from the advertise data based on the advertise resource in the device’s schema -Possible classes: NSString, NSNumber, NSDictionary, NSArray, NSData

    -
    - property - -
  • - -   shortSchemaHash -

    The first six characters of the device’s schema

    -
    - property - -
  • - -   schemaFilePath -

    The name of the schema file in your bundle that relates to this device. -NOTE: Many devices do not broadcast this information. In this case, this property will not be set

    -
    - property - -
  • -
- -
- - - - - -
- -

Properties

- -
- -

advertiseData

- - - -
-

Data that was discovered along with the device. -Ex: When dealing with bluetooth, this is the advertising packet data

-
- - -
@property (nonatomic, strong) NSData *advertiseData
- - - - - - - - -
-

Discussion

-

Data that was discovered along with the device. -Ex: When dealing with bluetooth, this is the advertising packet data

-
- - - - - - - -
-

Declared In

- EMDeviceBasicDescription.h
-
- - -
- -
- -

advertiseObject

- - - -
-

An object taken from the advertise data based on the advertise resource in the device’s schema -Possible classes: NSString, NSNumber, NSDictionary, NSArray, NSData

-
- - -
@property (nonatomic, strong) id advertiseObject
- - - - - - - - -
-

Discussion

-

An object taken from the advertise data based on the advertise resource in the device’s schema -Possible classes: NSString, NSNumber, NSDictionary, NSArray, NSData

-
- - - - - - - -
-

Declared In

- EMDeviceBasicDescription.h
-
- - -
- -
- -

connectionType

- - - -
-

A concrete EMConnectionType instance that will be used to send messages to the device.

-
- - -
@property (nonatomic, strong) id<EMConnectionType> connectionType
- - - - - - - - -
-

Discussion

-

A concrete EMConnectionType instance that will be used to send messages to the device.

-
- - - - - - - -
-

Declared In

- EMDeviceBasicDescription.h
-
- - -
- -
- -

name

- - - -
-

The name of the device used thoughout the framework. -Like the unique_identifier, this property needs to be unique.

-
- - -
@property (nonatomic, strong) NSString *name
- - - - - - - - -
-

Discussion

-

The name of the device used thoughout the framework. -Like the unique_identifier, this property needs to be unique.

-
- - - - - - - -
-

Declared In

- EMDeviceBasicDescription.h
-
- - -
- -
- -

schemaFilePath

- - - -
-

The name of the schema file in your bundle that relates to this device. -NOTE: Many devices do not broadcast this information. In this case, this property will not be set

-
- - -
@property (nonatomic, strong) NSString *schemaFilePath
- - - - - - - - -
-

Discussion

-

The name of the schema file in your bundle that relates to this device. -NOTE: Many devices do not broadcast this information. In this case, this property will not be set

-
- - - - - - - -
-

Declared In

- EMDeviceBasicDescription.h
-
- - -
- -
- -

shortSchemaHash

- - - -
-

The first six characters of the device’s schema

-
- - -
@property (nonatomic, strong) NSString *shortSchemaHash
- - - - - - - - -
-

Discussion

-

The first six characters of the device’s schema

-
- - - - - - - -
-

Declared In

- EMDeviceBasicDescription.h
-
- - -
- -
- -

signalStrength

- - - -
-

A value between -100 and 0 used to describe signal strength.

-
- - -
@property (nonatomic) float signalStrength
- - - - - - - - -
-

Discussion

-

A value between -100 and 0 used to describe signal strength.

-
- - - - - - - -
-

Declared In

- EMDeviceBasicDescription.h
-
- - -
- -
- -

signalStrengthFilter

- - - -
-

The signal strength filter for smoothing

-
- - -
@property (nonatomic, strong) id<EMSignalStrengthFilter> signalStrengthFilter
- - - - - - - - -
-

Discussion

-

The signal strength filter for smoothing

-
- - - - - - - -
-

Declared In

- EMDeviceBasicDescription.h
-
- - -
- -
- - - - - - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMResourceValue.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMResourceValue.html deleted file mode 100644 index 48bf736..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMResourceValue.html +++ /dev/null @@ -1,1963 +0,0 @@ - - - - - EMResourceValue Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromNSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.h
EMResourceValue.m
- - - - -
- -

Overview

-

A container for different types of resource values. -Instances of this class are used to hold values for resources whose types is -either Void, Int, Enum, Num, String, Struct, Array, or File.

- -

See also:

- - - - -

Written by Bob Frankel and Carolyn Vaughan

-
- - - - - -
- -

Tasks

- - - -

Other Methods

- - - - - -

Other Methods

- - - -
- - - - - -
- -

Properties

- -
- -

name

- - - -
-

The name of the resource.

-
- - -
@property (readonly) NSString *name
- - - - - - - - -
-

Discussion

-

The name of the resource.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

resourceSchema

- - - -
-

The resource schema associated with the resource.

-
- - -
@property (readonly) EMSchema *resourceSchema
- - - - - - - - -
-

Discussion

-

The resource schema associated with the resource.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

type

- - - -
-

The type of the resource.

-
- - -
@property (readonly) NSString *type
- - - - - - - - -
-

Discussion

-

The type of the resource.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - - -
- -

Class Methods

- -
- -

resourceWithName:ofType:fromSchema:

- - - -
-

Create a EMResourceValue. This method is used internally by the framework.

-
- - -
+ (EMResourceValue *)resourceWithName:(NSString *)name ofType:(NSString *)type fromSchema:(EMSchema *)resourceSchema
- - -
-

Parameters

- -
-
name
-

the name given to the newly-created value

-
- -
-
type
-

the type of the newly-created value

-
- -
-
resourceSchema
-

an EMSchema instance

-
- -
- - - -
-

Return Value

-

a new EMResourceValue instance

-
- - - - - -
-

Discussion

-

Create a EMResourceValue. This method is used internally by the framework.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - - -
- -

Instance Methods

- -
- -

copyFromResource:

- - - - -
- (void)copyFromResource:(EMResourceValue *)source
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

doubleValue

- - - - -
- (double)doubleValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

enumValues

- - - - -
- (NSArray *)enumValues
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fieldNames

- - - - -
- (NSArray *)fieldNames
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileEof

- - - - -
- (BOOL)fileEof
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileFetch

- - - - -
- (void)fileFetch
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileStore

- - - - -
- (void)fileStore
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

getDataOfSize:fromBuffer:

- - - - -
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

index:

- - - - -
- (EMResourceValue *)index:(int)index
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

initWithName:type:schema:

- - - - -
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isArray

- - - -
-

Returns true if the type of this value is an Array, and false otherwise.

-
- - -
- (BOOL)isArray
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is an Array, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isEnum

- - - -
-

Returns true if the type of this value is an Enum, and false otherwise.

-
- - -
- (BOOL)isEnum
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is an Enum, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isFile

- - - -
-

Returns true if the type of this value is a File, and false otherwise.

-
- - -
- (BOOL)isFile
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is a File, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isInt

- - - -
-

Returns true if the type of this value is an Int, and false otherwise.

-
- - -
- (BOOL)isInt
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is an Int, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isNum

- - - -
-

Returns true if the type of this value is a Num, and false otherwise.

-
- - -
- (BOOL)isNum
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is a Num, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isScalar

- - - -
-

Returns true if the type of this value is scalar (Num, Enum, Int, String), and false otherwise.

-
- - -
- (BOOL)isScalar
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is scalar (Num, Enum, Int, String), and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isString

- - - -
-

Returns true if the type of this value is a String, and false otherwise.

-
- - -
- (BOOL)isString
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is a String, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isStruct

- - - -
-

Return true if the type of this value is a Struct, and false otherwise.

-
- - -
- (BOOL)isStruct
- - - - - - - - -
-

Discussion

-

Return true if the type of this value is a Struct, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isVoid

- - - -
-

Return true if the type of this value is a Void, and false otherwise.

-
- - -
- (BOOL)isVoid
- - - - - - - - -
-

Discussion

-

Return true if the type of this value is a Void, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

length

- - - - -
- (long)length
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

longValue

- - - - -
- (long long)longValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

max

- - - - -
- (double)max
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

min

- - - - -
- (double)min
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

putData:

- - - - -
- (void)putData:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

reset

- - - - -
- (void)reset
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

select:

- - - - -
- (EMResourceValue *)select:(NSString *)fieldName
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setDoubleValue:

- - - - -
- (void)setDoubleValue:(double)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setLongValue:

- - - - -
- (void)setLongValue:(long long)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setStringValue:

- - - - -
- (void)setStringValue:(NSString *)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

step

- - - - -
- (double)step
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

stringValue

- - - - -
- (NSString *)stringValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMSchema.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMSchema.html deleted file mode 100644 index f6f0914..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMSchema.html +++ /dev/null @@ -1,2251 +0,0 @@ - - - - - EMSchema Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - -
Inherits fromNSObject
Declared inEMSchema.h
EMSchema.m
- - - - -
- -

Overview

-

A set of meta-data describing a set of resources. -Written by Bob Frankel and Carolyn Vaughan

-
- - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - -
- -

Class Methods

- -
- -

schemaFromFile:

- - - -
-

Creates a EMResourceSchema instance from the contents of a file.

-
- - -
+ (EMSchema *)schemaFromFile:(NSString *)fileName
- - -
-

Parameters

- -
-
fileName
-

a file containing JSON content

-
- -
- - - -
-

Return Value

-

a newly created EMResourceSchema instance

-
- - - - - -
-

Discussion

-

Creates a EMResourceSchema instance from the contents of a file.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- - - -
- -

Instance Methods

- -
- -

UUID

- - - -
-

Returns the UUID associated with this schema.

-
- - -
- (NSString *)UUID
- - - - - - - - -
-

Discussion

-

Returns the UUID associated with this schema.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

accessForResource:

- - - -
-

Get the read/write/indicator access capabilities of a named resource

-
- - -
- (EMResourceAccessType)accessForResource:(NSString *)resourceName
- - -
-

Parameters

- -
-
resourceName
-

a valid resource name in this schema

-
- -
- - - -
-

Return Value

-

an NSString containing the characters ‘r’, ‘w’, and ‘i’ as appropriate

-
- - - - - -
-

Discussion

-

Get the read/write/indicator access capabilities of a named resource

-
- - - -
-

Exceptions

- -
-
UsageError
-

the resource name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

alignmentForStandardType:

- - - -
-

Get the alignment of a standard scalar type

-
- - -
- (int)alignmentForStandardType:(NSString *)type
- - -
-

Parameters

- -
-
type
-

a scalar type code

-
- -
- - - -
-

Return Value

-

the alignment in bytes of this standard type

-
- - - - - -
-

Discussion

-

Get the alignment of a standard scalar type

-
- - - -
-

Exceptions

- -
-
UsageError
-

the type code is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

applicationResources

- - - -
-

Returns a sorted NSArray containing all application resource names in this schema

-
- - -
- (NSArray *)applicationResources
- - - - - - - - -
-

Discussion

-

Returns a sorted NSArray containing all application resource names in this schema

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

broadcastResourceName

- - - -
-

Returns the name of the resource that is being broadcast in the advertising packets. Returns nil if none.

-
- - -
- (NSString *)broadcastResourceName
- - - - - - - - -
-

Discussion

-

Returns the name of the resource that is being broadcast in the advertising packets. Returns nil if none.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

buildDate

- - - -
-

Returns the build number associated with this schema as an array of numbers.

-
- - -
- (NSArray *)buildDate
- - - - - - - - -
-

Discussion

-

Returns the build number associated with this schema as an array of numbers.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

byteAlignmentForResource:

- - - -
-

Get the alignment of a named resource

-
- - -
- (int)byteAlignmentForResource:(NSString *)resourceName
- - -
-

Parameters

- -
-
resourceName
-

a named resource in this schema

-
- -
- - - -
-

Return Value

-

the alignment in bytes of this resource

-
- - - - - -
-

Discussion

-

Get the alignment of a named resource

-
- - - -
-

Exceptions

- -
-
UsageError
-

the resource name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

enumValuesForType:

- - - -
-

Get the values associated with an enum type.

-
- - -
- (NSDictionary *)enumValuesForType:(NSString *)type
- - -
-

Parameters

- -
-
type
-

a valid enum type name in this schema

-
- -
- - - -
-

Return Value

-

a NSDictionary containing enum value names and their corresponding ordinal

-
- - - - - -
-

Discussion

-

Get the values associated with an enum type.

-
- - - -
-

Exceptions

- -
-
UsageError
-

the enum type name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

fieldNamesForType:

- - - -
-

Get the names of the fields associated with a struct type.

-
- - -
- (NSArray *)fieldNamesForType:(NSString *)type
- - -
-

Parameters

- -
-
type
-

a valid struct type name in this schema

-
- -
- - - -
-

Return Value

-

a NSArray containing field names

-
- - - - - -
-

Discussion

-

Get the names of the fields associated with a struct type.

-
- - - -
-

Exceptions

- -
-
UsageError
-

the struct type name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

fieldsForType:

- - - -
-

Get the fields associated with a struct type.

-
- - -
- (NSDictionary *)fieldsForType:(NSString *)type
- - -
-

Parameters

- -
-
type
-

a valid struct type name in this schema

-
- -
- - - -
-

Return Value

-

a NSDictionary containing field names and their corresponding type code

-
- - - - - -
-

Discussion

-

Get the fields associated with a struct type.

-
- - - -
-

Exceptions

- -
-
UsageError
-

the struct type name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

idForResource:

- - - -
-

Get the unique id associated with a named resource

-
- - -
- (int)idForResource:(NSString *)resourceName
- - -
-

Parameters

- -
-
resourceName
-

a named resource in this schema

-
- -
- - - -
-

Return Value

-

the corresponding resource id

-
- - - - - -
-

Discussion

-

Get the unique id associated with a named resource

-
- - - -
-

Exceptions

- -
-
UsageError
-

the resource name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

maxResourceSize

- - - -
-

Returns the maximum size in bytes amongst all resource types in this schema.

-
- - -
- (int)maxResourceSize
- - - - - - - - -
-

Discussion

-

Returns the maximum size in bytes amongst all resource types in this schema.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

name

- - - -
-

Returns the fully-qualified name of this schema.

-
- - -
- (NSString *)name
- - - - - - - - -
-

Discussion

-

Returns the fully-qualified name of this schema.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

nameForResourceWithID:

- - - -
-

Get the resource name associated with this resource id

-
- - -
- (NSString *)nameForResourceWithID:(NSInteger)resourceId
- - -
-

Parameters

- -
-
resourceId
-

a resource id

-
- -
- - - -
-

Return Value

-

the corresponding resource name

-
- - - - - -
-

Discussion

-

Get the resource name associated with this resource id

-
- - - -
-

Exceptions

- -
-
UsageError
-

the resource id is invalid

-
- -
- - - -
-

See Also

- -
- - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

newResourceValueForResourceNamed:

- - - -
-

Create a new ResourceValue instance for a named resource.

-
- - -
- (EMResourceValue *)newResourceValueForResourceNamed:(NSString *)resourceName
- - -
-

Parameters

- -
-
resourceName
-

a named resource in this schema

-
- -
- - - -
-

Return Value

-

a newly created EMResourceValue to a value for this resource

-
- - - - - -
-

Discussion

-

Create a new ResourceValue instance for a named resource.

-
- - - -
-

Exceptions

- -
-
UsageError
-

the resource name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

numberParametersForType:

- - - -
-

Get the parameters associated with a number type.

-
- - -
- (NSArray *)numberParametersForType:(NSString *)type
- - -
-

Parameters

- -
-
type
-

a valid number type name in this schema

-
- -
- - - -
-

Return Value

-

a four-element NSArray holding the min, max, step, and prec parameters of this type

-
- - - - - -
-

Discussion

-

Get the parameters associated with a number type.

-
- - - -
-

Exceptions

- -
-
UsageError
-

the number type name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

numericRepresentationForType:

- - - -
-

Get the representation type associated with a number type.

-
- - -
- (NSString *)numericRepresentationForType:(NSString *)type
- - -
-

Parameters

- -
-
type
-

a valid number type name in this schema

-
- -
- - - -
-

Return Value

-

an integral representation type

-
- - - - - -
-

Discussion

-

Get the representation type associated with a number type.

-
- - - -
-

Exceptions

- -
-
UsageError
-

the number type name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

numericalUUID

- - - -
-

Returns the UUID associated with this schema as an array of numbers.

-
- - -
- (NSArray *)numericalUUID
- - - - - - - - -
-

Discussion

-

Returns the UUID associated with this schema as an array of numbers.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

owner

- - - -
-

Returns the owner of the schema definition this schema was created from.

-
- - -
- (NSString *)owner
- - - - - - - - -
-

Discussion

-

Returns the owner of the schema definition this schema was created from.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

protocolLevel

- - - -
-

Returns the protocol level of this schema

-
- - -
- (int)protocolLevel
- - - - - - - - -
-

Discussion

-

Returns the protocol level of this schema

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

resources

- - - -
-

Returns an NSDictionary containing all resource names in this schema and their corresponding type code.

-
- - -
- (NSDictionary *)resources
- - - - - - - - -
-

Discussion

-

Returns an NSDictionary containing all resource names in this schema and their corresponding type code.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

schemaDescription

- - - -
-

Returns the description associated with this schema.

-
- - -
- (NSString *)schemaDescription
- - - - - - - - -
-

Discussion

-

Returns the description associated with this schema.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

schemaHash

- - - -
-

Returns the schema hash associated with this schema as an array of numbers.

-
- - -
- (NSArray *)schemaHash
- - - - - - - - -
-

Discussion

-

Returns the schema hash associated with this schema as an array of numbers.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

sizeForResourceNamed:

- - - -
-

Get the size of a named resource

-
- - -
- (int)sizeForResourceNamed:(NSString *)resourceName
- - -
-

Parameters

- -
-
resourceName
-

a named resource in this schema

-
- -
- - - -
-

Return Value

-

the size in bytes of this resource

-
- - - - - -
-

Discussion

-

Get the size of a named resource

-
- - - -
-

Exceptions

- -
-
UsageError
-

the resource name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

sizeForStandardType:

- - - -
-

Get the size of a standard scalar type

-
- - -
- (int)sizeForStandardType:(NSString *)type
- - -
-

Parameters

- -
-
type
-

a scalar type code

-
- -
- - - -
-

Return Value

-

the size in bytes of this standard type

-
- - - - - -
-

Discussion

-

Get the size of a standard scalar type

-
- - - -
-

Exceptions

- -
-
UsageError
-

the type code is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

stringLengthForType:

- - - -
-

Get the length of this string type.

-
- - -
- (int)stringLengthForType:(NSString *)type
- - -
-

Parameters

- -
-
type
-

a valid string type name in this schema

-
- -
- - - -
-

Return Value

-

the length of this string type

-
- - - - - -
-

Discussion

-

Get the length of this string type.

-
- - - -
-

Exceptions

- -
-
UsageError
-

the string type name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

systemResources

- - - -
-

Returns a sorted NSArray containing all system resource names in this schema

-
- - -
- (NSArray *)systemResources
- - - - - - - - -
-

Discussion

-

Returns a sorted NSArray containing all system resource names in this schema

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

typeOfResourceNamed:

- - - -
-

Get the type of a named resource

-
- - -
- (NSString *)typeOfResourceNamed:(NSString *)resourceName
- - -
-

Parameters

- -
-
resourceName
-

the name of a resource in this schema

-
- -
- - - -
-

Return Value

-

the type code associated with this resource

-
- - - - - -
-

Discussion

-

Get the type of a named resource

-
- - - -
-

Exceptions

- -
-
UsageError
-

the resource name is invalid

-
- -
- - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- -

version

- - - -
-

Returns the version of the schema definition this schema was created from.

-
- - -
- (NSString *)version
- - - - - - - - -
-

Discussion

-

Returns the version of the schema definition this schema was created from.

-
- - - - - - - -
-

Declared In

- EMSchema.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMUIKit.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMUIKit.html deleted file mode 100644 index cf63910..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EMUIKit.html +++ /dev/null @@ -1,299 +0,0 @@ - - - - - EMUIKit Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - -
Inherits fromNSObject
Declared inEMUIKit.h
- - - - - - - - - - - - - - - - - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EnumValue.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EnumValue.html deleted file mode 100644 index d89f813..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/EnumValue.html +++ /dev/null @@ -1,1231 +0,0 @@ - - - - - EnumValue Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
- - - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - - - -
- -

Instance Methods

- -
- -

copyFromResource:

- - - - -
- (void)copyFromResource:(EMResourceValue *)source
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

doubleValue

- - - - -
- (double)doubleValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

enumValues

- - - - -
- (NSArray *)enumValues
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fieldNames

- - - - -
- (NSArray *)fieldNames
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileEof

- - - - -
- (BOOL)fileEof
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileFetch

- - - - -
- (void)fileFetch
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileStore

- - - - -
- (void)fileStore
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

getDataOfSize:fromBuffer:

- - - - -
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

index:

- - - - -
- (EMResourceValue *)index:(int)index
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

initWithName:type:schema:

- - - - -
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

length

- - - - -
- (long)length
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

longValue

- - - - -
- (long long)longValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

max

- - - - -
- (double)max
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

min

- - - - -
- (double)min
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

putData:

- - - - -
- (void)putData:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

reset

- - - - -
- (void)reset
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

select:

- - - - -
- (EMResourceValue *)select:(NSString *)fieldName
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setDoubleValue:

- - - - -
- (void)setDoubleValue:(double)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setLongValue:

- - - - -
- (void)setLongValue:(long long)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setStringValue:

- - - - -
- (void)setStringValue:(NSString *)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

step

- - - - -
- (double)step
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

stringValue

- - - - -
- (NSString *)stringValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/FileValue.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/FileValue.html deleted file mode 100644 index 9867a75..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/FileValue.html +++ /dev/null @@ -1,1231 +0,0 @@ - - - - - FileValue Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
- - - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - - - -
- -

Instance Methods

- -
- -

copyFromResource:

- - - - -
- (void)copyFromResource:(EMResourceValue *)source
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

doubleValue

- - - - -
- (double)doubleValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

enumValues

- - - - -
- (NSArray *)enumValues
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fieldNames

- - - - -
- (NSArray *)fieldNames
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileEof

- - - - -
- (BOOL)fileEof
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileFetch

- - - - -
- (void)fileFetch
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileStore

- - - - -
- (void)fileStore
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

getDataOfSize:fromBuffer:

- - - - -
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

index:

- - - - -
- (EMResourceValue *)index:(int)index
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

initWithName:type:schema:

- - - - -
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

length

- - - - -
- (long)length
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

longValue

- - - - -
- (long long)longValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

max

- - - - -
- (double)max
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

min

- - - - -
- (double)min
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

putData:

- - - - -
- (void)putData:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

reset

- - - - -
- (void)reset
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

select:

- - - - -
- (EMResourceValue *)select:(NSString *)fieldName
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setDoubleValue:

- - - - -
- (void)setDoubleValue:(double)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setLongValue:

- - - - -
- (void)setLongValue:(long long)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setStringValue:

- - - - -
- (void)setStringValue:(NSString *)filePath
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

step

- - - - -
- (double)step
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

stringValue

- - - - -
- (NSString *)stringValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/IntValue.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/IntValue.html deleted file mode 100644 index f14140b..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/IntValue.html +++ /dev/null @@ -1,1231 +0,0 @@ - - - - - IntValue Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
- - - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - - - -
- -

Instance Methods

- -
- -

copyFromResource:

- - - - -
- (void)copyFromResource:(EMResourceValue *)source
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

doubleValue

- - - - -
- (double)doubleValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

enumValues

- - - - -
- (NSArray *)enumValues
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fieldNames

- - - - -
- (NSArray *)fieldNames
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileEof

- - - - -
- (BOOL)fileEof
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileFetch

- - - - -
- (void)fileFetch
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileStore

- - - - -
- (void)fileStore
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

getDataOfSize:fromBuffer:

- - - - -
- (void)getDataOfSize:(int)dataSize fromBuffer:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

index:

- - - - -
- (EMResourceValue *)index:(int)index
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

initWithName:type:schema:

- - - - -
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

length

- - - - -
- (long)length
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

longValue

- - - - -
- (long long)longValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

max

- - - - -
- (double)max
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

min

- - - - -
- (double)min
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

putData:

- - - - -
- (void)putData:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

reset

- - - - -
- (void)reset
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

select:

- - - - -
- (EMResourceValue *)select:(NSString *)fieldName
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setDoubleValue:

- - - - -
- (void)setDoubleValue:(double)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setLongValue:

- - - - -
- (void)setLongValue:(long long)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setStringValue:

- - - - -
- (void)setStringValue:(NSString *)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

step

- - - - -
- (double)step
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

stringValue

- - - - -
- (NSString *)stringValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/NumberValue.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/NumberValue.html deleted file mode 100644 index d0bdc5a..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/NumberValue.html +++ /dev/null @@ -1,1231 +0,0 @@ - - - - - NumberValue Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
- - - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - - - -
- -

Instance Methods

- -
- -

copyFromResource:

- - - - -
- (void)copyFromResource:(EMResourceValue *)source
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

doubleValue

- - - - -
- (double)doubleValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

enumValues

- - - - -
- (NSArray *)enumValues
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fieldNames

- - - - -
- (NSArray *)fieldNames
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileEof

- - - - -
- (BOOL)fileEof
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileFetch

- - - - -
- (void)fileFetch
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileStore

- - - - -
- (void)fileStore
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

getDataOfSize:fromBuffer:

- - - - -
- (void)getDataOfSize:(int)dataSize fromBuffer:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

index:

- - - - -
- (EMResourceValue *)index:(int)index
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

initWithName:type:schema:

- - - - -
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

length

- - - - -
- (long)length
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

longValue

- - - - -
- (long long)longValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

max

- - - - -
- (double)max
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

min

- - - - -
- (double)min
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

putData:

- - - - -
- (void)putData:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

reset

- - - - -
- (void)reset
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

select:

- - - - -
- (EMResourceValue *)select:(NSString *)fieldName
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setDoubleValue:

- - - - -
- (void)setDoubleValue:(double)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setLongValue:

- - - - -
- (void)setLongValue:(long long)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setStringValue:

- - - - -
- (void)setStringValue:(NSString *)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

step

- - - - -
- (double)step
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

stringValue

- - - - -
- (NSString *)stringValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/StringValue.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/StringValue.html deleted file mode 100644 index 3325a2b..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/StringValue.html +++ /dev/null @@ -1,1231 +0,0 @@ - - - - - StringValue Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
- - - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - - - -
- -

Instance Methods

- -
- -

copyFromResource:

- - - - -
- (void)copyFromResource:(EMResourceValue *)source
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

doubleValue

- - - - -
- (double)doubleValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

enumValues

- - - - -
- (NSArray *)enumValues
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fieldNames

- - - - -
- (NSArray *)fieldNames
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileEof

- - - - -
- (BOOL)fileEof
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileFetch

- - - - -
- (void)fileFetch
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileStore

- - - - -
- (void)fileStore
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

getDataOfSize:fromBuffer:

- - - - -
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

index:

- - - - -
- (EMResourceValue *)index:(int)index
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

initWithName:type:schema:

- - - - -
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

length

- - - - -
- (long)length
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

longValue

- - - - -
- (long long)longValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

max

- - - - -
- (double)max
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

min

- - - - -
- (double)min
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

putData:

- - - - -
- (void)putData:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

reset

- - - - -
- (void)reset
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

select:

- - - - -
- (EMResourceValue *)select:(NSString *)fieldName
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setDoubleValue:

- - - - -
- (void)setDoubleValue:(double)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setLongValue:

- - - - -
- (void)setLongValue:(long long)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setStringValue:

- - - - -
- (void)setStringValue:(NSString *)newValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

step

- - - - -
- (double)step
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

stringValue

- - - - -
- (NSString *)stringValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/StructValue.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/StructValue.html deleted file mode 100644 index c1f0feb..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/StructValue.html +++ /dev/null @@ -1,1231 +0,0 @@ - - - - - StructValue Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
- - - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - - - -
- -

Instance Methods

- -
- -

copyFromResource:

- - - - -
- (void)copyFromResource:(EMResourceValue *)source
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

doubleValue

- - - - -
- (double)doubleValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

enumValues

- - - - -
- (NSArray *)enumValues
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fieldNames

- - - - -
- (NSArray *)fieldNames
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileEof

- - - - -
- (BOOL)fileEof
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileFetch

- - - - -
- (void)fileFetch
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileStore

- - - - -
- (void)fileStore
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

getDataOfSize:fromBuffer:

- - - - -
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

index:

- - - - -
- (EMResourceValue *)index:(int)index
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

initWithName:type:schema:

- - - - -
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

length

- - - - -
- (long)length
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

longValue

- - - - -
- (long long)longValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

max

- - - - -
- (double)max
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

min

- - - - -
- (double)min
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

putData:

- - - - -
- (void)putData:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

reset

- - - - -
- (void)reset
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

select:

- - - - -
- (EMResourceValue *)select:(NSString *)fieldName
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setDoubleValue:

- - - - -
- (void)setDoubleValue:(double)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setLongValue:

- - - - -
- (void)setLongValue:(long long)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setStringValue:

- - - - -
- (void)setStringValue:(NSString *)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

step

- - - - -
- (double)step
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

stringValue

- - - - -
- (NSString *)stringValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/VoidValue.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/VoidValue.html deleted file mode 100644 index 6abbc7c..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Classes/VoidValue.html +++ /dev/null @@ -1,1231 +0,0 @@ - - - - - VoidValue Class Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - - - - -
Inherits fromEMResourceValue : NSObject
Conforms toEMResourceValueProtocol
Declared inEMResourceValue.m
- - - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - - - -
- -

Instance Methods

- -
- -

copyFromResource:

- - - - -
- (void)copyFromResource:(EMResourceValue *)source
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

doubleValue

- - - - -
- (double)doubleValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

enumValues

- - - - -
- (NSArray *)enumValues
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fieldNames

- - - - -
- (NSArray *)fieldNames
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileEof

- - - - -
- (BOOL)fileEof
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileFetch

- - - - -
- (void)fileFetch
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileStore

- - - - -
- (void)fileStore
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

getDataOfSize:fromBuffer:

- - - - -
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

index:

- - - - -
- (EMResourceValue *)index:(int)index
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

initWithName:type:schema:

- - - - -
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

length

- - - - -
- (long)length
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

longValue

- - - - -
- (long long)longValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

max

- - - - -
- (double)max
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

min

- - - - -
- (double)min
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

putData:

- - - - -
- (void)putData:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

reset

- - - - -
- (void)reset
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

select:

- - - - -
- (EMResourceValue *)select:(NSString *)fieldName
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setDoubleValue:

- - - - -
- (void)setDoubleValue:(double)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setLongValue:

- - - - -
- (void)setLongValue:(long long)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setStringValue:

- - - - -
- (void)setStringValue:(NSString *)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

step

- - - - -
- (double)step
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

stringValue

- - - - -
- (NSString *)stringValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionDelegate.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionDelegate.html deleted file mode 100644 index 717e7ce..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionDelegate.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - EMConnectionDelegate Protocol Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - -
Conforms toNSObject
Declared inEMConnection.h
- - - - -
- -

Overview

-

@file

-
- - - - - - - - - - - - - - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionType.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionType.html deleted file mode 100644 index 86b4b8d..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionType.html +++ /dev/null @@ -1,1151 +0,0 @@ - - - - - EMConnectionType Protocol Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - -
Conforms toNSObject
Declared inEMConnectionType.h
- - - - -
- -

Overview

-

Abstracts a given protocol for connecting to devices.

-
- - - - - -
- -

Tasks

- - - - - -
    -
  • - -   scanDelegate -

    The delegate for scanning

    -
    - property - required method -
  • - -   connectionDelegate -

    The delegate for connection communication

    -
    - property - required method -
  • - -   schema -

    The schema for connection

    -
    - property - required method -
  • - -   lastReadValue -

    The last read resource value from the device

    -
    - property - required method -
  • - -   connected -

    A boolean indicating whether or not there is a connection with a device.

    -
    - property - required method -
  • - -   signalStrengthFilterClass -

    The class to use for filtering, or smoothin, signal strength values

    -
    - property - required method -
  • - - – deviceType -

    The type of device - this can be set to anything and retreived for printing or examining.

    -
    - - required method -
  • - - – startUpdating -

    Tells the connection to start looking for devices of its type.

    -
    - - required method -
  • - - – stopUpdating -

    Tells the connection to stop looking for devices of its type.

    -
    - - required method -
  • - - – isConnected -

    Returns whether or not there is a connection with a device.

    -
    - - required method -
  • - - – disconnect -

    disconnects the current device.

    -
    - - required method -
  • - - – connectToDevice:connectionDelegate: -

    Establishes a connection with a device

    -
    - - required method -
  • - - – isAvailable -

    YES if available on the current device, NO if unavailable.

    -
    - - required method -
  • - - – fetch: -

    Fetches a resource. Can be retrieved in “lastReadValue”

    -
    - - required method -
  • - - – fetchSystemResource: -

    Fetches a system resource. Can be retrieved in “lastReadValue”.

    -
    - - required method -
  • - - – store: -

    writes a value to a device.

    -
    - - required method -
  • -
- -
- - - - - -
- -

Properties

- -
- -

connected

- - - -
-

A boolean indicating whether or not there is a connection with a device.

-
- - -
@property (nonatomic, readonly, getter=isConnected) BOOL connected
- - - - - - - - -
-

Discussion

-

A boolean indicating whether or not there is a connection with a device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

connectionDelegate

- - - -
-

The delegate for connection communication

-
- - -
@property (nonatomic, unsafe_unretained) id<EMDeviceDelegate> connectionDelegate
- - - - - - - - -
-

Discussion

-

The delegate for connection communication

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

lastReadValue

- - - -
-

The last read resource value from the device

-
- - -
@property (nonatomic, strong) EMResourceValue *lastReadValue
- - - - - - - - -
-

Discussion

-

The last read resource value from the device

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

scanDelegate

- - - -
-

The delegate for scanning

-
- - -
@property (nonatomic, unsafe_unretained) id<EMConnectionTypeScannerDelegate> scanDelegate
- - - - - - - - -
-

Discussion

-

The delegate for scanning

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

schema

- - - -
-

The schema for connection

-
- - -
@property (nonatomic, unsafe_unretained) EMSchema *schema
- - - - - - - - -
-

Discussion

-

The schema for connection

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

signalStrengthFilterClass

- - - -
-

The class to use for filtering, or smoothin, signal strength values

-
- - -
@property (nonatomic, strong) Class<EMSignalStrengthFilter> signalStrengthFilterClass
- - - - - - - - -
-

Discussion

-

The class to use for filtering, or smoothin, signal strength values

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- - - - - -
- -

Instance Methods

- -
- -

connectToDevice:connectionDelegate:

- - - -
-

Establishes a connection with a device

-
- - -
- (void)connectToDevice:(EMDeviceBasicDescription *)device connectionDelegate:(id<EMDeviceDelegate>)connDelegate
- - - - - - - - -
-

Discussion

-

Establishes a connection with a device

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

deviceType

- - - -
-

The type of device - this can be set to anything and retreived for printing or examining.

-
- - -
- (NSString *)deviceType
- - - - - - - - -
-

Discussion

-

The type of device - this can be set to anything and retreived for printing or examining.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

disconnect

- - - -
-

disconnects the current device.

-
- - -
- (void)disconnect
- - - - - - - - -
-

Discussion

-

disconnects the current device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

fetch:

- - - -
-

Fetches a resource. Can be retrieved in “lastReadValue”

-
- - -
- (void)fetch:(id)resourceValue
- - - - - - - - -
-

Discussion

-

Fetches a resource. Can be retrieved in “lastReadValue”

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

fetchSystemResource:

- - - -
-

Fetches a system resource. Can be retrieved in “lastReadValue”.

-
- - -
- (void)fetchSystemResource:(id)resourceValue
- - - - - - - - -
-

Discussion

-

Fetches a system resource. Can be retrieved in “lastReadValue”.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

isAvailable

- - - -
-

YES if available on the current device, NO if unavailable.

-
- - -
- (BOOL)isAvailable
- - - - - - - - -
-

Discussion

-

YES if available on the current device, NO if unavailable.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

isConnected

- - - -
-

Returns whether or not there is a connection with a device.

-
- - -
- (BOOL)isConnected
- - - - - - - - -
-

Discussion

-

Returns whether or not there is a connection with a device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

startUpdating

- - - -
-

Tells the connection to start looking for devices of its type.

-
- - -
- (void)startUpdating
- - - - - - - - -
-

Discussion

-

Tells the connection to start looking for devices of its type.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

stopUpdating

- - - -
-

Tells the connection to stop looking for devices of its type.

-
- - -
- (void)stopUpdating
- - - - - - - - -
-

Discussion

-

Tells the connection to stop looking for devices of its type.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

store:

- - - -
-

writes a value to a device.

-
- - -
- (void)store:(id)resourceValue
- - - - - - - - -
-

Discussion

-

writes a value to a device.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionTypeScannerDelegate.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionTypeScannerDelegate.html deleted file mode 100644 index 85abb49..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMConnectionTypeScannerDelegate.html +++ /dev/null @@ -1,488 +0,0 @@ - - - - - EMConnectionTypeScannerDelegate Protocol Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - -
Conforms toNSObject
Declared inEMConnectionType.h
- - - - -
- -

Overview

-

These methods are sen tto the connection delegate to inform it of devices that come available or go offline.

-
- - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - - - -
- -

Instance Methods

- -
- -

deviceScanner:didFindDevice:

- - - -
-

Tells the delegate a device was found.

-
- - -
- (void)deviceScanner:(id)scanner didFindDevice:(EMDeviceBasicDescription *)device
- - - - - - - - -
-

Discussion

-

Tells the delegate a device was found.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

deviceScanner:didLoseDevice:

- - - -
-

Tells the delegate a device was lost.

-
- - -
- (void)deviceScanner:(id)scanner didLoseDevice:(EMDeviceBasicDescription *)device
- - - - - - - - -
-

Discussion

-

Tells the delegate a device was lost.

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- -

deviceScanner:didUpdateDevice:

- - - -
-

Updates the data for a device description

-
- - -
- (void)deviceScanner:(id)scanner didUpdateDevice:(EMDeviceBasicDescription *)device
- - - - - - - - -
-

Discussion

-

Updates the data for a device description

-
- - - - - - - -
-

Declared In

- EMConnectionType.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMDeviceDelegate.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMDeviceDelegate.html deleted file mode 100644 index 95bc4bc..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMDeviceDelegate.html +++ /dev/null @@ -1,305 +0,0 @@ - - - - - EMDeviceDelegate Protocol Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - - - - -
Conforms toNSObject
Declared inEMConnectionType.h
- - - - -
- -

Overview

-

EMTargetDeviceHandler is implemented by classes interested in manageing connections to devices. By default, this will be the shared instance of EMConnectionManager.

-
- - - - - - - - - - - - - - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMResourceValueProtocol.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMResourceValueProtocol.html deleted file mode 100644 index b4ce878..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/Protocols/EMResourceValueProtocol.html +++ /dev/null @@ -1,1689 +0,0 @@ - - - - - EMResourceValueProtocol Protocol Reference - - - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
- -
-
- - - -
- -
- - - - -
Declared inEMResourceValue.h
- - - - -
- -

Overview

-

A protocol to define the methods that all EMResourceValue subclasses must define.

- -

Written by Carolyn Vaughan

-
- - - - - -
- -

Tasks

- - - - - - - -
- - - - - - - - - -
- -

Instance Methods

- -
- -

copyFromResource:

- - - - -
- (void)copyFromResource:(EMResourceValue *)source
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

doubleValue

- - - - -
- (double)doubleValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

enumValues

- - - - -
- (NSArray *)enumValues
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fieldNames

- - - - -
- (NSArray *)fieldNames
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileEof

- - - - -
- (BOOL)fileEof
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileFetch

- - - - -
- (void)fileFetch
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

fileStore

- - - - -
- (void)fileStore
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

getDataOfSize:fromBuffer:

- - - - -
- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

index:

- - - - -
- (EMResourceValue *)index:(int)index
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

initWithName:type:schema:

- - - - -
- (id)initWithName:(NSString *)theName type:(NSString *)theType schema:(EMSchema *)theResourceSchema
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isArray

- - - -
-

Returns true if the type of this value is an Array, and false otherwise.

-
- - -
- (BOOL)isArray
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is an Array, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isEnum

- - - -
-

Returns true if the type of this value is an Enum, and false otherwise.

-
- - -
- (BOOL)isEnum
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is an Enum, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isFile

- - - -
-

Returns true if the type of this value is a File, and false otherwise.

-
- - -
- (BOOL)isFile
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is a File, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isInt

- - - -
-

Returns true if the type of this value is an Int, and false otherwise.

-
- - -
- (BOOL)isInt
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is an Int, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isNum

- - - -
-

Returns true if the type of this value is a Num, and false otherwise.

-
- - -
- (BOOL)isNum
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is a Num, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isScalar

- - - -
-

Returns true if the type of this value is scalar (Num, Enum, Int, String), and false otherwise.

-
- - -
- (BOOL)isScalar
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is scalar (Num, Enum, Int, String), and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isString

- - - -
-

Returns true if the type of this value is a String, and false otherwise.

-
- - -
- (BOOL)isString
- - - - - - - - -
-

Discussion

-

Returns true if the type of this value is a String, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isStruct

- - - -
-

Return true if the type of this value is a Struct, and false otherwise.

-
- - -
- (BOOL)isStruct
- - - - - - - - -
-

Discussion

-

Return true if the type of this value is a Struct, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

isVoid

- - - -
-

Return true if the type of this value is a Void, and false otherwise.

-
- - -
- (BOOL)isVoid
- - - - - - - - -
-

Discussion

-

Return true if the type of this value is a Void, and false otherwise.

-
- - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

length

- - - - -
- (long)length
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

longValue

- - - - -
- (long long)longValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

max

- - - - -
- (double)max
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

min

- - - - -
- (double)min
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

putData:

- - - - -
- (void)putData:(EMSerialPacket *)buffer
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

reset

- - - - -
- (void)reset
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

select:

- - - - -
- (EMResourceValue *)select:(NSString *)fieldName
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setDoubleValue:

- - - - -
- (void)setDoubleValue:(double)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setLongValue:

- - - - -
- (void)setLongValue:(long long)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

setStringValue:

- - - - -
- (void)setStringValue:(NSString *)value
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

step

- - - - -
- (double)step
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- -

stringValue

- - - - -
- (NSString *)stringValue
- - - - - - - - - - - - - - -
-

Declared In

- EMResourceValue.h
-
- - -
- -
- - -
- - -
-
- - - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/css/styles.css b/DUREX Vendor Control/EmmocoMobileFramework/Docs/css/styles.css deleted file mode 100755 index 7de7ea2..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/css/styles.css +++ /dev/null @@ -1,585 +0,0 @@ - - -body { - font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; - font-size: 13px; - background: #fff url(http://www.emmoco.com/images/bg_page_gradient.jpg) repeat-x 0 0; -} - -#em-wrapper { - width:960px; - margin:0 auto; - background-color: #fff; - overflow: hidden; -} - -article -{ - background-color:#fff; -} - - -code { - font-family: Courier, Consolas, monospace; - font-size: 13px; - color: #666; -} - -pre { - font-family: Courier, Consolas, monospace; - font-size: 13px; - line-height: 18px; - tab-interval: 0.5em; - border: 1px solid #C7CFD5; - background-color: #F1F5F9; - color: #666; - padding: 0.3em 1em; -} - -ul { - list-style-type: square; -} - -li { - margin-bottom: 10px; -} - -a { - text-decoration: none; - color: #36C; -} - -a:hover { - text-decoration: underline; - color: #36C; -} - -h2 { - border-bottom: 1px solid #8391A8; - color: #3C4C6C; - font-size: 187%; - font-weight: normal; - margin-top: 1.75em; - padding-bottom: 2px; -} - -/* @group Common page elements */ - -#top_header { - height: 91px; - left: 0; - min-width: 598px; - - right: 0; - top: 50px; - z-index: 900; - width: 960px; - margin: auto; - clear: both; - margin-bottom: 15px; -} - -#footer { - clear: both; - padding-top: 20px; - text-align: center; -} - -#ccontents, #overview_contents { - border-top: 1px solid #2B334F; - position: absolute; - position:relative; - top: 91px; - left: 0; - right: 0; - bottom: 0; - top: 0; - overflow-x: hidden; - overflow-y: auto; - padding-left: 2em; - padding-right: 2em; - padding-top: 1em; - min-width: 550px; - width: 950px; - margin-left: auto; - margin-right: auto; - left: auto; - clear: both; - padding-left: 10px; - padding-right: 0; -} - -#contents.isShowingTOC { - left: 230px; - left: 130px; - min-width: 320px; - width: 730px; - margin-left: auto; - margin-right: auto; - position:absolute; - position:relative; -} - -.copyright { - font-size: 12px; -} - -.generator { - font-size: 11px; -} - -.main-navigation ul li { - display: inline; - margin-left: 15px; - list-style: none; -} - -.main-navigation { - margin-right: 20px; -} - -.navigation-top { - clear: both; - float: right; - margin-right: 20px; -} - -.navigation-bottom { - clear: both; - float: right; - margin-top: 20px; - margin-bottom: -10px; - margin-right: 20px; -} - -.open > .disclosure { - background-image: url("../img/disclosure_open.png"); -} - -.disclosure { - background: url("../img/disclosure.png") no-repeat scroll 0 0; -} - -.disclosure, .nodisclosure { - display: inline-block; - height: 8px; - margin-right: 5px; - position: relative; - width: 9px; -} - -/* @end */ - -/* @group Header */ - -#top_header #library { - background: url("../img/library_background.png") repeat-x 0 0 #485E78; - background-color: #ccc; - height: 35px; - font-size: 115%; - position:relative; -} - -#top_header #library #libraryTitle { - color: #FFFFFF; - margin-left: 15px; - text-shadow: 0 -1px 0 #485E78; - top: 8px; - position: absolute; -} - -#top_header #library #developerHome { - color: #92979E; - right: 15px; - top: 8px; - position: absolute; -} - -#top_header #library a:hover { - text-decoration: none; -} - -#top_header #title { - background: url("../img/title_background.png") repeat-x 0 0 #8A98A9; - border-bottom: 1px solid #B6B6B6; - height: 25px; - overflow: hidden; - text-align: left; - padding-left: 15px; -} - -#top_header h1 { - font-size: 115%; - font-weight: normal; - margin: 0; - padding: 3px 0 2px; - text-align: center; - text-align: left; - text-shadow: 0 1px 0 #D5D5D5; - white-space: nowrap; -} - -#headerButtons { - background-color: #D8D8D8; - background-image: url("../img/button_bar_background.png"); - border-bottom: 1px solid #EDEDED; - border-top: 1px solid #2B334F; - font-size: 8pt; - height: 28px; - left: 0; - list-style: none outside none; - margin: 0; - overflow: hidden; - padding: 0; - position: absolute; - position: relative; - right: 0; - top: 61px; - top: 0; -} - -#headerButtons li { - background-repeat: no-repeat; - display: inline; - margin-top: 0; - margin-bottom: 0; - padding: 0; -} - -#toc_button button { - border-color: #ACACAC; - border-style: none solid none none; - border-width: 0 1px 0 0; - height: 28px; - margin: 0; - padding-left: 30px; - text-align: left; - width: 230px; -} - -li#jumpto_button { - left: 230px; - margin-left: 0; - position: absolute; - -} - -li#jumpto_button select { - height: 22px; - margin: 5px 2px 0 10px; - max-width: 300px; -} - -/* @end */ - -/* @group Table of contents */ - -#tocContainer.isShowingTOC { - border-right: 1px solid #ACACAC; - display: block; - overflow-x: hidden; - overflow-y: auto; - padding: 0; -} - -#tocContainer { - background-color: #E4EBF7; - border-top: 1px solid #2B334F; - bottom: 0; - display: none; - left: 0; - left: auto; - overflow: hidden; - position: absolute; - top: 91px; - top: 150px; - width: 229px; -} - -#tocContainer > ul#toc { - font-size: 11px; - margin: 0; - padding: 12px 0 18px; - width: 209px; - -moz-user-select: none; - -webkit-user-select: none; - user-select: none; -} - -#tocContainer > ul#toc > li { - margin: 0; - padding: 0 0 7px 30px; - text-indent: -15px; -} - -#tocContainer > ul#toc > li > .sectionName a { - color: #000000; - font-weight: bold; -} - -#tocContainer > ul#toc > li > .sectionName a:hover { - text-decoration: none; -} - -#tocContainer > ul#toc li.children > ul { - display: none; - height: 0; -} - -#tocContainer > ul#toc > li > ul { - margin: 0; - padding: 0; -} - -#tocContainer > ul#toc > li > ul, ul#toc > li > ul > li { - margin-left: 0; - margin-bottom: 0; - padding-left: 15px; -} - -#tocContainer > ul#toc > li ul { - list-style: none; - margin-right: 0; - padding-right: 0; -} - -#tocContainer > ul#toc li.children.open > ul { - display: block; - height: auto; - margin-left: -15px; - padding-left: 0; -} - -#tocContainer > ul#toc > li > ul, ul#toc > li > ul > li { - margin-left: 0; - padding-left: 15px; -} - -#tocContainer li ul li { - margin-top: 0.583em; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; -} - -#tocContainer li ul li span.sectionName { - white-space: normal; -} - -#tocContainer > ul#toc > li > ul > li > .sectionName a { - font-weight: bold; -} - -#tocContainer > ul#toc > li > ul a { - color: #4F4F4F; -} - -/* @end */ - -/* @group Index formatting */ - -.index-title { - font-size: 13px; - font-weight: normal; -} - -.index-column { - float: left; - width: 30%; - min-width: 200px; - font-size: 11px; -} - -.index-column ul { - margin: 8px 0 0 0; - padding: 0; - list-style: none; -} - -.index-column ul li { - margin: 0 0 3px 0; - padding: 0; -} - -.hierarchy-column { - min-width: 400px; -} - -.hierarchy-column ul { - margin: 3px 0 0 15px; -} - -.hierarchy-column ul li { - list-style-type: square; -} - -/* @end */ - -/* @group Common formatting elements */ - -.title { - font-weight: normal; - font-size: 215%; - margin-top:0; -} - -.subtitle { - font-weight: normal; - font-size: 180%; - color: #3C4C6C; - border-bottom: 1px solid #5088C5; -} - -.subsubtitle { - font-weight: normal; - font-size: 145%; - height: 0.7em; -} - -.warning { - border: 1px solid #5088C5; - background-color: #F0F3F7; - margin-bottom: 0.5em; - padding: 0.3em 0.8em; -} - -.bug { - border: 1px solid #000; - background-color: #ffffcc; - margin-bottom: 0.5em; - padding: 0.3em 0.8em; -} - -.deprecated { - color: #F60425; -} - -/* @end */ - -/* @group Common layout */ - -.section { - margin-top: 3em; -} - -/* @end */ - -/* @group Object specification section */ - -.section-specification { - margin-left: 2.5em; - margin-right: 2.5em; - font-size: 12px; -} - -.section-specification table { - border-top: 1px solid #d6e0e5; -} - -.section-specification td { - vertical-align: top; - border-bottom: 1px solid #d6e0e5; - padding: .6em; -} - -.section-specification .specification-title { - font-weight: bold; -} - -/* @end */ - -/* @group Tasks section */ - -.task-list { - list-style-type: none; - padding-left: 0px; -} - -.task-list li { - margin-bottom: 3px; -} - -.task-item-suffix { - color: #996; - font-size: 12px; - font-style: italic; - margin-left: 0.5em; -} - -span.tooltip span.tooltip { - font-size: 1.0em; - display: none; - padding: 0.3em; - border: 1px solid #aaa; - background-color: #fdfec8; - color: #000; - text-align: left; -} - -span.tooltip:hover span.tooltip { - display: block; - position: absolute; - margin-left: 2em; -} - -/* @end */ - -/* @group Method section */ - -.section-method { - margin-top: 2.3em; -} - -.method-title { - margin-bottom: 1.5em; -} - -.method-subtitle { - margin-top: 0.7em; - margin-bottom: 0.2em; -} - -.method-subsection p { - margin-top: 0.4em; - margin-bottom: 0.8em; -} - -.method-declaration { - margin-top:1.182em; - margin-bottom:.909em; -} - -.method-declaration code { - font:14px Courier, Consolas, monospace; - color:#000; -} - -.declaration { - color: #000; -} - -.argument-def { - margin-top: 0.3em; - margin-bottom: 0.3em; -} - -.argument-def dd { - margin-left: 1.25em; -} - -.see-also-section ul { - list-style-type: none; - padding-left: 0px; - margin-top: 0; -} - -.see-also-section li { - margin-bottom: 3px; -} - -.declared-in-ref { - color: #666; -} - -/* @end */ - diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/css/stylesPrint.css b/DUREX Vendor Control/EmmocoMobileFramework/Docs/css/stylesPrint.css deleted file mode 100755 index dc54cd2..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/css/stylesPrint.css +++ /dev/null @@ -1,22 +0,0 @@ - -header { - display: none; -} - -div.main-navigation, div.navigation-top { - display: none; -} - -div#overview_contents, div#contents.isShowingTOC, div#contents { - overflow: visible; - position: relative; - top: 0px; - border: none; - left: 0; -} -#tocContainer.isShowingTOC { - display: none; -} -nav { - display: none; -} \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/hierarchy.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/hierarchy.html deleted file mode 100644 index 999e36e..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/hierarchy.html +++ /dev/null @@ -1,216 +0,0 @@ - - - - - iOS Framework Hierarchy - - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - -
-
-
- - - - - -
-
- - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/button_bar_background.png b/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/button_bar_background.png deleted file mode 100755 index d2cd0d8..0000000 Binary files a/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/button_bar_background.png and /dev/null differ diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/disclosure.png b/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/disclosure.png deleted file mode 100755 index 147198f..0000000 Binary files a/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/disclosure.png and /dev/null differ diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/disclosure_open.png b/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/disclosure_open.png deleted file mode 100755 index ea3842b..0000000 Binary files a/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/disclosure_open.png and /dev/null differ diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/library_background.png b/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/library_background.png deleted file mode 100755 index 8fa6d45..0000000 Binary files a/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/library_background.png and /dev/null differ diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/title_background.png b/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/title_background.png deleted file mode 100755 index 9001dac..0000000 Binary files a/DUREX Vendor Control/EmmocoMobileFramework/Docs/img/title_background.png and /dev/null differ diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Docs/index.html b/DUREX Vendor Control/EmmocoMobileFramework/Docs/index.html deleted file mode 100644 index 60f7122..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Docs/index.html +++ /dev/null @@ -1,209 +0,0 @@ - - - - - iOS Framework Reference - - - - - -
- - -
- - -

- Em-Hub - Wiki - Android Docs - iOS Docs - Support -

- -
- - -
- - - - - - - - -
-
-
- - - - - -
-
-
- - \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMBluetoothLowEnergyConnectionType.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMBluetoothLowEnergyConnectionType.h deleted file mode 100644 index eb427f6..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMBluetoothLowEnergyConnectionType.h +++ /dev/null @@ -1,34 +0,0 @@ -#import -#import "EMConnectionType.h" - -#if TARGET_OS_IPHONE - #import -#else - #import -#endif - - - -/** - * EMBluethoothLowEnergyConnectionType is a concrete EMConnectionType for Bluetooth Low Energy. - * - * If you want the framework to interact with Bluetooth Low Energy devices, add an instance of this class to EMConnectionListManager via the -addConnectionTypeToUpdates: method. - */ - -@interface EMBluetoothLowEnergyConnectionType : NSObject { - -} - -@property (nonatomic) NSTimeInterval scanResetTime; - -/** - * By default, EMBluetoothLowEnergyConnectionType will 'discover' devices that have a schema hash matching a schema in your application bundle. - * Set this flag to 'YES' for an instance of this class to discover all Emmoco BLE devices. - * NOTE: Most applications should not have this enabled. - */ -@property (nonatomic) BOOL discoversAllEmmocoBLEDevices; - -+(CBUUID *)emmocoServiceUUID; -+(CBUUID *)emmocov12ServiceUUID; - -@end diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMChecksum.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMChecksum.h deleted file mode 100644 index fb4d24c..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMChecksum.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// EMChecksum.h -// Emmoco -// -// Created by bob frankel on 8/18/11. -// Copyright 2011 Emmoco, Inc.. All rights reserved. -// - -#import - -@interface EMChecksum : NSObject { - -} - -- (void)addByte:(int)byte; -- (void)clear; -- (int)sum; - -@end diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnection.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnection.h deleted file mode 100644 index b73f2b7..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnection.h +++ /dev/null @@ -1,134 +0,0 @@ - -/** @file */ - -#import -#import "EMSchema.h" -#import "EMConnectionType.h" -#import "EMTypes.h" - -@class EMConnection; - -@protocol EMConnectionDelegate - --(void)connectionDidTimeout:(EMConnection *)connection; --(void)connectionDidDisconnect:(EMConnection *)connection; - -@end - -/** - * The state of the current connection. Use KVO to receive updates on this property and react to changes. - */ - -typedef enum { - EMConnectionStateDisconnected, // Disconnected state, no error - EMConnectionStatePending, // A connection has been started, and is pending completion - EMConnectionStateSchemaNotFound, // The schema for the connection is not in the application bundle - EMConnectionStateInvalidSchemaHash, // The device didn't respond with a valid schema hash - EMConnectionStateConnected, // Connected state, no error - EMConnectionStateDisrupted, // The connection was interrupted - EMConnectionStatePendingForDefaultSchema, // The schema could not be found and the connection is being "forced" with the provided default schema. Note: This state will only occur if you have provided a default schema and told the connection manager to force a connection with it. - EMConnectionStateTimeout // The connection timed out -} EMConnectionState; - -extern NSString * const kEMConnectionDidReceiveIndicatorNotificationName; -extern NSString * const kEMIndicatorResourceKey; -extern NSString * const kEMIndicatorNameKey; -extern NSString * const kEMConnectionErrorDomain; -extern NSString * const kEMIndicatorResourceValueKey; - -@interface EMConnection : NSObject { - @protected - EMSchema *_systemSchema; -} - -/** - * This block will be called when an open connection is closed for any reason - */ -@property (atomic, strong) EMResourceBlock connectionClosedBlock; - -/** - * The timeout interval for a pending connection - */ -@property (atomic) NSTimeInterval connectionAttemptTimeout; - -/** - * The connection delegate. EMConnectionManager will post connect and disconnect delegate messages to this object if it is set. - */ -@property (nonatomic, unsafe_unretained) id connectionDelegate; - - -/** - * The EMDeviceBasicDescription used for conenction - */ -@property (nonatomic, strong) EMDeviceBasicDescription *device; - -/** - * The schema for connection - */ -@property (nonatomic, strong) EMSchema *schema; - - -/** - * Creates a new EMConnection object. - * Actual connection and disconnection to the named target occurs through calls to open and close on this object. - * @param device The basic description of a device - */ -- (id)initWithDevice:(EMDeviceBasicDescription *)device; - -/** - * Creates a new EMTargetConnection object. - * Actual connection and disconnection to the named target occurs through calls to open and close on this object. - * @param device the name of the target device, including one of the pre-defined prefixes - * @param resourceSchema the schema describing the resources available in this connection - */ -- (id)initWithDevice:(EMDeviceBasicDescription *)device schema:(EMSchema*)resourceSchema; - - -/** - * Returns true if connected and false otherwise. - */ -- (BOOL)isConnected; - -/** - * Opens a connection to the @device device property - * @param successBlock A block to call on a successful connect - * @param failBlock A block to call on a failed connect - */ -- (void)openConnectionWithSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock; - -/** - * Cancels the attempt to open this EMTargetConnection, posting the open block with a failed status. - */ -- (void)cancelOpen; - -/** - * Closes the connection - * @param successBlock A block to call on a successful disconnect - * @param failBlock A block to call on a failed disconnect - */ -- (void)closeConnectionWithSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock; - -/** - * Reads a value - * @param resourceName The name of the resource to read - * @param successBlock A block to call on a successful read - * @param failBlock A block to call on a failed read - */ --(void)readValueNamed:(NSString *)resourceName onSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock; - --(void)readSystemValueNamed:(NSString *)resourceName onSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock; - -/** - * Writes a resource to the device - * @param resourceValue The resource value - * @param successBlock A block to call on a successful write - * @param failBlock A block to call on a failed write - */ - --(void)writeResource:(EMResourceValue *)resourceValue onSuccess:(EMResourceBlock)successBlock onFail:(EMFailBlock)failBlock; - -- (NSString*)connectedDeviceSchemaHash; - - -@end - diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionListManager.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionListManager.h deleted file mode 100644 index 7c75f7d..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionListManager.h +++ /dev/null @@ -1,95 +0,0 @@ -#import "EMConnectionType.h" -#import - -/** - * kEMConnectionManagerDidStartUpdating is the name of a notification that is posted when the list manager begins updating, or scanning, for available devices - */ - -extern NSString * const kEMConnectionManagerDidStartUpdating; - -/** - * kEMConnectionManagerDidStopUpdating is the name of a notification that is posted when the list manager stops updating, or scanning, for available devices - */ - -extern NSString * const kEMConnectionManagerDidStopUpdating; - -/** - * EMConnectionListManager is a singleton class used for viewing a list of devices available for interaction. - */ -@interface EMConnectionListManager : NSObject - -/** - * @property devices - * A list of devices that has been discovered as available by the connection list manager - */ -@property (nonatomic, strong, readonly) NSArray *devices; - -/** - * @property filterPredicate - * A filter that allows only devices conforming to the predicate to be visible - */ -@property (nonatomic, strong) NSPredicate *filterPredicate; - -/** - * @property updating - * A boolean value indicating whether or not the connection list manager is actively updating the devices list - */ -@property (nonatomic, getter = isUpdating, readonly) BOOL updating; - -/** - * @property updateRate - * updateRate determines the scan frequency for discovering devices - */ -@property (nonatomic) NSTimeInterval updateRate; - - -/** - * @param automaticallyConnectsToLastDevice - * A boolean value indicating whether or not the connection list manager should automatically connect to the last device it was connected to if it encounters it in a scan. - */ -@property (nonatomic) BOOL automaticallyConnectsToLastDevice; - - -/** - * Use the +sharedManager to get the singleton, shared instance of EMConnectionListManager - */ -+(EMConnectionListManager *)sharedManager; - -/** - * Retrieve a device description for a given unique identifier - * @param name The name of the device - */ - --(EMDeviceBasicDescription *)deviceBasicDescriptionForDeviceNamed:(NSString *)name; - -/** - * Tells the connection list manager to begin actively looking for devices to interact with. - */ --(void)startUpdating; - -/** - * Tells the connection list manager to stop looking for devices to interact with. - */ --(void)stopUpdating; - -/** - * Manually clears out all devices on the connection list manager. - */ --(void)reset; - -/** - * Detect if Bluetooth is available - */ --(BOOL)isBluetoothAvailable; - -/** - * Add your own connection type outside of bluetooth low energy - */ --(void)addConnectionTypeToUpdates:(id)connectionType; - -/** - * Remove your own connection type outside of bluetooth low energy - */ --(void)removeConnectionToFromUpdates:(id)connectionType; - -@end diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionManager.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionManager.h deleted file mode 100644 index 65fb98c..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionManager.h +++ /dev/null @@ -1,167 +0,0 @@ -#import -#import -#import "EMConnection.h" -#import "EMSchema.h" -#import "EMConnectionType.h" - -#ifndef CB_EXTERN_CLASS -#warning "You must include CoreBluetooth in project to use Em-Framework" -#endif - -/** - * A constant for NSUserDefaults that contains the name of the last connected device, if there is one - */ - -extern NSString * const kLastConnectedDevice; - -extern NSString * const kEMConnectionManagerDidUpdateConnectionStateNotificationName; - -/** - * Various types of connection errors. - */ - -typedef enum { - EMConnectionManagerErrorNoSchemaAvailable, - EMConnectionManagerErrorCouldNotDisconnect, - EMConnectionManagerErrorDeviceNotAvailable, -} EMConnectionManagerError; - -extern NSString * const kEMConnectionManagerErrorDomain; - -@class EMTargetDevice; -@class EMConnection; - -/** - * EMConnectionManager is a singleton class for managing a connection with a physical or mock device. - */ - -@interface EMConnectionManager : NSObject - -@property (nonatomic) EMConnectionState connectionState; - -@property (nonatomic, strong) NSURL *defaultSchemaURL; - - -/** - @property backgroundUpdatesEnabled - @description If you set this flag to "YES", the connection manager has the ability to persist while running in the background. By default, the connection manager severs connections when entering the background. - */ -@property (nonatomic) BOOL backgroundUpdatesEnabled; - -/** - * Use the +sharedManager class method to access the application-wide singleton instance of EMConnectionManager. - * Note: Accessing the connection manager in any way other is not recommended. - */ - -+(EMConnectionManager *)sharedManager; - -/** - * Tells the connection manager to connect to a specific device. - * - * @param device An instance of EMDeviceBasicDescription the connection manager should connect to - * @param successBlock The block to run after a successful connection - * @param failBlock The block to run if the connectino fails - * @description The implementation of this method calls connectDevice:timeoutInterval:onSuccess:onFail: with a default time interval of 10 seconds - */ - --(void)connectDevice:(EMDeviceBasicDescription *)device onSuccess:(void(^)(void))successBlock onFail:(void(^)(NSError *error))failBlock; - -/** - * Tells the connection manager to connect to a specific device. - * - * @param device An instance of EMDeviceBasicDescription the connection manager should connect to - * @param timeout The time the connection manager should allow for a successful connection. After the specified time interval passes, the fail block will be called. - * @param successBlock The block to run after a successful connection - * @param failBlock The block to run if the connection fails - * @description The implementation of this method calls connectDevice:timeoutInterval:onSuccess:onFail: with a default time interval of 10 seconds - */ --(void)connectDevice:(EMDeviceBasicDescription *)device timeoutInterval:(NSTimeInterval)timeout onSuccess:(void(^)(void))successBlock onFail:(void(^)(NSError *error))failBlock; - -/** - * Tells the connection manager to disconnect from a specific device - * - * @param successBlock The block to run after a successful disconnection - * @param failBlock The block to run if the disconnection fails. - */ --(void)disconnectWithSuccess:(void(^)(void))successBlock onFail:(void(^)(NSError *error))failBlock; - -/** - * Reads a resource from a connected device - * - * @param resourceName The name of the resource to read. This is the name of the resource in the device's schema. - * @param successBlock The block to call when a read occurs successfully. Connection manager will call this block with the value read. - * @param failBlock The block to call when a read fails. - */ --(void)readResource:(NSString *)resourceName onSuccess:(void(^)(id readValue))successBlock onFail:(void(^)(NSError *error))failBlock; - -/** - * Writes a value to a resource on a connected device - * - * @param resourceValue The value to write to the resource. This should be an instance of NSString, NSData, NSArray, NSNumber, or NSDictionary - * @param resource The name of the resource for writing. This is the name of the resource in the schema. - * @param successBlock The block to call when the write occurs successfully. - * @param failBlock The block to call when the write fails. - */ --(void)writeValue:(id)resourceValue toResource:(NSString *)resource onSuccess:(void(^)(void))successBlock onFail:(void(^)(NSError *error))failBlock; - -/** - * Returns an array of EMDeviceBasicDescription's for the device that is actively connected - */ --(EMDeviceBasicDescription *)connectedDevice; - -/** - * Returns a version of the the schema hash from a connected device's firmware as it appears on em-hub - */ --(NSString *)schemaHashForConnectedDevice; - -/** - * Tells the connection manager where it should look for schemas other than the NSBundle's mainBundle - * - * @param path The path for the directory in which to search - */ --(void)addSchemaSearchForFilesInDirectory:(NSString *)path; - -/** - * Tells the connection manager to no longer look in the specified path for schemas - * - * @param path The path to no longer search - * @description Note: This method will never ignore the current bundle's mainBundle - */ --(void)removeSchemaSearchForFilesInDirectory:(NSString *)path; - -/** - * Forces the connection manager to connect to a device with the default schema - * @param device The device for the forced connection - * @description Use this method with extreme caution. Many undefined behaviors can come from using this method with a schema that isn't an exact match for the specified device. EMConnectionManager uses this method internally. It is very rare that you will need to call this method directly. - */ --(void)forceConnectionWithDefaultSchema:(EMDeviceBasicDescription *)device; - -/** - * Tells EMConnectionManager to update its internal cache of schemas used for connection. - * @description EMConnectionManager uses this method internally. It is very rare taht you will need to call this method directly. - */ --(void)updateInternalSchemaCache; - -/** - * Gives the schema name in the application bundle for a given hash string - * @param hashString A full or partial schema hash string - * @description This method takes either a full hash or partial hash. If any schema begins with 'hash string', the file name in the bundle is returned. Returns nil if no matching schema was found in the bundle. - * If one or more schemas share 'hashString' at the beginning of their hash, the first path will be returned. - */ --(NSString *)schemaFileNameForHashString:(NSString *)hashString; - -/** - * Gets the schema for the connected device. - * @description Returns nil if no device is connected. - */ - --(EMSchema *)schemaForConnectedDevice; - -/** - * Gets the embedded system protocol level from the schema used to connect to the device - * @description This call does not send a message down to the board - the protocol level is pulled directly from the schema that was used to connect to the device. - */ - --(NSNumber *)embeddedSystemProtocolLevel; - -@end diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionType.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionType.h deleted file mode 100644 index c4dc364..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMConnectionType.h +++ /dev/null @@ -1,134 +0,0 @@ -#import -#import "EMSchema.h" -#import "EMDeviceBasicDescription.h" -#import "EMResourceValue.h" -#import "EMSignalStrengthFilter.h" - -/** - * EMTargetDeviceHandler is implemented by classes interested in manageing connections to devices. By default, this will be the shared instance of EMConnectionManager. - */ -@protocol EMDeviceDelegate -- (void)extendConnectTimeout; -- (void)postIndicatorForResource:(EMResourceValue *)indicator; -- (void)operationDone:(int)status; -@end - - -#pragma mark - EMConnectionTypeScannerDelegate Declaration - -/** - * These methods are sen tto the connection delegate to inform it of devices that come available or go offline. - */ - -@protocol EMConnectionTypeScannerDelegate - -/** - * Tells the delegate a device was found. - */ - --(void)deviceScanner:(id)scanner didFindDevice:(EMDeviceBasicDescription *)device; - -/** - * Tells the delegate a device was lost. - */ --(void)deviceScanner:(id)scanner didLoseDevice:(EMDeviceBasicDescription *)device; - - -/** - * Updates the data for a device description - */ --(void)deviceScanner:(id)scanner didUpdateDevice:(EMDeviceBasicDescription *)device; - -@end - -#pragma mark - EMConnectionType Declaration - -/** - * Abstracts a given protocol for connecting to devices. - */ - -@protocol EMConnectionType - -/** - * The delegate for scanning - */ -@property (nonatomic, unsafe_unretained) id scanDelegate; - -/** - * The delegate for connection communication - */ -@property (nonatomic, unsafe_unretained) id connectionDelegate; - -/** - * The schema for connection - */ -@property (nonatomic, unsafe_unretained) EMSchema *schema; - -/** - * The last read resource value from the device - */ -@property (nonatomic, strong) EMResourceValue *lastReadValue; - -/** - * A boolean indicating whether or not there is a connection with a device. - */ -@property (nonatomic, readonly, getter = isConnected) BOOL connected; - -/** - * The class to use for filtering, or smoothin, signal strength values - */ -@property (nonatomic, strong) Class signalStrengthFilterClass; - -/** - * The type of device - this can be set to anything and retreived for printing or examining. - */ --(NSString *)deviceType; - -/** - * Tells the connection to start looking for devices of its type. - */ --(void)startUpdating; - -/** - * Tells the connection to stop looking for devices of its type. - */ --(void)stopUpdating; - -/** - * Returns whether or not there is a connection with a device. - */ --(BOOL)isConnected; - -/** - * disconnects the current device. - * - */ --(void)disconnect; - -/** - * Establishes a connection with a device - */ --(void)connectToDevice:(EMDeviceBasicDescription *)device connectionDelegate:(id)connDelegate; - - -/** - * YES if available on the current device, NO if unavailable. - */ --(BOOL)isAvailable; - -/** - * Fetches a resource. Can be retrieved in "lastReadValue" - */ --(void)fetch:(id)resourceValue; - -/** - * Fetches a system resource. Can be retrieved in "lastReadValue". - */ -- (void)fetchSystemResource:(id)resourceValue; - -/** - * writes a value to a device. - */ --(void)store:(id)resourceValue; -@end - diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMDeviceBasicDescription.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMDeviceBasicDescription.h deleted file mode 100644 index 826f60c..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMDeviceBasicDescription.h +++ /dev/null @@ -1,64 +0,0 @@ -#import "EMSignalStrengthFilter.h" - -@protocol EMConnectionType; - -/** - * EMDeviceBasicDescription is a class used to describe basic device characteristics throughout the entire framework. - * All devices, regardless of connection type, will have these properties. - * - * All classes implementing the EMConnectionType protocol will receive and deliver device information in the form of an EMDeviceBasicDescription. - */ - -@interface EMDeviceBasicDescription : NSObject - -/** - * The name of the device used thoughout the framework. - * Like the unique_identifier, this property needs to be unique. - */ -@property (nonatomic, strong) NSString *name; - -/** - * A concrete EMConnectionType instance that will be used to send messages to the device. - */ -@property (nonatomic, strong) id connectionType; - -/* - * An object that can describe the device to the provided connection type. - * For example, for bluetooth, this might be an instance of CBPeripheral. - */ -@property (nonatomic, strong) id deviceObject; - -/** - * A value between -100 and 0 used to describe signal strength. - */ -@property (nonatomic) float signalStrength; - -/** - * The signal strength filter for smoothing - */ -@property (nonatomic, strong) id signalStrengthFilter; - -/** - Data that was discovered along with the device. - Ex: When dealing with bluetooth, this is the advertising packet data - */ -@property (nonatomic, strong) NSData *advertiseData; - -/** - * An object taken from the advertise data based on the advertise resource in the device's schema - * Possible classes: NSString, NSNumber, NSDictionary, NSArray, NSData - */ -@property (nonatomic, strong) id advertiseObject; - -/** - The first six characters of the device's schema - */ -@property (nonatomic, strong) NSString *shortSchemaHash; - -/** - The name of the schema file in your bundle that relates to this device. - NOTE: Many devices do not broadcast this information. In this case, this property will not be set - */ -@property (nonatomic, strong) NSString *schemaFilePath; - -@end diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMFramework.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMFramework.h deleted file mode 100644 index bd5a435..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMFramework.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// EMFramework.h -// Emmoco -// -// Created by bob frankel on 8/22/11. -// Copyright 2011 Emmoco, Inc.. All rights reserved. -// - -#import -#import "EMConnectionManager.h" -#import "EMConnectionListManager.h" -#import "EMConnection.h" -#import "EMBluetoothLowEnergyConnectionType.h" -#import "EMSchema.h" -#import "EMResourceValue.h" - -#define EMFrameworkProtocol_11 - -#define EMMinFramework @"12" -#define EMMaxFramework @"13" - -#define SIGNAL_STRENGTH_UNAVAILABLE FLT_MIN - -#ifdef DEBUG -#define EMLog(format, ...) NSLog(@"<%@:(%d)> %@", [[NSString stringWithUTF8String:__FILE__] lastPathComponent], __LINE__, [NSString stringWithFormat:(format), ##__VA_ARGS__]) -#else -#define EMLog(format, ...) -#endif \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMRSSIFilter.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMRSSIFilter.h deleted file mode 100644 index 847cd9c..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMRSSIFilter.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// EMRSSIFilter.h -// EMFramework -// -// Created by Dexter Weiss on 8/9/13. -// Copyright (c) 2013 Emmoco. All rights reserved. -// - -#import -#import "EMSignalStrengthFilter.h" - -@interface EMRSSIFilter : NSObject - -+(EMRSSIFilter *)filterWithInitialRSSI:(float)rssi; - --(id)initWithInitialSignalStrengthValue:(float)signalStrengthValue; --(float)addSignalStrengthValue:(float)signalStrengthValue; - -@end diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMResourceValue+CocoaAdditions.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMResourceValue+CocoaAdditions.h deleted file mode 100644 index 7de58f9..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMResourceValue+CocoaAdditions.h +++ /dev/null @@ -1,9 +0,0 @@ -#import "EMResourceValue.h" - -@interface EMResourceValue (CocoaAdditions) - --(void)setNSObjectValue:(id)object; - --(id)NSObjectValue; - -@end diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMResourceValue.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMResourceValue.h deleted file mode 100644 index 44e36c5..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMResourceValue.h +++ /dev/null @@ -1,246 +0,0 @@ -// -// EMResourceValue.h -// Emmoco -// -// Created by bob frankel on 8/8/11. -// Copyright 2011 Emmoco, Inc.. All rights reserved. -// - -#import -#import "EMSerialPacket.h" - -@class EMSchema; -@class EMSerialPacket; -@class EMResourceValue; - -/** - * A protocol to define the methods that all EMResourceValue subclasses must define. - * - * Written by Carolyn Vaughan - */ - -@protocol EMResourceValueProtocol - -/** - * Internal initialization method used by EMResourceValue subclasses - * @param theName the name of this value - * @param theType the type of this value - * @param theResourceSchema the schema associated with this value - * @return this value - */ -- (id)initWithName:(NSString*)theName type:(NSString*)theType schema:(EMSchema*)theResourceSchema; - -/** - * Returns true if the type of this value is an Array, and false otherwise. - */ -- (BOOL)isArray; - -/** - * Returns true if the type of this value is a Num, and false otherwise. - */ -- (BOOL)isNum; - -/** - * Returns true if the type of this value is an Enum, and false otherwise. - */ -- (BOOL)isEnum; - -/** - * Returns true if the type of this value is a File, and false otherwise. - */ -- (BOOL)isFile; - -/** - * Returns true if the type of this value is an Int, and false otherwise. - */ -- (BOOL)isInt; - -/** - * Returns true if the type of this value is a String, and false otherwise. - */ -- (BOOL)isString; - -/** - * Returns true if the type of this value is scalar (Num, Enum, Int, String), and false otherwise. - */ -- (BOOL)isScalar; - -/** - * Return true if the type of this value is a Struct, and false otherwise. - */ -- (BOOL)isStruct; - -/** - * Return true if the type of this value is a Void, and false otherwise. - */ -- (BOOL)isVoid; - -/** - * Used to put the resource's value to the device - * @param buffer the data buffer being sent to the device - * - * The PUT is based on RESTful resourcing - */ -- (void)putData:(EMSerialPacket*)buffer; - -/** - * Used to get the resource's value from the device - * @param buffer the data buffer being received from the device - * @param size the amount of data the buffer holds - * - * The GET is based on RESTful resourcing - */ -- (void)getDataOfSize:(int)size fromBuffer:(EMSerialPacket*)buffer; - -/** - * Assign a double value to a resource. - * @param value the value to be assigned, represented as a double - */ -- (void)setDoubleValue:(double)value; - -/** - * Assign a long value to a resource. For Num and Enum resources, this sets the ordinal value for the resource instead of setting the value directly. - * @param value the value to be assigned, represented as a long - */ -- (void)setLongValue:(long long)value; - -/** - * Assign a string value to a resource. - * @param value the value to be assigned, represented as a String - */ -- (void)setStringValue:(NSString*)value; - -/** - * This ResourceValue, as a double. - * @exception UsageError the type of this value is not a Num - */ -- (double)doubleValue; - -/** - * This ResourceValue, as a long. For Num and Enum resources, this returns the ordinal value for the resource instead of the actual value. - * @exception UsageError the type of this value is not a Scalar - */ -- (long long)longValue; - -/** - * This ResourceValue, as a String. - * @exception UsageError the type of this value is not a Scalar - */ -- (NSString*)stringValue; - -/** - * Assign another resource value's value to this resource value - * @param source the ResourceValue who's value you wish to assign to this EMResourceValue instance - */ -- (void)copyFromResource:(EMResourceValue*)source; - -/** - * Reset this ResourceValue to its initial state upon creation - */ -- (void)reset; - -/** - * The minimum numerical value for this ResourceValue. - */ -- (double)min; - -/** - * The maximum numerical value for this ResourceValue. - */ -- (double)max; - -/** - * The step for this ResourceValue. - */ -- (double)step; - -/** - * The maximum number of distinct values for this ResourceValue. - */ -- (long)length; - -/** - * An array of acceptable enum values for this ResourceValue. - */ -- (NSArray *)enumValues; - -/** - * An array of acceptable field names for this ResourceValue. - */ -- (NSArray *)fieldNames; - -/** - * Select a ResourceValue element from a ResourceValue Array by index - * @param index the element to be selected - * @return the indexed element - */ -- (EMResourceValue*)index:(int)index; - -/** - * Select a ResourceValue element from a ResourceValue Struct by field name - * @param fieldName the element to be selected - * @return the ResourceValue held in the selected field - */ -- (EMResourceValue*)select:(NSString*)fieldName; - -/** - * Return the end-of-file status for this ResourceValue File. For internal use only. - */ -- (BOOL)fileEof; - -/** - * Prepare a local file associated with this ResourceValue File for reading. For internal use only; - d*/ -- (void)fileFetch; - -/** - * Prepare a local file associated with this ResourceValue File for writing. For internal use only; - */ -- (void)fileStore; - --(NSData *)fileData; - -@end - -/** - * A container for different types of resource values. - * Instances of this class are used to hold values for resources whose types is - * either Void, Int, Enum, Num, String, Struct, Array, or File. - * - * See also: - * - * - [EMSchema newResourceValueForResourceNamed:] - * - * Written by Bob Frankel and Carolyn Vaughan - */ -@interface EMResourceValue : NSObject { - -} - -/** - * The name of the resource. - */ -@property(readonly) NSString* name; - -/** - * The resource schema associated with the resource. - */ -@property(readonly) EMSchema* resourceSchema; - -/** - * The type of the resource. - */ -@property(readonly) NSString* type; - -- (int)valueSize; -/** - * Create a EMResourceValue. This method is used internally by the framework. - * @param name the name given to the newly-created value - * @param type the type of the newly-created value - * @param resourceSchema an EMSchema instance - * @return a new EMResourceValue instance - */ -+ (EMResourceValue*)resourceWithName:(NSString*)name ofType:(NSString*)type fromSchema:(EMSchema*)resourceSchema; - -@end - diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSchema.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSchema.h deleted file mode 100644 index e219126..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSchema.h +++ /dev/null @@ -1,237 +0,0 @@ -// -// EMSchema.h -// Emmoco -// -// Created by bob frankel on 8/7/11. -// Copyright 2011 Emmoco, Inc.. All rights reserved. -// - -#import -#import "EMResourceValue.h" - -typedef enum { - EMResourceAccessTypeRead = 1 << 0, - EMResourceAccessTypeWrite = 1 << 1, - EMResourceAccessTypeIndicate = 1 << 2, -} EMResourceAccessType; - -@class EMResourceValue; - -/** - * A set of meta-data describing a set of resources. - * Written by Bob Frankel and Carolyn Vaughan - */ -@interface EMSchema : NSObject { - -} - -/** - * Creates a EMResourceSchema instance from the contents of a file. - * @param fileName a file containing JSON content - * @return a newly created EMResourceSchema instance - */ -+ (EMSchema*)schemaFromFile:(NSString*)fileName; - -/** - * Get the read/write/indicator access capabilities of a named resource - * @param resourceName a valid resource name in this schema - * @return an NSString containing the characters 'r', 'w', and 'i' as appropriate - * @exception UsageError the resource name is invalid - */ -- (EMResourceAccessType)accessForResource:(NSString*)resourceName; - -/** - * Returns a sorted NSArray containing all application resource names in this schema - */ -- (NSArray*)applicationResources; - -/** - * Get the parameters associated with a number type. - * @param type a valid number type name in this schema - * @return a four-element NSArray holding the min, max, step, and prec parameters of this type - * @exception UsageError the number type name is invalid - */ -- (NSArray*)numberParametersForType:(NSString*)type; - -/** -* Get the representation type associated with a number type. -* @param type a valid number type name in this schema -* @return an integral representation type -* @exception UsageError the number type name is invalid -*/ -- (NSString*)numericRepresentationForType:(NSString*)type; - -/** - * Get the values associated with an enum type. - * @param type a valid enum type name in this schema - * @return a NSDictionary containing enum value names and their corresponding ordinal - * @exception UsageError the enum type name is invalid - */ -- (NSDictionary*)enumValuesForType:(NSString*)type; - -/** - * Get the names of the fields associated with a struct type. - * @param type a valid struct type name in this schema - * @return a NSArray containing field names - * @exception UsageError the struct type name is invalid - */ -- (NSArray*)fieldNamesForType:(NSString*)type; - -/** - * Get the fields associated with a struct type. - * @param type a valid struct type name in this schema - * @return a NSDictionary containing field names and their corresponding type code - * @exception UsageError the struct type name is invalid - */ -- (NSDictionary*)fieldsForType:(NSString*)type; - -/** - * Get the length of this string type. - * @param type a valid string type name in this schema - * @return the length of this string type - * @exception UsageError the string type name is invalid - */ -- (int)stringLengthForType:(NSString*)type; - -/** - * Returns the fully-qualified name of this schema. - */ -- (NSString*)name; - -/** - * Returns the protocol level of this schema - */ -- (int)protocolLevel; - -/** - * Returns an NSDictionary containing all resource names in this schema and their corresponding type code. - */ -- (NSDictionary*)resources; - -/** - * Returns the maximum size in bytes amongst all resource types in this schema. - */ -- (int)maxResourceSize; - -/** - * Get the alignment of a named resource - * @param resourceName a named resource in this schema - * @return the alignment in bytes of this resource - * @exception UsageError the resource name is invalid - */ -- (int)byteAlignmentForResource:(NSString*)resourceName; - -/** - * Get the unique id associated with a named resource - * @param resourceName a named resource in this schema - * @return the corresponding resource id - * @exception UsageError the resource name is invalid - */ -- (int)idForResource:(NSString*)resourceName; - -/** - * Get the resource name associated with this resource id - * @param resourceId a resource id - * @return the corresponding resource name - * @exception UsageError the resource id is invalid - * @see idForResource: - */ -- (NSString*)nameForResourceWithID:(NSInteger)resourceId; - -/** - * Get the size of a named resource - * @param resourceName a named resource in this schema - * @return the size in bytes of this resource - * @exception UsageError the resource name is invalid - */ -- (int)sizeForResourceNamed:(NSString*)resourceName; - -/** - * Get the size of a standard scalar type - * @param type a scalar type code - * @return the size in bytes of this standard type - * @exception UsageError the type code is invalid - */ -- (int)sizeForStandardType:(NSString*)type; - -/** - * Get the alignment of a standard scalar type - * @param type a scalar type code - * @return the alignment in bytes of this standard type - * @exception UsageError the type code is invalid - */ -- (int)alignmentForStandardType:(NSString*)type; - -/** - * Returns a sorted NSArray containing all system resource names in this schema - */ -- (NSArray*)systemResources; - -/** - * Get the type of a named resource - * @param resourceName the name of a resource in this schema - * @return the type code associated with this resource - * @exception UsageError the resource name is invalid - */ -- (NSString*)typeOfResourceNamed:(NSString*)resourceName; - -/** - * Returns the owner of the schema definition this schema was created from. - */ -- (NSString*)owner; - -/** - * Returns the version of the schema definition this schema was created from. - */ -- (NSString*)version; - -/** - * Returns the description associated with this schema. - */ -- (NSString*)schemaDescription; - -/** - * Returns the UUID associated with this schema. - */ -- (NSString*)UUID; - -/** - * Returns the UUID associated with this schema as an array of numbers. - */ -- (NSArray *)numericalUUID; - -/** - * Returns the build number associated with this schema as an array of numbers. - */ -- (NSArray *)buildDate; - -/** - * Returns the schema hash associated with this schema as an array of numbers. - */ -- (NSArray *)schemaHash; - -/** - * Returns the name of the resource that is being broadcast in the advertising packets. Returns nil if none. - */ --(NSString *)broadcastResourceName; - -/** - * Create a new ResourceValue instance for a named resource. - * @param resourceName a named resource in this schema - * @return a newly created EMResourceValue to a value for this resource - * @exception UsageError the resource name is invalid - */ -- (EMResourceValue*)newResourceValueForResourceNamed:(NSString*)resourceName; - -/* - * TODO - fill in this documentation - */ -- (BOOL)validateResourceNamed:(NSString*)resourceName withAccess:(EMResourceAccessType)access; - --(NSNumber *)embeddedProtocolNumber; - --(int)packedSizeForType:(NSString*)type; --(int)unpackedSizeForType:(NSString*)type; --(NSArray *)fieldPackingsForType:(NSString*)type; - -@end diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSerialPacket.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSerialPacket.h deleted file mode 100644 index 4e10fbf..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSerialPacket.h +++ /dev/null @@ -1,46 +0,0 @@ -// -// EMSerialPacket.h -// Emmoco -// -// Created by bob frankel on 8/18/11. -// Copyright 2011 Emmoco, Inc.. All rights reserved. -// - -#import -#import "EMSchema.h" -#import "EMChecksum.h" - -@class EMSchema; - -#define EM_MAX_DATA_SIZE 240 -#define EM_HEADER_SIZE 4 - -enum { - EMSerialPacket_NOP = 1 << 0, - EMSerialPacket_FETCH = 1 << 1, - EMSerialPacket_FETCH_DONE = 1 << 2, - EMSerialPacket_STORE = 1 << 3, - EMSerialPacket_STORE_DONE = 1 << 4, - EMSerialPacket_INDICATOR = 1 << 5 -}; -typedef NSUInteger EMSerialPacketKind; - -typedef struct EMSerialPacketHeader { - int size; - EMSerialPacketKind kind; - int resourceId; -} EMSerialPacketHeader; - -@interface EMSerialPacket : NSObject { - -} - -@property(readonly) uint8_t* buffer; -@property(readonly) int length; - -- (void)addInteger:(long long)anInt forByteSize:(int)size; -- (void)alignTo:(int)align; -- (void)rewind; -- (long long)scanIntegerForByteSize:(int)size asUnsigned:(BOOL)isUnsigned; - -@end diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSignalStrengthFilter.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSignalStrengthFilter.h deleted file mode 100644 index 241d8fc..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMSignalStrengthFilter.h +++ /dev/null @@ -1,16 +0,0 @@ -// -// EMSignalStrengthFilter.h -// EMFramework -// -// Created by Dexter Weiss on 8/9/13. -// Copyright (c) 2013 Emmoco. All rights reserved. -// - -#import - -@protocol EMSignalStrengthFilter - --(id)initWithInitialSignalStrengthValue:(float)signalStrengthValue; --(float)addSignalStrengthValue:(float)signalStrengthValue; - -@end diff --git a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMTypes.h b/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMTypes.h deleted file mode 100644 index 9aa20fb..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/Headers/EMTypes.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// EMDevice.h -// Emmoco -// -// Copyright 2012 Emmoco, Inc.. All rights reserved. -// - -typedef enum { - EMOperationStatusSuccess, - EMOperationStatusFailure -} EMOperationStatus; - -/* - * Block type used to doing callbacks to user programs. User programs define callbacks conforming to this - * block signature and the framework calls them back suppling status value and data object - */ -typedef void(^EMResourceBlock)(EMOperationStatus status, EMResourceValue *value); - -typedef void(^EMStatusBlock)(EMOperationStatus status); - -typedef void(^EMFailBlock)(NSError *error); \ No newline at end of file diff --git a/DUREX Vendor Control/EmmocoMobileFramework/README.md b/DUREX Vendor Control/EmmocoMobileFramework/README.md deleted file mode 100644 index a2ec505..0000000 --- a/DUREX Vendor Control/EmmocoMobileFramework/README.md +++ /dev/null @@ -1,18 +0,0 @@ -# Adding EMFramework to your project -================== -### Library dependencies -1) libEMFramework.a -2) CoreBluetooth.framework - -================== - -### Add the headers to your project - -All headers found in the `EmmocoMobileFramework/Headers` folder should be included. - -================== - -### Add Schemas to your project - -Add the system.json file from the Assets/ directory into your application bundle. - diff --git a/DUREX Vendor Control/FirstAppExample/BT Vendor-Info.plist b/DUREX Vendor Control/FirstAppExample/BT Vendor-Info.plist deleted file mode 100644 index c2dd093..0000000 --- a/DUREX Vendor Control/FirstAppExample/BT Vendor-Info.plist +++ /dev/null @@ -1,82 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ${PRODUCT_NAME} - CFBundleDocumentTypes - - - CFBundleTypeIconFiles - - CFBundleTypeName - BT Vendor batch command file - CFBundleTypeRole - Editor - LSHandlerRank - Owner - LSItemContentTypes - - com.emmoco.BT-Vendor.batchfile - - - - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - com.emmoco.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - LSRequiresIPhoneOS - - UIMainStoryboardFile - MainStoryboard - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UTExportedTypeDeclarations - - - UTTypeConformsTo - - public.data - - UTTypeDescription - BT Vendor batch command file - UTTypeIdentifier - com.emmoco.BT-Vendor.batchfile - UTTypeTagSpecification - - public.filename-extension - - btvb - - public.mime-type - - application/btvendor - - - - - - diff --git a/DUREX Vendor Control/FirstAppExample/BT Vendor-Prefix.pch b/DUREX Vendor Control/FirstAppExample/BT Vendor-Prefix.pch deleted file mode 100644 index 743435c..0000000 --- a/DUREX Vendor Control/FirstAppExample/BT Vendor-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/DUREX Vendor Control/FirstAppExample/BTAppDelegate.h b/DUREX Vendor Control/FirstAppExample/BTAppDelegate.h deleted file mode 100644 index 13b3d26..0000000 --- a/DUREX Vendor Control/FirstAppExample/BTAppDelegate.h +++ /dev/null @@ -1,20 +0,0 @@ -// -// DUREXAppDelegate.h -// TestAppExample -// -// Created by Dexter Weiss on 10/10/13. -// Copyright (c) 2013 Emmoco. All rights reserved. -// - -#import - -@interface BTAppDelegate : UIResponder - -@property (strong, nonatomic) UIWindow *window; -@property (nonatomic, strong) IBOutlet UINavigationController *navController; -@property (strong, nonatomic) NSURL *handledURL; -@property (strong,nonatomic) NSString *currentVersion; - - - -@end diff --git a/DUREX Vendor Control/FirstAppExample/BTAppDelegate.m b/DUREX Vendor Control/FirstAppExample/BTAppDelegate.m deleted file mode 100644 index e11f3a7..0000000 --- a/DUREX Vendor Control/FirstAppExample/BTAppDelegate.m +++ /dev/null @@ -1,101 +0,0 @@ -// -// DUREXAppDelegate.m -// TestAppExample -// -// Created by Dexter Weiss on 10/10/13. -// Copyright (c) 2013 Emmoco. All rights reserved. -// - -#import "BTAppDelegate.h" -#import "EMFramework.h" -#import "EMDevicePickerViewController.h" -#import "MenuTableViewController.h" - -@interface BTAppDelegate () -{ - -} - -@end - -@implementation BTAppDelegate - -- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions -{ - UINavigationController *navController = (UINavigationController *)[[self window] rootViewController]; - [self setNavController:navController]; - [[self navController] setDelegate:self]; - - [[EMConnectionListManager sharedManager] startUpdating]; - - self.handledURL = nil; - self.currentVersion = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleShortVersionString"]; - return YES; -} - -- (void)applicationWillResignActive:(UIApplication *)application -{ - // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. - // Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game. -} - -- (void)applicationDidEnterBackground:(UIApplication *)application -{ - // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. - // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. -} - -- (void)applicationWillEnterForeground:(UIApplication *)application -{ - [[EMConnectionListManager sharedManager] startUpdating]; -} - -- (void)applicationDidBecomeActive:(UIApplication *)application -{ - // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. -} - -- (void)applicationWillTerminate:(UIApplication *)application -{ - // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. -} - -#pragma mark - Navigation Controller - -- (void)navigationController:(UINavigationController *)navigationController didShowViewController:(UIViewController *)viewController animated:(BOOL)animated -{ - if ([viewController isKindOfClass:[EMDevicePickerViewController class]]) - { - [[EMConnectionManager sharedManager] disconnectWithSuccess:^ - { - - } - onFail:^(NSError *error) - { - - } - ]; - } -} - -- (BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url -{ - NSLog(@"[DUREXAppDelegate.m]: Handling URL %@",url); - if ([self.navController.topViewController isKindOfClass:[MenuTableViewController class]]) - { - MenuTableViewController *viewController = (MenuTableViewController*) self.navController.topViewController; - if (url != nil && [url isFileURL]) - { - NSLog(@"[DUREXAppDelegate.m]: Pushing URL to MenuTableViewController..."); - [viewController handleOpenURL:url]; - } - } - else - { - NSLog(@"[DUREXAppDelegate.m]: Storing handled URL..."); - self.handledURL = url; - } - return YES; -} - -@end diff --git a/DUREX Vendor Control/FirstAppExample/Base.lproj/EMConnectingView.xib b/DUREX Vendor Control/FirstAppExample/Base.lproj/EMConnectingView.xib deleted file mode 100644 index c6ced56..0000000 --- a/DUREX Vendor Control/FirstAppExample/Base.lproj/EMConnectingView.xib +++ /dev/null @@ -1,50 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/FirstAppExample/Base.lproj/MainStoryboard.storyboard b/DUREX Vendor Control/FirstAppExample/Base.lproj/MainStoryboard.storyboard deleted file mode 100644 index 4c52fae..0000000 --- a/DUREX Vendor Control/FirstAppExample/Base.lproj/MainStoryboard.storyboard +++ /dev/null @@ -1,294 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/DUREX Vendor Control/FirstAppExample/DUREXAppViewController.h b/DUREX Vendor Control/FirstAppExample/DUREXAppViewController.h deleted file mode 100644 index a729ea2..0000000 --- a/DUREX Vendor Control/FirstAppExample/DUREXAppViewController.h +++ /dev/null @@ -1,8 +0,0 @@ -#import - - -@interface DUREXAppViewController : UITableViewController - - - -@end diff --git a/DUREX Vendor Control/FirstAppExample/DUREXAppViewController.m b/DUREX Vendor Control/FirstAppExample/DUREXAppViewController.m deleted file mode 100644 index 05c3af0..0000000 --- a/DUREX Vendor Control/FirstAppExample/DUREXAppViewController.m +++ /dev/null @@ -1,80 +0,0 @@ -#import "DUREXAppViewController.h" -#import "EMFramework.h" -#import "CommunicationProtocol.h" - -@interface DUREXAppViewController () -{ - IBOutlet UIActivityIndicatorView *_activityIndicator; - NSTimer *_writeTimer; -} -@property (nonatomic,strong) CommunicationProtocol* protocol; - -@end - -@implementation DUREXAppViewController - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) - { - // Custom initialization - } - return self; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - [_activityIndicator setHidden:YES]; - [self setTitle:@"DUREX Vendor Control"]; - _protocol = [CommunicationProtocol sharedProtocol]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveNotification:) name:kEMConnectionDidReceiveIndicatorNotificationName object:nil]; - [[EMConnectionManager sharedManager] addObserver:self forKeyPath:@"connectionState" options:0 context:NULL]; - [_protocol setMessageAvailable:false]; -} - --(void)didReceiveNotification:(NSNotification*) notification -{ - id notificationValue = [[notification userInfo] objectForKey:kEMIndicatorResourceValueKey]; - NSString *resourceName = [[notification userInfo] objectForKey:kEMIndicatorNameKey]; - if([resourceName isEqualToString:@"messageAvailable"]) - { - NSString *resourceValue = [notificationValue stringValue]; - if([resourceValue isEqualToString:@"TRUE"]) - { - [_protocol setMessageAvailable:TRUE]; - } - else - { - [_protocol setMessageAvailable:FALSE]; - } - } -} - --(void)dealloc -{ - [[EMConnectionManager sharedManager] removeObserver:self forKeyPath:@"connectionState"]; - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - --(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context -{ - if (object == [EMConnectionManager sharedManager]) - { - if ([keyPath isEqualToString:@"connectionState"]) - { - if ([[EMConnectionManager sharedManager] connectionState] == EMConnectionStateDisrupted) - { - [[self navigationController] popToRootViewControllerAnimated:YES]; - } - } - } -} - -#pragma mark - Interface actions - - - - -@end \ No newline at end of file diff --git a/DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.h b/DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.h deleted file mode 100644 index 6caaba7..0000000 --- a/DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.h +++ /dev/null @@ -1,13 +0,0 @@ -// -// EMDevicePickerViewController.h -// TestAppExample -// -// Created by Dexter Weiss on 10/10/13. -// Copyright (c) 2013 Emmoco. All rights reserved. -// - -#import - -@interface EMDevicePickerViewController : UITableViewController - -@end diff --git a/DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.m b/DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.m deleted file mode 100644 index 6f5ec4f..0000000 --- a/DUREX Vendor Control/FirstAppExample/EMDevicePickerViewController.m +++ /dev/null @@ -1,144 +0,0 @@ -// -// EMDevicePickerViewController.m -// TestAppExample -// -// Created by Dexter Weiss on 10/10/13. -// Copyright (c) 2013 Emmoco. All rights reserved. -// - -#import "EMDevicePickerViewController.h" -#import "EMFramework.h" -#import - -@interface EMDevicePickerViewController () - -@property (nonatomic, strong) IBOutlet UIView *connectingView; -@property (nonatomic, strong) IBOutlet UIActivityIndicatorView *activityIndicator; -@property (nonatomic, strong) IBOutlet UIView *popoverView; - -@end - -@implementation EMDevicePickerViewController - - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) - { - // Custom initialization - } - return self; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - [[EMConnectionManager sharedManager] setBackgroundUpdatesEnabled:TRUE]; - [[EMConnectionListManager sharedManager] addObserver:self forKeyPath:@"devices" options:0 context:NULL]; -} - --(void)_showConnectingView -{ - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - [[NSBundle mainBundle] loadNibNamed:@"EMConnectingView_iPad_Landscape" owner:self options:nil]; - } - else - { - [[NSBundle mainBundle] loadNibNamed:@"EMConnectingView_iPad" owner:self options:nil]; - } - } - else - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - [[NSBundle mainBundle] loadNibNamed:@"EMConnectingView" owner:self options:nil]; - } - else - { - [[NSBundle mainBundle] loadNibNamed:@"EMConnectingView_Landscape" owner:self options:nil]; - } - } - [[[self popoverView] layer] setCornerRadius:10.0f]; - [[self view] addSubview:[self connectingView]]; - [[self activityIndicator] startAnimating]; -} - --(void)_hideConnectingView -{ - [[self activityIndicator] stopAnimating]; - [[self connectingView] removeFromSuperview]; -} - --(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context -{ - if (object == [EMConnectionListManager sharedManager]) - { - [[self tableView] reloadData]; - } -} - -#pragma mark - Table View Methods - --(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView -{ - return 1; -} - --(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section -{ - return MAX([[[EMConnectionListManager sharedManager] devices] count], 1); -} - --(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath -{ - UITableViewCell *deviceCell = [tableView dequeueReusableCellWithIdentifier:@"DeviceCell"]; - [[deviceCell detailTextLabel] setTextColor:[UIColor darkGrayColor]]; - - EMDeviceBasicDescription *description = nil; - if ([indexPath row] < [[[EMConnectionListManager sharedManager] devices] count]) - { - description = [[[EMConnectionListManager sharedManager] devices] objectAtIndex:[indexPath row]]; - } - - if (description) - { - [[deviceCell textLabel] setText:[description name]]; - [[deviceCell detailTextLabel] setText:[NSString stringWithFormat:NSLocalizedString(@"Signal Strength: %0.0f",nil), [description signalStrength]]]; - } - else - { - [[deviceCell textLabel] setText:NSLocalizedString(@"Searching for devices...", @"No devices found string")]; - [[deviceCell detailTextLabel] setText:nil]; - } - - return deviceCell; -} - --(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - [self performSegueWithIdentifier:@"ConnectionSegue" sender:self]; - if(![[[[tableView cellForRowAtIndexPath:indexPath] textLabel] text] isEqualToString:NSLocalizedString(@"Searching for devices...",nil)]) - { - [self _showConnectingView]; - EMDeviceBasicDescription *description = [[[EMConnectionListManager sharedManager] devices] objectAtIndex:[indexPath row]]; - [[EMConnectionManager sharedManager] connectDevice:description onSuccess:^ - { - [self _hideConnectingView]; - [self performSegueWithIdentifier:@"ConnectionSegue" sender:self]; - } - onFail:^(NSError *error) - { - [self _hideConnectingView]; - UIAlertView *alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Connection Failed", @"Alert title") message:NSLocalizedString(@"An error occurred while trying to connect to the selected device", @"Alert message") delegate:nil cancelButtonTitle:NSLocalizedString(@"Close", @"Close button") otherButtonTitles:nil]; - [alert show]; - } - ]; - } - [tableView deselectRowAtIndexPath:indexPath animated:YES]; -} - -@end diff --git a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/29 - App Icon_2x.png b/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/29 - App Icon_2x.png deleted file mode 100644 index b21e3ee..0000000 Binary files a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/29 - App Icon_2x.png and /dev/null differ diff --git a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/40 - App Icon_2x.png b/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/40 - App Icon_2x.png deleted file mode 100644 index afa08ea..0000000 Binary files a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/40 - App Icon_2x.png and /dev/null differ diff --git a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/60 - App Icon_2x.png b/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/60 - App Icon_2x.png deleted file mode 100644 index 40c2e1d..0000000 Binary files a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/60 - App Icon_2x.png and /dev/null differ diff --git a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_1x.png b/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_1x.png deleted file mode 100644 index 3185ed8..0000000 Binary files a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_1x.png and /dev/null differ diff --git a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_2x.png b/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_2x.png deleted file mode 100644 index 162af87..0000000 Binary files a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/76 - App Icon_2x.png and /dev/null differ diff --git a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/Contents.json b/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 406ab94..0000000 --- a/DUREX Vendor Control/FirstAppExample/Images.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,93 +0,0 @@ -{ - "images" : [ - { - "idiom" : "iphone", - "size" : "29x29", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "29 - App Icon_2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "40 - App Icon_2x.png", - "scale" : "2x" - }, - { - "idiom" : "iphone", - "size" : "57x57", - "scale" : "1x" - }, - { - "idiom" : "iphone", - "size" : "57x57", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "60 - App Icon_2x.png", - "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" : "50x50", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "50x50", - "scale" : "2x" - }, - { - "idiom" : "ipad", - "size" : "72x72", - "scale" : "1x" - }, - { - "idiom" : "ipad", - "size" : "72x72", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "76 - App Icon_1x.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "76 - App Icon_2x.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/DUREX Vendor Control/FirstAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json b/DUREX Vendor Control/FirstAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json deleted file mode 100644 index c79ebd3..0000000 --- a/DUREX Vendor Control/FirstAppExample/Images.xcassets/LaunchImage.launchimage/Contents.json +++ /dev/null @@ -1,23 +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" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/DUREX Vendor Control/FirstAppExample/en.lproj/EMConnectingView.strings b/DUREX Vendor Control/FirstAppExample/en.lproj/EMConnectingView.strings deleted file mode 100644 index 9388121..0000000 --- a/DUREX Vendor Control/FirstAppExample/en.lproj/EMConnectingView.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "vOa-V6-aku"; */ -"vOa-V6-aku.text" = "Connecting to device"; diff --git a/DUREX Vendor Control/FirstAppExample/en.lproj/MainStoryboard.strings b/DUREX Vendor Control/FirstAppExample/en.lproj/MainStoryboard.strings deleted file mode 100644 index 7b6aa31..0000000 --- a/DUREX Vendor Control/FirstAppExample/en.lproj/MainStoryboard.strings +++ /dev/null @@ -1,24 +0,0 @@ - -/* Class = "IBUILabel"; text = "Subtitle"; ObjectID = "0cU-st-98u"; */ -"0cU-st-98u.text" = "Subtitle"; - -/* Class = "IBUILabel"; text = "Detail"; ObjectID = "2Zv-NQ-q8W"; */ -"2Zv-NQ-q8W.text" = "Detail"; - -/* Class = "IBUINavigationItem"; title = "Connected to: "; ObjectID = "2rA-9H-FRE"; */ -"2rA-9H-FRE.title" = "Connected to: "; - -/* Class = "IBUILabel"; text = "Title"; ObjectID = "C5J-Ml-IpR"; */ -"C5J-Ml-IpR.text" = "Title"; - -/* Class = "IBUILabel"; text = "Title"; ObjectID = "W3U-nk-SlV"; */ -"W3U-nk-SlV.text" = "Title"; - -/* Class = "IBUINavigationItem"; title = "Select device"; ObjectID = "exc-MP-jDa"; */ -"exc-MP-jDa.title" = "Select device"; - -/* Class = "IBUILabel"; text = "Title"; ObjectID = "iCG-eW-H8x"; */ -"iCG-eW-H8x.text" = "Title"; - -/* Class = "IBUILabel"; text = "Connect to Device"; ObjectID = "oyW-sA-Lfb"; */ -"oyW-sA-Lfb.text" = "Connect to Device"; diff --git a/DUREX Vendor Control/FirstAppExample/es.lproj/EMConnectingView.strings b/DUREX Vendor Control/FirstAppExample/es.lproj/EMConnectingView.strings deleted file mode 100644 index aed6276..0000000 --- a/DUREX Vendor Control/FirstAppExample/es.lproj/EMConnectingView.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "vOa-V6-aku"; */ -"vOa-V6-aku.text" = "Realizando conexión"; diff --git a/DUREX Vendor Control/FirstAppExample/es.lproj/MainStoryboard.strings b/DUREX Vendor Control/FirstAppExample/es.lproj/MainStoryboard.strings deleted file mode 100644 index c0e62f7..0000000 --- a/DUREX Vendor Control/FirstAppExample/es.lproj/MainStoryboard.strings +++ /dev/null @@ -1,24 +0,0 @@ - -/* Class = "IBUILabel"; text = "Subtitle"; ObjectID = "0cU-st-98u"; */ -"0cU-st-98u.text" = "Subtitle"; - -/* Class = "IBUILabel"; text = "Detail"; ObjectID = "2Zv-NQ-q8W"; */ -"2Zv-NQ-q8W.text" = "Detail"; - -/* Class = "IBUINavigationItem"; title = "Connected to: "; ObjectID = "2rA-9H-FRE"; */ -"2rA-9H-FRE.title" = "Conectado a: "; - -/* Class = "IBUILabel"; text = "Title"; ObjectID = "C5J-Ml-IpR"; */ -"C5J-Ml-IpR.text" = "Title"; - -/* Class = "IBUILabel"; text = "Title"; ObjectID = "W3U-nk-SlV"; */ -"W3U-nk-SlV.text" = "Title"; - -/* Class = "IBUINavigationItem"; title = "Select device"; ObjectID = "exc-MP-jDa"; */ -"exc-MP-jDa.title" = "Seleccione el dispositivo"; - -/* Class = "IBUILabel"; text = "Title"; ObjectID = "iCG-eW-H8x"; */ -"iCG-eW-H8x.text" = "Title"; - -/* Class = "IBUILabel"; text = "Connect to Device"; ObjectID = "oyW-sA-Lfb"; */ -"oyW-sA-Lfb.text" = "Conectarse al dispositivo"; diff --git a/DUREX Vendor Control/FirstAppExample/main.m b/DUREX Vendor Control/FirstAppExample/main.m deleted file mode 100644 index 15aca4e..0000000 --- a/DUREX Vendor Control/FirstAppExample/main.m +++ /dev/null @@ -1,18 +0,0 @@ -// -// main.m -// TestAppExample -// -// Created by Dexter Weiss on 10/10/13. -// Copyright (c) 2013 Emmoco. All rights reserved. -// - -#import - -#import "BTAppDelegate.h" - -int main(int argc, char * argv[]) -{ - @autoreleasepool { - return UIApplicationMain(argc, argv, nil, NSStringFromClass([BTAppDelegate class])); - } -} diff --git a/DUREX Vendor Control/FirstAppExampleTests/FirstAppTests-Info.plist b/DUREX Vendor Control/FirstAppExampleTests/FirstAppTests-Info.plist deleted file mode 100644 index b906695..0000000 --- a/DUREX Vendor Control/FirstAppExampleTests/FirstAppTests-Info.plist +++ /dev/null @@ -1,22 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleIdentifier - com.emmoco.${PRODUCT_NAME:rfc1034identifier} - CFBundleInfoDictionaryVersion - 6.0 - CFBundlePackageType - BNDL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1 - - diff --git a/DUREX Vendor Control/FirstAppExampleTests/TestAppExampleTests.m b/DUREX Vendor Control/FirstAppExampleTests/TestAppExampleTests.m deleted file mode 100644 index 334ae3f..0000000 --- a/DUREX Vendor Control/FirstAppExampleTests/TestAppExampleTests.m +++ /dev/null @@ -1,34 +0,0 @@ -// -// TestAppExampleTests.m -// TestAppExampleTests -// -// Created by Dexter Weiss on 10/10/13. -// Copyright (c) 2013 Emmoco. All rights reserved. -// - -#import - -@interface TestAppExampleTests : XCTestCase - -@end - -@implementation TestAppExampleTests - -- (void)setUp -{ - [super setUp]; - // Put setup code here. This method is called before the invocation of each test method in the class. -} - -- (void)tearDown -{ - // Put teardown code here. This method is called after the invocation of each test method in the class. - [super tearDown]; -} - -- (void)testExample -{ - XCTFail(@"No implementation for \"%s\"", __PRETTY_FUNCTION__); -} - -@end diff --git a/DUREX Vendor Control/FirstAppExampleTests/en.lproj/InfoPlist.strings b/DUREX Vendor Control/FirstAppExampleTests/en.lproj/InfoPlist.strings deleted file mode 100644 index 477b28f..0000000 --- a/DUREX Vendor Control/FirstAppExampleTests/en.lproj/InfoPlist.strings +++ /dev/null @@ -1,2 +0,0 @@ -/* Localized versions of Info.plist keys */ - diff --git a/DUREX Vendor Control/Incident.h b/DUREX Vendor Control/Incident.h deleted file mode 100644 index 68703b2..0000000 --- a/DUREX Vendor Control/Incident.h +++ /dev/null @@ -1,18 +0,0 @@ -// -// Incident.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 10/8/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import -#import "CommunicationProtocol.h" - -@interface Incident : NSObject - -@property NSString *errorCode; -@property NSString *errorValue; -@property NSDate *incidentTime; - -@end \ No newline at end of file diff --git a/DUREX Vendor Control/Incident.m b/DUREX Vendor Control/Incident.m deleted file mode 100644 index 7187121..0000000 --- a/DUREX Vendor Control/Incident.m +++ /dev/null @@ -1,13 +0,0 @@ -// -// Incident.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 10/8/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "Incident.h" - -@implementation Incident - -@end \ No newline at end of file diff --git a/DUREX Vendor Control/IncidentLog.h b/DUREX Vendor Control/IncidentLog.h deleted file mode 100644 index 42139c0..0000000 --- a/DUREX Vendor Control/IncidentLog.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// IncidentLog.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 10/8/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import -#import "CommunicationProtocol.h" -#import "Incident.h" - -@interface IncidentLog : NSObject - -@property (strong,nonatomic) NSString *response; -@property (strong,nonatomic) NSMutableArray *incidents; - -- (id) init; -- (void) setResponseValue:(NSString *)response; - -@end diff --git a/DUREX Vendor Control/IncidentLog.m b/DUREX Vendor Control/IncidentLog.m deleted file mode 100644 index f1c5bdc..0000000 --- a/DUREX Vendor Control/IncidentLog.m +++ /dev/null @@ -1,55 +0,0 @@ -// -// IncidentLog.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 10/8/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "IncidentLog.h" - -@implementation IncidentLog - -- (id) init -{ - [self setIncidents:[[NSMutableArray alloc] init]]; - return self; -} - -- (void) setResponseValue:(NSString *)response -{ - [self setResponse: response]; - [self parseResponse]; -} - -- (void) parseResponse -{ - NSInteger currentIncident = 0; - NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; - NSDateComponents *incidentDate = [[NSDateComponents alloc] init]; - NSInteger currentYear = [[calendar components:units fromDate:[NSDate date]] year]; - currentYear = (currentYear/100)*100; - while(![[[self response] substringWithRange:NSMakeRange((currentIncident*INCIDENT_STRING_LENGTH), 4)] isEqualToString:@"P3P3"]) - { - Incident *incident = [[Incident alloc] init]; - [incidentDate setYear:(currentYear + [[[self response] substringWithRange:NSMakeRange(2 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue])]; - [incidentDate setMonth:[[[self response] substringWithRange:NSMakeRange(4 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue]]; - [incidentDate setDay:[[[self response] substringWithRange:NSMakeRange(6 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue]]; - [incidentDate setHour:[[[self response] substringWithRange:NSMakeRange(8 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue]]; - [incidentDate setMinute:[[[self response] substringWithRange:NSMakeRange(10 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue]]; - [incidentDate setMinute:[[[self response] substringWithRange:NSMakeRange(12 + currentIncident*INCIDENT_STRING_LENGTH, 2)] intValue]]; - [incident setIncidentTime:[calendar dateFromComponents:incidentDate]]; - NSLog(@"date: %@",[calendar dateFromComponents:incidentDate]); - [incident setErrorCode:[[self response] substringWithRange:NSMakeRange(14 + currentIncident*INCIDENT_STRING_LENGTH, 2)]]; - NSLog(@"errorCode: %@",[incident errorCode]); - [incident setErrorValue:[[self response] substringWithRange:NSMakeRange(16 + currentIncident*INCIDENT_STRING_LENGTH, 4)]]; - NSLog(@"errorValue: %@",[incident errorValue]); - [[self incidents] insertObject:incident atIndex:currentIncident]; - currentIncident++; - } - NSLog(@"%@",[self incidents]); -} - -@end - diff --git a/DUREX Vendor Control/InitialViewController.h b/DUREX Vendor Control/InitialViewController.h deleted file mode 100644 index 20a1562..0000000 --- a/DUREX Vendor Control/InitialViewController.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// InitialViewController.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 5/22/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import - -@interface InitialViewController : UIViewController - -@property (nonatomic,strong) IBOutlet UIButton *connectButton; -@property (nonatomic,strong) IBOutlet UILabel *label; - -- (IBAction) connectPressed:(UIButton*)button; - - -@end diff --git a/DUREX Vendor Control/InitialViewController.m b/DUREX Vendor Control/InitialViewController.m deleted file mode 100644 index 2fafbf9..0000000 --- a/DUREX Vendor Control/InitialViewController.m +++ /dev/null @@ -1,55 +0,0 @@ -// -// InitialViewController.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 5/22/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "InitialViewController.h" - -@interface InitialViewController () - -@end - -@implementation InitialViewController - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - // Custom initialization - } - return self; -} - -- (void)viewDidLoad -{ - [super viewDidLoad]; - // Do any additional setup after loading the view. - [[self label] sizeToFit]; -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -- (IBAction) connectPressed:(UIButton*)button -{ - [self performSegueWithIdentifier:@"ShowDevices" sender:self]; -} - -/* -#pragma mark - Navigation - -// In a storyboard-based application, you will often want to do a little preparation before navigation -- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender -{ - // Get the new view controller using [segue destinationViewController]. - // Pass the selected object to the new view controller. -} -*/ - -@end diff --git a/DUREX Vendor Control/MenuTableViewController.h b/DUREX Vendor Control/MenuTableViewController.h deleted file mode 100644 index 1ac5929..0000000 --- a/DUREX Vendor Control/MenuTableViewController.h +++ /dev/null @@ -1,92 +0,0 @@ -// -// MenuTableViewController.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 5/23/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import -#import "EMFramework.h" -#import "CommunicationProtocol.h" -#import "Stack.h" -#import "DatePickerViewController.h" -#import "PriceChangerViewController.h" -#import "NameChangerViewController.h" -#import "DateRangePickerViewController.h" -#import "Sensors.h" -#import "SalesLog.h" -#import "IncidentLog.h" -#import "UIView+Toast.h" -#import "ChildViewController.h" - -#define num(x) [NSNumber numberWithUnsignedInt:x] - -#define BATCH_ALERT_TAG 200 - -#define CELL_CARAT_TAG 100 - -#define MENU_ELEMENTS @"[1000]Maintenance",@"[1001]Basic Configuration" -#define MENU_CELLS_PER_SECTION num(2) -#define MENU_HEADERS nil - -#define MAINTENANCE_ELEMENTS @">[2000]Channels Present",@">[2001]Product Present in Channel",@">[2002]Channel Engine Status",@"[2003]Door Sensor",@"[2004]Coil Sensor",@">[2005]Money Collected",@">[2006]Money Returned",@">[2007]Products Sold",@">[2008]Change Available",@"[2009]Sales log",@"[2010]Incident report",@"[2011]Send report" -#define MAINTENANCE_CHANNELS @"*Channel 1",@"*Channel 2",@"*Channel 3",@"*Channel 4",@"*Channel 5",@"*Channel 6",@"*Channel 7",@"*Channel 8",@"*Channel 9",@"*Channel 10",@"*Channel 11",@"*Channel 12",@"*Channel 13",@"*Channel 14",@"*Channel 15",@"*Channel 16" -#define MAINTENANCE_MONEY_IN @"*20€ Notes",@"*10€ Notes",@"*5€ Notes",@"*2€ Coins",@"*1€ Coins",@"*50c Coins" -#define MAINTENANCE_MONEY_OUT @"*2€ Coins",@"*1€ Coins",@"*50c Coins" -#define MAINTENANCE_CHANGE @"*1€ Coins",@"*50c Coins" -#define MAINTENANCE_PRODUCTS @"*Product 1",@"*Product 2",@"*Product 3",@"*Product 4",@"*Product 5",@"*Product 6",@"*Product 7",@"*Product 8",@"*Product 9",@"*Product 10",@"*Product 11",@"*Product 12",@"*Product 13",@"*Product 14",@"*Product 15",@"*Product 16" -#define MAINTENANCE_CELLS_PER_SECTION num(9),num(3) -#define MAINTENANCE_HEADERS NSLocalizedString(@"Sensors", nil),NSLocalizedString(@"Commands", nil) - -#define SALE_ELEMENTS @">[3000]Money Paid",@"[3001]Channel",@"[3002]Product Code",@"[3003]Product Price",@">[3004]Money Returned" -#define SALE_MONEY_PAID @"*20€ Notes",@"*10€ Notes",@"*5€ Notes",@"*2€ Coins",@"*1€ Coins",@"*50c Coins" -#define SALE_MONEY_RETURNED @"*2€ Coins",@"*1€ Coins",@"*50c Coins" -#define SALE_CELLS_PER_SECTION num(5) -#define SALE_HEADERS nil - -#define INCIDENT_ELEMENTS @">[5000]Error Code",@"[5001]Error Value" -#define INCIDENT_CELLS_PER_SECTION num(2) -#define INCIDENT_HEADERS nil - -#define CONFIGURATION_ELEMENTS @"[4000]Update Date & Time",@"[4001]Update product price",@"[4002]Update product name" -#define CONFIGURATION_CELLS_PER_SECTION num(3) -#define CONFIGURATION_HEADERS nil - -#define CELL_IDENTIFIERS @"MenuCell",@"MaintenanceCell",@"SaleListCell",@"SaleCell",@"IncidentListCell",@"IncidentCell",@"ConfigCell",@"ReportCell" - -enum { - MENU = 0, - MAINTENANCE, - SALE_LIST, - SALE, - INCIDENT_LIST, - INCIDENT, - BASIC_CONFIGURATION, - REPORT, -} navigationLevel; - -enum { - HELLO = 0, - A2, - A3, - A4, - A5, - A6, - A7, - BATCH_COMMANDS, - INVALID_COMMAND, - NONE, -} commandTypes; - -enum { - SALES_LOG = 0, - INCIDENT_LOG, -} logType; - -@interface MenuTableViewController : UITableViewController - -- (void) navBack; -- (void) handleOpenURL: (NSURL*) url; - -@end diff --git a/DUREX Vendor Control/MenuTableViewController.m b/DUREX Vendor Control/MenuTableViewController.m deleted file mode 100644 index 86be65f..0000000 --- a/DUREX Vendor Control/MenuTableViewController.m +++ /dev/null @@ -1,1756 +0,0 @@ -// -// MenuTableViewController.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 5/23/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "MenuTableViewController.h" - -@interface MenuTableViewController () -{ - IBOutlet UIActivityIndicatorView *_activityIndicator; - NSTimer *_writeTimer; -} - -//NAVIGATION LEVELS LAYOUT AND CELL IDENTIFIERS -@property (nonatomic,strong) const NSMutableArray *menuElements; -@property (nonatomic,strong) const NSMutableArray *menuStructure; -@property (nonatomic,strong) const NSMutableArray *menuHeaders; - -@property (nonatomic,strong) const NSMutableArray *maintenanceElements; -@property (nonatomic,strong) const NSMutableArray *maintenanceStructure; -@property (nonatomic,strong) const NSMutableArray *maintenanceHeaders; - -@property (nonatomic,strong) const NSMutableArray *saleListElements; -@property (nonatomic,strong) const NSMutableArray *saleListStructure; -@property (nonatomic,strong) const NSMutableArray *saleListHeaders; - -@property (nonatomic,strong) const NSMutableArray *saleElements; -@property (nonatomic,strong) const NSMutableArray *saleStructure; -@property (nonatomic,strong) const NSMutableArray *saleHeaders; - -@property (nonatomic,strong) const NSMutableArray *incidentListElements; -@property (nonatomic,strong) const NSMutableArray *incidentListStructure; -@property (nonatomic,strong) const NSMutableArray *incidentListHeaders; - -@property (nonatomic,strong) const NSMutableArray *incidentElements; -@property (nonatomic,strong) const NSMutableArray *incidentStructure; -@property (nonatomic,strong) const NSMutableArray *incidentHeaders; - -@property (nonatomic,strong) const NSMutableArray *configElements; -@property (nonatomic,strong) const NSMutableArray *configStructure; -@property (nonatomic,strong) const NSMutableArray *configHeaders; - -@property (nonatomic,strong) const NSArray *cellIdentifiers; - -//GENERAL ATTRIBUTES -@property (nonatomic,strong) CommunicationProtocol* protocol; -@property (strong,nonatomic) NSString *machineMACAddr; -@property (strong,nonatomic) BTAppDelegate *appDelegate; -@property (strong,nonatomic) Stack *parentLayout; -@property (strong,nonatomic) NSTimer *timeoutTimer; -@property (strong,nonatomic) NSMutableArray *batchCommands; - -@property (strong,nonatomic) Sensors *sensorStatus; -@property (strong,nonatomic) SalesLog *salesLog; -@property (strong,nonatomic) Sale *currentSale; -@property (strong,nonatomic) IncidentLog *incidentLog; -@property (strong,nonatomic) Incident *currentIncident; -@property uint8_t requestedLog; -@property uint8_t sentCommand; - -@property (strong,nonatomic) NSMutableArray *childViewControllers; -@property uint8_t currentNavLevel; -@property Boolean showIndexes; -@property (strong,nonatomic) NSString *currentCellIdentifier; -@property (strong,nonatomic) const NSMutableArray *currentElements; -@property (strong,nonatomic) const NSMutableArray *currentStructure; -@property (strong,nonatomic) const NSMutableArray *currentHeaders; - -@property (strong,nonatomic) DatePickerViewController *datePickerViewController; -@property (strong,nonatomic) PriceChangerViewController *priceChangerViewController; -@property (strong,nonatomic) NameChangerViewController *nameChangerViewController; -@property (strong,nonatomic) DateRangePickerViewController *dateRangePickerViewController; -@end - -@implementation MenuTableViewController - -//NAVIGATION LEVELS GENERATION AND NAVIGATION -- (void) initializeMenuEntries -{ - [self setMenuElements:[[NSMutableArray alloc] initWithObjects:MENU_ELEMENTS, nil]]; - [self setMenuStructure:[[NSMutableArray alloc] initWithObjects:MENU_CELLS_PER_SECTION, nil]]; - if([[self menuStructure] count] > 1) - { - [self setMenuHeaders:[[NSMutableArray alloc] initWithObjects:MENU_HEADERS, nil]]; - } - else - { - [self setMenuHeaders:nil]; - } - - [self setConfigElements:[[NSMutableArray alloc] initWithObjects:CONFIGURATION_ELEMENTS, nil]]; - [self setConfigStructure:[[NSMutableArray alloc] initWithObjects:CONFIGURATION_CELLS_PER_SECTION, nil]]; - if([[self configStructure] count] > 1) - { - [self setConfigHeaders:[[NSMutableArray alloc] initWithObjects:CONFIGURATION_HEADERS, nil]]; - } - else - { - [self setConfigHeaders:nil]; - } - - [self setCellIdentifiers:[[NSArray alloc] initWithObjects:CELL_IDENTIFIERS, nil]]; -} - -- (void) generateMaintenanceLevel -{ - //Initialize sensor status - [self setMaintenanceElements:[[NSMutableArray alloc] initWithObjects:MAINTENANCE_ELEMENTS, nil]]; - [self setMaintenanceStructure:[[NSMutableArray alloc] initWithObjects:MAINTENANCE_CELLS_PER_SECTION, nil]]; - if([[self maintenanceStructure] count] > 1) - { - [self setMaintenanceHeaders:[[NSMutableArray alloc] initWithObjects:MAINTENANCE_HEADERS, nil]]; - } - else - { - [self setMaintenanceHeaders:nil]; - } -} - -- (void) generateSaleListNavLevel -{ - NSMutableArray *dateArray = [[NSMutableArray alloc] init]; - NSMutableArray *dateHeaderArray = [[NSMutableArray alloc] init]; - NSMutableArray *dateStructure = [[NSMutableArray alloc] init]; - NSUInteger headerPos = 0; - NSUInteger headerCount = 0; - NSString *lastDate = @""; - NSString *currentDate; - NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; - for(int i = 0; i < [[[self salesLog] sales]count]; i++) - { - Sale *currentSale = [[[self salesLog] sales]objectAtIndex:i]; - NSDateComponents *components = [calendar components:units fromDate:[currentSale saleTime]]; - [dateArray insertObject:[NSString stringWithFormat:@"[%d%d%d%d%d]%02d/%02d/%d %02d:%02d",[components day],[components month],[components year],[components hour],[components minute],[components day],[components month],[components year],[components hour],[components minute]] atIndex:i]; - currentDate = [NSString stringWithFormat:@"%02d/%d",[components month],[components year]]; - if([lastDate isEqualToString:@""]) - { - headerCount = 1; - lastDate = currentDate; - } - else if(![currentDate isEqualToString:lastDate]) - { - [dateStructure insertObject:[NSNumber numberWithInt:headerCount] atIndex:headerPos]; - [dateHeaderArray insertObject:lastDate atIndex:headerPos]; - headerCount = 1; - headerPos++; - lastDate = currentDate; - } - else - { - headerCount++; - } - } - [dateStructure insertObject:[NSNumber numberWithInt:headerCount] atIndex:headerPos]; - [dateHeaderArray insertObject:lastDate atIndex:headerPos]; - [self setSaleListElements:[[NSMutableArray alloc] initWithArray:dateArray]]; - [self setSaleListStructure:[[NSMutableArray alloc] initWithArray:dateStructure]]; - [self setSaleListHeaders:[[NSMutableArray alloc] initWithArray:dateHeaderArray]]; -} - -- (Boolean) generateSaleNavLevel : (NSInteger) numSale -{ - [self setSaleElements:[[NSMutableArray alloc] initWithObjects:SALE_ELEMENTS, nil]]; - [self setSaleStructure:[[NSMutableArray alloc] initWithObjects:SALE_CELLS_PER_SECTION, nil]]; - if([[self saleStructure] count] > 1) - { - [self setSaleHeaders:[[NSMutableArray alloc] initWithObjects:SALE_HEADERS, nil]]; - } - else - { - [self setSaleHeaders:nil]; - } - [self setCurrentSale:[[[self salesLog]sales]objectAtIndex:numSale]]; - return TRUE; -} - -- (void) generateIncidentListNavLevel -{ - NSMutableArray *dateArray = [[NSMutableArray alloc] init]; - NSMutableArray *dateHeaderArray = [[NSMutableArray alloc] init]; - NSMutableArray *dateStructure = [[NSMutableArray alloc] init]; - NSUInteger headerPos = 0; - NSUInteger headerCount = 0; - NSString *lastDate = @""; - NSString *currentDate; - NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; - for(int i = 0; i < [[[self incidentLog] incidents]count]; i++) - { - Incident *currentIncident = [[[self incidentLog] incidents]objectAtIndex:i]; - NSDateComponents *components = [calendar components:units fromDate:[currentIncident incidentTime]]; - [dateArray insertObject:[NSString stringWithFormat:@"[%d%d%d%d%d]%02d/%02d/%d %02d:%02d",[components day],[components month],[components year],[components hour],[components minute],[components day],[components month],[components year],[components hour],[components minute]] atIndex:i]; - currentDate = [NSString stringWithFormat:@"%02d/%d",[components month],[components year]]; - if([lastDate isEqualToString:@""]) - { - headerCount = 1; - lastDate = currentDate; - } - else if(![currentDate isEqualToString:lastDate]) - { - [dateStructure insertObject:[NSNumber numberWithInt:headerCount] atIndex:headerPos]; - [dateHeaderArray insertObject:lastDate atIndex:headerPos]; - headerCount = 1; - headerPos++; - lastDate = currentDate; - } - else - { - headerCount++; - } - } - [dateStructure insertObject:[NSNumber numberWithInt:headerCount] atIndex:headerPos]; - [dateHeaderArray insertObject:lastDate atIndex:headerPos]; [self setIncidentListElements:[[NSMutableArray alloc] initWithArray:dateArray]]; - [self setIncidentListStructure:[[NSMutableArray alloc] initWithArray:dateStructure]]; - [self setIncidentListHeaders:[[NSMutableArray alloc] initWithArray:dateHeaderArray]]; -} - -- (Boolean) generateIncidentNavLevel : (NSInteger) numIncident -{ - [self setIncidentElements:[[NSMutableArray alloc] initWithObjects:INCIDENT_ELEMENTS, nil]]; - [self setIncidentStructure:[[NSMutableArray alloc] initWithObjects:INCIDENT_CELLS_PER_SECTION, nil]]; - if([[self incidentStructure] count] > 1) - { - [self setIncidentHeaders:[[NSMutableArray alloc] initWithObjects:INCIDENT_HEADERS, nil]]; - } - else - { - [self setIncidentHeaders:nil]; - } - [self setCurrentIncident:[[[self incidentLog]incidents]objectAtIndex:numIncident]]; - return TRUE; -} - -- (void) changeNavLevel: (uint8_t) level : (BOOL) push -{ - NSLog(@"[MenuTableViewController.m]: navLevel is %d",level); - self.showIndexes = FALSE; - if(push) - { - [[self parentLayout] push: [NSNumber numberWithUnsignedChar:self.currentNavLevel]]; - } - [self setCurrentNavLevel:level]; - [self setCurrentCellIdentifier:[[self cellIdentifiers] objectAtIndex:[self currentNavLevel]]]; - if([self currentNavLevel] == MENU) - { - [self setMachineMACAddr:[[[EMConnectionManager sharedManager] connectedDevice] name]]; - [[self navigationItem] setTitle:[self machineMACAddr]]; - [self setCurrentElements:[self menuElements]]; - [self setCurrentStructure:[self menuStructure]]; - [self setCurrentHeaders:[self menuHeaders]]; - } - else if([self currentNavLevel] == MAINTENANCE) - { - [[self navigationItem] setTitle:NSLocalizedString(@"Maintenance", nil)]; - [self setCurrentElements:[self maintenanceElements]]; - [self setCurrentStructure:[self maintenanceStructure]]; - [self setCurrentHeaders:[self maintenanceHeaders]]; - } - else if([self currentNavLevel] == SALE_LIST) - { - self.showIndexes = TRUE; - [[self navigationItem] setTitle:NSLocalizedString(@"Sales log", nil)]; - [self setCurrentElements:[self saleListElements]]; - [self setCurrentStructure:[self saleListStructure]]; - [self setCurrentHeaders:[self saleListHeaders]]; - } - else if([self currentNavLevel] == SALE) - { - NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; - NSDateComponents *components = [calendar components:units fromDate:[[self currentSale] saleTime]]; - [[self navigationItem] setTitle:[NSString stringWithFormat:@"%@ %02d/%02d/%d %02d:%02d",NSLocalizedString(@"Sale on", nil),[components day],[components month],[components year],[components hour],[components minute]]]; - [self setCurrentElements:[self saleElements]]; - [self setCurrentStructure:[self saleStructure]]; - [self setCurrentHeaders:[self saleHeaders]]; - } - else if([self currentNavLevel] == INCIDENT_LIST) - { - self.showIndexes = TRUE; - [[self navigationItem] setTitle:NSLocalizedString(@"Incident log", nil)]; - [self setCurrentElements:[self incidentListElements]]; - [self setCurrentStructure:[self incidentListStructure]]; - [self setCurrentHeaders:[self incidentListHeaders]]; - } - else if([self currentNavLevel] == INCIDENT) - { - NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; - NSDateComponents *components = [calendar components:units fromDate:[[self currentIncident] incidentTime]]; - [[self navigationItem] setTitle:[NSString stringWithFormat:@"%@ %02d/%02d/%d %02d:%02d",NSLocalizedString(@"Incident on", nil),[components day],[components month],[components year],[components hour],[components minute]]]; - [self setCurrentElements:[self incidentElements]]; - [self setCurrentStructure:[self incidentStructure]]; - [self setCurrentHeaders:[self incidentHeaders]]; - } - else if([self currentNavLevel] == BASIC_CONFIGURATION) - { - [[self navigationItem] setTitle:NSLocalizedString(@"Basic Configuration", nil)]; - [self setCurrentElements:[self configElements]]; - [self setCurrentStructure:[self configStructure]]; - [self setCurrentHeaders:[self configHeaders]]; - } - //AND SO ON... - NSLog(@"MenuTableViewController.m]: New elements: %@",[self currentElements]); - NSLog(@"MenuTableViewController.m]: New structure: %@",[self currentStructure]); - NSLog(@"MenuTableViewController.m]: New headers: %@",[self currentHeaders]); - NSLog(@"MenuTableViewController.m]: New cell identifier: %@",[self currentCellIdentifier]); - [self reloadTable:UITableViewRowAnimationAutomatic]; -} - -- (void) reloadTable: (UITableViewRowAnimation) animation -{ - [[self tableView] reloadData]; - NSRange range = NSMakeRange(0, [self numberOfSectionsInTableView:[self tableView]]); - NSIndexSet *sections = [NSIndexSet indexSetWithIndexesInRange:range]; - [[self tableView] reloadSections:sections withRowAnimation:animation]; -} - -- (void) navBack -{ - NSNumber *prevLevel = [[self parentLayout] pop]; - self.currentNavLevel = prevLevel.intValue; - [self changeNavLevel: prevLevel.intValue : FALSE]; -} - -- (void) backButtonPressed: (id) sender -{ - NSLog(@"[MenuTableViewController.m]: Navigation Stack has %ld remaining levels",(long)[[self parentLayout] count]); - if([[self parentLayout] count] > 0) - { - NSLog(@"[MenuTableViewController.m]: Falling to previous navigation level"); - [self navBack]; - } - else - { - NSLog(@"[MenuTableViewController.m]: No more navigation levels in stack, falling to previous view"); - [_protocol disconnect]; - [self.navigationController popViewControllerAnimated:YES]; - } -} - -//MAINTENANCE REPORT SENDING -- (void) sendMaintenanceReport : (NSString*) status : (NSString*) date : (NSString*) machineid -{ - NSString *content = [NSString stringWithFormat:@"status=%@&date=%@&machineid=%@",status,date,machineid]; - - NSMutableURLRequest *request = [[NSMutableURLRequest alloc] initWithURL:[NSURL URLWithString:REPORT_SERVER_URL]]; - [request setHTTPMethod:@"POST"]; - [request setHTTPBody:[content dataUsingEncoding:NSUTF8StringEncoding]]; - [NSURLConnection connectionWithRequest:request delegate:self]; -} - -- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data -{ - NSLog(@"[MenuTableViewController.m]: Received response from report server: %@",[NSString stringWithUTF8String:[data bytes]]); - [self.view makeToast:NSLocalizedString(@"Report sent successfully", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Success!", nil) image:[UIImage imageNamed:@"icon_checkmark"]]; -} - -- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error -{ - NSLog(@"[MenuTableViewController.m]: Error connecting to server: %@ %@",[error localizedDescription],[[error userInfo] objectForKey:NSURLErrorFailingURLStringErrorKey]); - [self.view makeToast:NSLocalizedString(@"Connection to server failed", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; -} -//PROTOCOL ERROR CALLBACK -- (void) reportProtocolError: (CommunicationProtocol*)protocol didFinishEnteringItem:(NSString*) error -{ - if(self.currentNavLevel == 255) - { - [self processMessage:protocol didFinishEnteringItem:@"ERROR"]; - } - else - { - [self.view makeToast:error duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; - } -} - -//MESSAGE RECEIVED CALLBACK -- (void)processMessage:(CommunicationProtocol*)protocol didFinishEnteringItem:(NSString*) response -{ - NSLog(@"[MenuTableViewController.m]: Answer received: %@",response); - [self.timeoutTimer invalidate]; - if(self.sentCommand == HELLO) - { - if([response isEqualToString:@"Hello"]) - { - NSLog(@"[MenuTableViewController.m]: Connection established"); - [self changeNavLevel:MENU:FALSE]; - } - else - { - NSLog(@"[CommunicationProtocol.m]: Error while establishing connection"); - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Communication error",nil) message:NSLocalizedString(@"Error while trying to connect to the device",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - UIViewController *previous = [[[self navigationController] viewControllers] objectAtIndex:[[[self navigationController] viewControllers] count]-2]; - [[self navigationController] popToViewController:previous animated:YES]; - } - } - else if(self.sentCommand == A2 && [[response substringToIndex:2]isEqualToString:@"P2"]) - { - NSLog(@"[MenuTableViewController.m]: Received A2 answer"); - [self setSalesLog:[[SalesLog alloc]init]]; - [[self salesLog] setResponseValue:response]; - [self generateSaleListNavLevel]; - [self changeNavLevel:SALE_LIST:TRUE]; - } - else if(self.sentCommand == A3 && [[response substringToIndex:2]isEqualToString:@"P3"]) - { - NSLog(@"[MenuTableViewController.m]: Received A3 answer"); - [self setIncidentLog:[[IncidentLog alloc]init]]; - [[self incidentLog] setResponseValue:response]; - [self generateIncidentListNavLevel]; - [self changeNavLevel:INCIDENT_LIST:TRUE]; - } - else if(self.sentCommand == A4 && [[response substringToIndex:2]isEqualToString:@"P4"]) - { - NSLog(@"[MenuTableViewController.m]: Received A4 answer"); - [self setSensorStatus:[[Sensors alloc]init]]; - [[self sensorStatus] setResponseValue:response]; - [self generateMaintenanceLevel]; - [self changeNavLevel:MAINTENANCE:TRUE]; - } - else if(self.sentCommand == A5 && [[response substringToIndex:2]isEqualToString:@"P5"]) - { - NSLog(@"[MenuTableViewController.m]: Received A5 answer"); - if([response isEqualToString:@"P51"]) - { - [self.view makeToast:NSLocalizedString(@"Time and Date changed successfully", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:nil image:[UIImage imageNamed:@"icon_checkmark"]]; - } - else if([response isEqualToString:@"P52"]) - { - NSLog(@"[MenuTableViewController.m]: Device returned error for command A5"); - [self.view makeToast:NSLocalizedString(@"Time and Date change returned error", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; - } - } - else if(self.sentCommand == A6 && [[response substringToIndex:2]isEqualToString:@"P6"]) - { - NSLog(@"[MenuTableViewController.m]: Received A6 answer"); - if([response isEqualToString:@"P61"]) - { - [self.view makeToast:NSLocalizedString(@"Product price changed successfully", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:nil image:[UIImage imageNamed:@"icon_checkmark"]]; - } - else if([response isEqualToString:@"P62"]) - { - NSLog(@"[MenuTableViewController.m]: Device returned error for command A6"); - [self.view makeToast:NSLocalizedString(@"Product price change returned error", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; - } - } - else if(self.sentCommand == A7 && [[response substringToIndex:2]isEqualToString:@"P7"]) - { - NSLog(@"[MenuTableViewController.m]: Received A7 answer"); - if([response isEqualToString:@"P71"]) - { - [self.view makeToast:NSLocalizedString(@"Product name changed successfully", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:nil image:[UIImage imageNamed:@"icon_checkmark"]]; - } - else if([response isEqualToString:@"P72"]) - { - NSLog(@"[MenuTableViewController.m]: Device returned error for command A7"); - [self.view makeToast:NSLocalizedString(@"Product name change returned error", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; - } - } - else if(self.sentCommand == BATCH_COMMANDS) - { - if(self.batchCommands.count) - { - [self processBatchCommands]; - } - else - { - self.sentCommand = NONE; - } - } - else - { - NSLog(@"[MenuTableViewController]: Unknown response received. Data discarded."); - } - [self setSentCommand:NONE]; -} - -- (void) startTimeoutTimer -{ - self.timeoutTimer = [NSTimer scheduledTimerWithTimeInterval:10 - target:self - selector:@selector(commandDidTimeout:) - userInfo:nil - repeats:NO]; -} - -- (void) commandDidTimeout:(NSTimer *) timer -{ - if(self.currentNavLevel == 255) - { - [self processMessage:nil didFinishEnteringItem:@"ERROR"]; - } - else - { - [self setSentCommand:NONE]; - [self.view makeToast:NSLocalizedString(@"Device answer timeout occurred", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; - } -} - - -//BATCH COMMAND PROCESSING -- (void) processBatchCommands -{ - NSString *command = [self.batchCommands objectAtIndex:0]; - [self.batchCommands removeObjectAtIndex:0]; - [_protocol writeMessage:command]; - [self setSentCommand:BATCH_COMMANDS]; - [self startTimeoutTimer]; -} - --(void) alertView:(UIAlertView *)alertView clickedButtonAtIndex:(NSInteger)buttonIndex -{ - if (alertView.tag == BATCH_ALERT_TAG) - { - if (buttonIndex == 1) - { - [self processBatchCommands]; - } - } -} - -- (void) handleOpenURL:(NSURL *)url -{ - NSData *data = [NSData dataWithContentsOfURL:url]; - NSString *contents = [[NSString alloc] initWithData: data encoding:NSUTF8StringEncoding]; - if(data == nil) - { - NSLog(@"[MenuTableViewController.m]: Error obtaining data from URL"); - [self.view makeToast:NSLocalizedString(@"Error obtaining data from URL", nil) duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; - return; - } - NSLog(@"[MenuTableViewController.m]: Read file contents from handled URL: %@",contents); - NSError *error = nil; - NSDictionary *JSONData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error: &error]; - if(!JSONData) - { - NSLog(@"[MenuTableViewController.m]: %@",error); - [self.view makeToast:[error localizedDescription] duration:3 position:[NSValue valueWithCGPoint:CGPointMake(self.view.frame.size.width/2,self.view.frame.size.height/2)] title:NSLocalizedString(@"Error", nil) image:[UIImage imageNamed:@"icon_delete"]]; - return; - } - NSString *version = [JSONData objectForKey:@"version"]; - NSString *name = [JSONData objectForKey:@"name"]; - NSString *machineID = [JSONData objectForKey:@"machineID"]; - NSArray *commands = [JSONData objectForKey:@"commands"]; - NSString *errorString = nil; - UIAlertView *alert; - if(version == nil || commands == nil) - { - errorString = NSLocalizedString(@"Missing fields version and/or commands in JSON file",nil); - } - else if(![version isEqualToString:self.appDelegate.currentVersion]) - { - errorString = NSLocalizedString(@"Version mismatch",nil); - } - else - { - self.batchCommands = [[NSMutableArray alloc] initWithArray:commands]; - if([name isEqualToString:@""]) - { - name = @"file"; - } - if(![machineID isEqualToString:self.machineMACAddr]) - { - alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Confirmation",nil) - message:[NSString stringWithFormat:@"%@ \"%@\"?\n\n%@",NSLocalizedString(@"Do you want to run batch command file",nil),name,NSLocalizedString(@"WARNING: Machine ID does not match currently connected machine. Do you wish to continue?",nil)] - delegate:self - cancelButtonTitle:NSLocalizedString(@"Cancel",nil) - otherButtonTitles:NSLocalizedString(@"OK",nil), nil]; - } - else - { - alert = [[UIAlertView alloc] initWithTitle: NSLocalizedString(@"Confirmation",nil) - message: [NSString stringWithFormat:@"%@ \"%@\"?",NSLocalizedString(@"Do you want to run batch command file",nil),name] - delegate:self - cancelButtonTitle:NSLocalizedString(@"Cancel",nil) - otherButtonTitles:NSLocalizedString(@"OK",nil), nil]; - } - } - if(errorString != nil) - { - alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) - message:[NSString stringWithFormat:@"%@",errorString] - delegate:nil - cancelButtonTitle:NSLocalizedString(@"OK",nil) - otherButtonTitles:nil]; - } - alert.tag = BATCH_ALERT_TAG; - [alert show]; -} - -//UITABLEVIEWCONTROLLER FUNCTIONS -- (void)viewDidLoad -{ - [super viewDidLoad]; - [_activityIndicator setHidden:YES]; - self.appDelegate = [[UIApplication sharedApplication] delegate]; - - //Set navigation bar - UIImage *backImage = [UIImage imageNamed:@"back_arrow.png"]; - UIButton *backButton = [UIButton buttonWithType:UIButtonTypeCustom]; - backButton.frame = CGRectMake(0, 0, backImage.size.width/2, backImage.size.height/2); - - [backButton setImage:backImage forState:UIControlStateNormal]; - [backButton addTarget:self action:@selector(backButtonPressed:) forControlEvents:UIControlEventTouchUpInside]; - UIBarButtonItem *backBarButtonItem = [[UIBarButtonItem alloc] initWithCustomView:backButton]; - - self.navigationItem.hidesBackButton = YES; - self.navigationItem.leftBarButtonItem = backBarButtonItem; - - //Emmoco protocol initialization - _protocol = [CommunicationProtocol sharedProtocol]; - [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(didReceiveNotification:) name:kEMConnectionDidReceiveIndicatorNotificationName object:nil]; - [[EMConnectionManager sharedManager] addObserver:self forKeyPath:@"connectionState" options:0 context:NULL]; - self.protocol.delegate = self; - - //Initialize parentLayout stack - [self setParentLayout:[[Stack alloc]init]]; - - //Set navigation level - [self initializeMenuEntries]; - [self setChildViewControllers:[[NSMutableArray alloc]init]]; - self.currentNavLevel = 255; - - //Initialize menu view - - [_protocol establishConnection]; - //[self setSentCommand:HELLO]; - //[self startTimeoutTimer]; - [self changeNavLevel:MENU :FALSE]; //HACK! - - //Detect handled URL - if(self.appDelegate.handledURL != nil) - { - NSLog(@"[MenuTableViewController.m]: Detected handled URL in appDelegate"); - [self handleOpenURL: self.appDelegate.handledURL]; - } -} - --(void)didReceiveNotification:(NSNotification*) notification -{ - -} - --(void)dealloc -{ - [[EMConnectionManager sharedManager] removeObserver:self forKeyPath:@"connectionState"]; - [[NSNotificationCenter defaultCenter] removeObserver:self]; -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -- (void) didRotateFromInterfaceOrientation:(UIInterfaceOrientation)fromInterfaceOrientation -{ - for(int i = 0; i < self.childViewControllers.count; i++) - { - ChildViewController *childController = [self.childViewControllers objectAtIndex:i]; - [childController parentViewControllerDidRotateWithOrientation: [[UIDevice currentDevice] orientation]]; - } -} - -- (void) willRotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation duration:(NSTimeInterval)duration -{ - for(int i = 0; i < self.childViewControllers.count; i++) - { - ChildViewController *childController = [self.childViewControllers objectAtIndex:i]; - [childController parentViewControllerWillRotateToInterfaceOrientation:toInterfaceOrientation duration:duration]; - } -} - -- (void)removeChildFromParentController:(ChildViewController*)controller -{ - [self.childViewControllers removeObject:controller]; - NSLog(@"[MenuTableViewController]: %d childViewControllers left",self.childViewControllers.count); -} - --(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context -{ - if (object == [EMConnectionManager sharedManager]) - { - if ([keyPath isEqualToString:@"connectionState"]) - { - if ([[EMConnectionManager sharedManager] connectionState] == EMConnectionStateDisrupted) - { - UIViewController *previous = [[[self navigationController] viewControllers] objectAtIndex:[[[self navigationController] viewControllers] count]-2]; - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Communication error",nil) message:NSLocalizedString(@"Connection lost",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - [[self navigationController] popToViewController:previous animated:YES]; - } - } - } -} - -#pragma mark - Table view delegate - -//CELL PROCESSING AND CUSTOMIZATION -- (void) addTags : (NSMutableArray*) rows : (NSInteger) tag -{ - for(int i = 0; i < [rows count]; i++) - { - NSMutableString *name = [NSMutableString stringWithString:[rows objectAtIndex:i]]; - [name insertString:[NSString stringWithFormat:@"[%d]",tag] atIndex:1]; - [rows replaceObjectAtIndex:i withObject:name]; - } -} - -- (void) toggleDropList : (NSIndexPath*) index -{ - Boolean folded = FALSE; - NSString *elementName = [[self currentElements] objectAtIndex:index.row]; - NSMutableString *newElementName = [[NSMutableString alloc] init]; - if([elementName characterAtIndex:0] == '>') - { - [newElementName setString:@"v"]; - [newElementName appendString:[elementName substringFromIndex:1]]; - folded = TRUE; - } - else - { - [newElementName setString:@">"]; - [newElementName appendString:[elementName substringFromIndex:1]]; - } - [[self currentElements] replaceObjectAtIndex:index.row withObject:newElementName]; - NSMutableString *cellName = [NSMutableString stringWithString:[elementName substringFromIndex:1]]; - NSInteger lastPos = [cellName rangeOfString:@"]"].location; - NSInteger cellTag = [[cellName substringWithRange:NSMakeRange(1,lastPos)] intValue]; - [cellName setString:[cellName substringFromIndex:lastPos+1]]; - - //Cells in MENU - if([self currentNavLevel] == MAINTENANCE) - { - if([cellName isEqualToString:@"Channels Present"] || - [cellName isEqualToString:@"Product Present in Channel"] || - [cellName isEqualToString:@"Channel Engine Status"]) - { - NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:MAINTENANCE_CHANNELS, nil]; - [newRows setArray:[newRows subarrayWithRange:NSMakeRange(0, [[self sensorStatus] numChannels])]]; - if(folded) - { - [self addTags: newRows : cellTag]; - [self addRowsAtIndexPath: newRows : index]; - } - else - { - [self removeRowsAtIndexPath: [newRows count] : index]; - } - } - else if([cellName isEqualToString:@"Money Collected"]) - { - NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:MAINTENANCE_MONEY_IN, nil]; - if(folded) - { - [self addTags: newRows : cellTag]; - [self addRowsAtIndexPath: newRows : index]; - } - else - { - [self removeRowsAtIndexPath: [newRows count] : index]; - } - } - else if([cellName isEqualToString:@"Money Returned"]) - { - NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:MAINTENANCE_MONEY_OUT, nil]; - if(folded) - { - [self addTags: newRows : cellTag]; - [self addRowsAtIndexPath: newRows : index]; - } - else - { - [self removeRowsAtIndexPath: [newRows count] : index]; - } - } - else if([cellName isEqualToString:@"Products Sold"]) - { - NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:MAINTENANCE_PRODUCTS, nil]; - if(folded) - { - [self addTags: newRows : cellTag]; - [self addRowsAtIndexPath: newRows : index]; - } - else - { - [self removeRowsAtIndexPath: [newRows count] : index]; - } - } - else if([cellName isEqualToString:@"Change Available"]) - { - NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:MAINTENANCE_CHANGE, nil]; - if(folded) - { - [self addTags: newRows : cellTag]; - [self addRowsAtIndexPath: newRows : index]; - } - else - { - [self removeRowsAtIndexPath: [newRows count] : index]; - } - } - } - else if([self currentNavLevel] == SALE) - { - if([cellName isEqualToString:@"Money Paid"]) - { - NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:SALE_MONEY_PAID, nil]; - if(folded) - { - [self addTags: newRows : cellTag]; - [self addRowsAtIndexPath: newRows : index]; - } - else - { - [self removeRowsAtIndexPath: [newRows count] : index]; - } - } - else if([cellName isEqualToString:@"Money Returned"]) - { - NSMutableArray *newRows = [[NSMutableArray alloc] initWithObjects:SALE_MONEY_RETURNED, nil]; - if(folded) - { - [self addTags: newRows : cellTag]; - [self addRowsAtIndexPath: newRows : index]; - } - else - { - [self removeRowsAtIndexPath: [newRows count] : index]; - } - } - } - [self reloadTable:UITableViewRowAnimationNone]; -} - -- (void) addRowsAtIndexPath : (NSArray*) rows : (NSIndexPath*) indexPath -{ - NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange([indexPath row] + 1, [rows count])]; - [[self currentElements] insertObjects:rows atIndexes:indexSet]; - [[self currentStructure] replaceObjectAtIndex:[indexPath section] withObject:[NSNumber numberWithInt:([[[self currentStructure] objectAtIndex:[indexPath section]] intValue] + [rows count])]]; -} - -- (void) removeRowsAtIndexPath : (NSUInteger) numRows : (NSIndexPath*) indexPath -{ - NSIndexSet *indexSet = [[NSIndexSet alloc] initWithIndexesInRange:NSMakeRange([indexPath row] + 1, numRows)]; - [[self currentElements] removeObjectsAtIndexes:indexSet]; - [[self currentStructure] replaceObjectAtIndex:[indexPath section] withObject:[NSNumber numberWithInt:([[[self currentStructure] objectAtIndex:[indexPath section]] intValue] - numRows)]]; -} - -//UITABLEVIEWCONTROLLER FUNCTIONS -- (NSString *)tableView:(UITableView *)tableView titleForHeaderInSection:(NSInteger)section -{ - NSString *title = @""; - if([self currentHeaders] != nil) - { - title = [[self currentHeaders] objectAtIndex:section]; - } - return title; -} - -- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section -{ - return [[[self currentStructure] objectAtIndex:section] intValue]; -} - -- (const NSArray*)sectionIndexTitlesForTableView:(UITableView *)tableView -{ - if(self.showIndexes) - { - return self.currentHeaders; - } - return nil; -} - -- (NSInteger)tableView:(UITableView *)tableView sectionForSectionIndexTitle:(NSString *)title atIndex:(NSInteger)index -{ - if(self.showIndexes) - { - return [self.currentHeaders indexOfObject:title]; - } - return 0; -} - -- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath -{ - NSLog(@"Section: %ld Row: %ld",(long)[indexPath section],(long)[indexPath row]); - [tableView deselectRowAtIndexPath:indexPath animated:YES]; - UITableViewCell *cell = [[self tableView] cellForRowAtIndexPath:indexPath]; - NSString *cellName = [[cell textLabel]text]; - uint8_t offset = 0; - if([indexPath section]) - { - for (int i = 0; i < [indexPath section]; i++) - { - offset += [[[self currentStructure] objectAtIndex:i] unsignedCharValue]; - } - } - //Cells in MENU - if([self currentNavLevel] == MENU) - { - if([cellName isEqualToString:NSLocalizedString(@"Maintenance", nil)]) - { - if(self.sentCommand == NONE) - { - NSLog(@"[MenuTableViewController.m]: Changing to navLevel: MAINTENANCE"); - [[self protocol] readSensorData]; - [self setSentCommand:A4]; - [self startTimeoutTimer]; - } - } - else if([cellName isEqualToString:NSLocalizedString(@"Basic Configuration", nil)]) - { - NSLog(@"[MenuTableViewController.m]: Changing to navLevel: BASIC_CONFIGURATION"); - [self changeNavLevel:BASIC_CONFIGURATION:TRUE]; - } - } - //Cells in MAINTENANCE - else if([self currentNavLevel] == MAINTENANCE) - { - if([cellName isEqualToString:NSLocalizedString(@"Channels Present", nil)] || - [cellName isEqualToString:NSLocalizedString(@"Product Present in Channel", nil)] || - [cellName isEqualToString:NSLocalizedString(@"Channel Engine Status", nil)] || - [cellName isEqualToString:NSLocalizedString(@"Money Collected", nil)] || - [cellName isEqualToString:NSLocalizedString(@"Money Returned", nil)] || - [cellName isEqualToString:NSLocalizedString(@"Products Sold", nil)] || - [cellName isEqualToString:NSLocalizedString(@"Change Available", nil)]) - { - [self toggleDropList:indexPath]; - } - else if([cellName isEqualToString:NSLocalizedString(@"Sales log", nil)]) - { - if(self.sentCommand == NONE) - { - [self setRequestedLog:SALES_LOG]; - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_iPad_Landscape" bundle:nil]; - self.dateRangePickerViewController.delegate = self; - self.dateRangePickerViewController.childDelegate = self; - [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; - [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; - } - else - { - self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_iPad" bundle:nil]; - self.dateRangePickerViewController.delegate = self; - self.dateRangePickerViewController.childDelegate = self; - [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; - [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; - } - } - else - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_Landscape" bundle:nil]; - self.dateRangePickerViewController.delegate = self; - self.dateRangePickerViewController.childDelegate = self; - [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; - [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; - } - else - { - self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController" bundle:nil]; - self.dateRangePickerViewController.delegate = self; - self.dateRangePickerViewController.childDelegate = self; - [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; - [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; - } - } - } - } - else if([cellName isEqualToString:NSLocalizedString(@"Incident log", nil)]) - { - if(self.sentCommand == NONE) - { - [self setRequestedLog:INCIDENT_LOG]; - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_iPad_Landscape" bundle:nil]; - self.dateRangePickerViewController.delegate = self; - self.dateRangePickerViewController.childDelegate = self; - [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; - [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; - } - else - { - self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_iPad" bundle:nil]; - self.dateRangePickerViewController.delegate = self; - self.dateRangePickerViewController.childDelegate = self; - [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; - [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; - } - } - else - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController_Landscape" bundle:nil]; - self.dateRangePickerViewController.delegate = self; - self.dateRangePickerViewController.childDelegate = self; - [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; - [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; - } - else - { - self.dateRangePickerViewController = [[DateRangePickerViewController alloc] initWithNibName:@"DateRangePickerViewController" bundle:nil]; - self.dateRangePickerViewController.delegate = self; - self.dateRangePickerViewController.childDelegate = self; - [self.childViewControllers insertObject:self.dateRangePickerViewController atIndex:self.childViewControllers.count]; - [self.dateRangePickerViewController showInView:self.navigationController.view animated:YES]; - } - } - } - } - else if([cellName isEqualToString:NSLocalizedString(@"Send report", nil)]) - { - NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; - NSDateComponents *components = [calendar components:units fromDate:[NSDate date]]; - NSString *date = [NSString stringWithFormat:@"%02d/%02d/%d %02d:%02d:%02d",[components day],[components month],[components year],[components hour],[components minute],[components second]]; - [self sendMaintenanceReport: [[self sensorStatus] response] : date: [self machineMACAddr]]; - } - } - //Cells in BASIC_CONFIGURATION - else if([self currentNavLevel] == BASIC_CONFIGURATION) - { - //Update Date & Time command - if([cellName isEqualToString:NSLocalizedString(@"Update Date & Time", nil)]) - { - if(self.sentCommand == NONE) - { - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - self.datePickerViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController_iPad_Landscape" bundle:nil]; - self.datePickerViewController.delegate = self; - [self.datePickerViewController showInView:self.navigationController.view animated:YES]; - } - else - { - self.datePickerViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController_iPad" bundle:nil]; - self.datePickerViewController.delegate = self; - [self.datePickerViewController showInView:self.navigationController.view animated:YES]; - } - } - else - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - self.datePickerViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController" bundle:nil]; - self.datePickerViewController.delegate = self; - [self.datePickerViewController showInView:self.navigationController.view animated:YES]; - } - else - { - self.datePickerViewController = [[DatePickerViewController alloc] initWithNibName:@"DatePickerViewController_Landscape" bundle:nil]; - self.datePickerViewController.delegate = self; - [self.datePickerViewController showInView:self.navigationController.view animated:YES]; - } - } - } - } - //Update Product Price command - else if([cellName isEqualToString:NSLocalizedString(@"Update product price", nil)]) - { - if(self.sentCommand == NONE) - { - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - self.priceChangerViewController = [[PriceChangerViewController alloc] initWithNibName:@"PriceChangerViewController_iPad_Landscape" bundle:nil]; - self.priceChangerViewController.delegate = self; - [self.priceChangerViewController showInView:self.navigationController.view animated:YES]; - } - else - { - self.priceChangerViewController = [[PriceChangerViewController alloc] initWithNibName:@"PriceChangerViewController_iPad" bundle:nil]; - self.priceChangerViewController.delegate = self; - [self.priceChangerViewController showInView:self.navigationController.view animated:YES]; - } - } - else - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - self.priceChangerViewController = [[PriceChangerViewController alloc] initWithNibName:@"PriceChangerViewController" bundle:nil]; - self.priceChangerViewController.delegate = self; - [self.priceChangerViewController showInView:self.navigationController.view animated:YES]; - } - else - { - self.priceChangerViewController = [[PriceChangerViewController alloc] initWithNibName:@"PriceChangerViewController_Landscape" bundle:nil]; - self.priceChangerViewController.delegate = self; - [self.priceChangerViewController showInView:self.navigationController.view animated:YES]; - } - } - } - } - //Update Product Name command - else if([cellName isEqualToString:NSLocalizedString(@"Update product name", nil)]) - { - if(self.sentCommand == NONE) - { - if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - self.nameChangerViewController = [[NameChangerViewController alloc] initWithNibName:@"NameChangerViewController_iPad_Landscape" bundle:nil]; - self.nameChangerViewController.delegate = self; - [self.nameChangerViewController showInView:self.navigationController.view animated:YES]; - } - else - { - self.nameChangerViewController = [[NameChangerViewController alloc] initWithNibName:@"NameChangerViewController_iPad" bundle:nil]; - self.nameChangerViewController.delegate = self; - [self.nameChangerViewController showInView:self.navigationController.view animated:YES]; - } - } - else - { - if(UIDeviceOrientationIsLandscape([[UIDevice currentDevice] orientation])) - { - self.nameChangerViewController = [[NameChangerViewController alloc] initWithNibName:@"NameChangerViewController_Landscape" bundle:nil]; - self.nameChangerViewController.delegate = self; - [self.nameChangerViewController showInView:self.navigationController.view animated:YES]; - } - else - { - self.nameChangerViewController = [[NameChangerViewController alloc] initWithNibName:@"NameChangerViewController" bundle:nil]; - self.nameChangerViewController.delegate = self; - [self.nameChangerViewController showInView:self.navigationController.view animated:YES]; - } - } - } - } - } - else if([self currentNavLevel] == SALE_LIST) - { - if([self generateSaleNavLevel: [indexPath row] + offset]) - { - [self changeNavLevel:SALE:TRUE]; - } - } - else if([self currentNavLevel] == SALE) - { - if([cellName isEqualToString:NSLocalizedString(@"Money Paid", nil)] || - [cellName isEqualToString:NSLocalizedString(@"Money Returned", nil)]) - { - [self toggleDropList:indexPath]; - } - - } - else if([self currentNavLevel] == INCIDENT_LIST) - { - if([self generateIncidentNavLevel: [indexPath row] + offset]) - { - [self changeNavLevel:INCIDENT:TRUE]; - } - } -} - -#pragma mark - Table view data source - --(NSInteger)tableView: (UITableView *)tableView indentationLevelForRowAtIndexPath: (NSIndexPath *)indexPath -{ - NSInteger indent = 0; - if([[[self currentElements] objectAtIndex:indexPath.row] characterAtIndex:0] == '*') - { - indent++; - } - return indent; -} - -- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView -{ - return [[self currentStructure] count]; -} - -- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath -{ - Boolean needsIndent = FALSE; - Boolean foldedList = FALSE; - Boolean unfoldedList = FALSE; - UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:[self currentCellIdentifier] forIndexPath:indexPath]; - //INSTANTIATE CELL IF NEEDED - if (cell == nil) - { - NSLog(@"[MenuTableViewController.m]: Initializing cell"); - if([self currentNavLevel] == MAINTENANCE) - { - NSLog(@"[MenuTableViewController.m]: Dispatching Maintenance-type cell"); - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleValue1 reuseIdentifier:[self currentCellIdentifier]]; - } - else - { - cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:[self currentCellIdentifier]]; - } - } - //CALCULATE TRUE ROW TO RETRIEVE NAME - uint8_t offset = 0; - if([indexPath section] ) - { - for (int i = 0; i < [indexPath section]; i++) - { - offset += [[[self currentStructure] objectAtIndex:i] unsignedCharValue]; - } - } - //RETRIEVE NAME - NSMutableString *cellText = [NSMutableString stringWithString:[[self currentElements] objectAtIndex:[indexPath row]+offset]]; - //SET INDENT - [cell setIndentationWidth:10]; - //PARSE AND REMOVE CELL MODIFIER - if([cellText characterAtIndex:0] == '>') - { - foldedList = TRUE; - [cellText setString:[cellText substringFromIndex:1]]; - } - else if([cellText characterAtIndex:0] == 'v') - { - unfoldedList = TRUE; - [cellText setString:[cellText substringFromIndex:1]]; - } - else if([cellText characterAtIndex:0] == '*') - { - needsIndent = TRUE; - [cellText setString:[cellText substringFromIndex:1]]; - } - //PARSE AND REMOVE TAG - NSInteger lastPos = [cellText rangeOfString:@"]"].location; - NSInteger cellTag = [[cellText substringWithRange:NSMakeRange(1,lastPos-1)] intValue]; - [cell setTag:cellTag]; - [cellText setString:[cellText substringFromIndex:lastPos+1]]; - //SET FINAL TEXT - [[cell textLabel] setText:NSLocalizedString(cellText,nil)]; - - //MAINTENANCE CELLS - if([self currentNavLevel] == MAINTENANCE) - { - [[[cell contentView] viewWithTag:CELL_CARAT_TAG] removeFromSuperview]; - [[cell detailTextLabel] setText:@""]; - [cell setAccessoryView:nil]; - [cell setAccessoryType:UITableViewCellAccessoryNone]; - if(foldedList) - { - NSInteger cellHeight = cell.contentView.frame.size.height; - UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,cellHeight/2 - (11/2),11,11)]; - imageView.image = [UIImage imageNamed:@"carat.png"]; - imageView.tag = CELL_CARAT_TAG; - [cell.contentView addSubview:imageView]; - } - else if(unfoldedList) - { - NSInteger cellHeight = cell.contentView.frame.size.height; - UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,cellHeight/2 - (11/2),11,11)]; - imageView.image = [UIImage imageNamed:@"carat-open.png"]; - imageView.tag = CELL_CARAT_TAG; - [cell.contentView addSubview:imageView]; - } - if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Channels Present",nil)]) - { - [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%d",[[self sensorStatus] numChannels]]]; - [cell setAccessoryView:nil]; - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Product Present in Channel",nil)]) - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; - for(int i = 0; i < [[self sensorStatus] numChannels]; i++) - { - if([[[[self sensorStatus] channelProductAvailability] objectAtIndex:i] intValue] != 1) - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; - break; - } - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Channel Engine Status",nil)]) - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; - for(int i = 0; i < [[self sensorStatus] numChannels]; i++) - { - if([[[[self sensorStatus] channelStatus] objectAtIndex:i] intValue] != 1) - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; - break; - } - } - } - else if([[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"%@ (\\d+)",NSLocalizedString(@"Channel",nil)] options:0 error:NULL] numberOfMatchesInString:[[cell textLabel] text] options:0 range:(NSMakeRange(0,[[[cell textLabel] text] length]))] != 0) - { - NSUInteger index = [[[[cell textLabel] text] substringFromIndex:([NSLocalizedString(@"Channel",nil) length] + 1)] intValue] - 1; - if([cell tag] == 2001) // Products Present in Channel tag - { - if([[[[self sensorStatus] channelProductAvailability] objectAtIndex:index] intValue] == 1) - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; - } - else - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; - } - } - else if([cell tag] == 2002) // Channel engine status tag - { - if([[[[self sensorStatus] channelStatus] objectAtIndex:index] intValue] == 1) - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; - } - else - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; - } - } - - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Door Sensor",nil)]) - { - if([[self sensorStatus] doorOpen]) - { - [[cell detailTextLabel] setText:NSLocalizedString(@"OPEN",nil)]; - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; - } - else - { - [[cell detailTextLabel] setText:NSLocalizedString(@"CLOSED",nil)]; - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Coil Sensor",nil)]) - { - if([[self sensorStatus] coilOpen]) - { - [[cell detailTextLabel] setText:NSLocalizedString(@"OPEN",nil)]; - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; - } - else - { - [[cell detailTextLabel] setText:NSLocalizedString(@"CLOSED",nil)]; - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Money Collected",nil)]) - { - double numCollected = 0; - numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:0] intValue] * 20; - numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:1] intValue] * 10; - numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:2] intValue] * 5; - numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:3] intValue] * 2; - numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:4] intValue] * 1; - numCollected += [[[[self sensorStatus] moneyCollected] objectAtIndex:5] intValue] * 0.50; - [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%.2f",numCollected]]; - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Money Returned",nil)]) - { - double numReturned = 0; - numReturned += [[[[self sensorStatus] moneyReturned] objectAtIndex:0] intValue] * 2; - numReturned += [[[[self sensorStatus] moneyReturned] objectAtIndex:1] intValue] * 1; - numReturned += [[[[self sensorStatus] moneyReturned] objectAtIndex:2] intValue] * 0.50; - [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%.2f",numReturned]]; - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Products Sold",nil)]) - { - NSInteger numSold = 0; - for(int i = 0; i < MAX_PRODUCTS; i++) - { - numSold += [[[[self sensorStatus] productsSold] objectAtIndex:i] intValue]; - } - [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%d",numSold]]; - } - else if([[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"%@ (\\d+)",NSLocalizedString(@"Product",nil)] options:0 error:NULL] numberOfMatchesInString:[[cell textLabel] text] options:0 range:(NSMakeRange(0,[[[cell textLabel] text] length]))] != 0) - { - NSUInteger index = [[[[cell textLabel] text] substringFromIndex:([NSLocalizedString(@"Product",nil) length] + 1)] intValue] - 1; - if([cell tag] == 2007) - { - [[cell detailTextLabel] setText:[[[[self sensorStatus] productsSold] objectAtIndex:index] stringValue]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Change Available",nil)]) - { - [[cell detailTextLabel] setText:@""]; - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; - for(int i = 0; i < CHANGE_NUM_UNITS; i++) - { - if([[[[self sensorStatus] changeAvailable] objectAtIndex:i] intValue] != 1) - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; - break; - } - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"20€ Notes",nil)]) - { - if([cell tag] == 2005) - { - [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:0] stringValue]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"10€ Notes",nil)]) - { - if([cell tag] == 2005) - { - [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:1] stringValue]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"5€ Notes",nil)]) - { - if([cell tag] == 2005) - { - [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:2] stringValue]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"2€ Coins",nil)]) - { - if([cell tag] == 2005) - { - [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:3] stringValue]]; - } - else if([cell tag] == 2006) - { - [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyReturned] objectAtIndex:0] stringValue]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"1€ Coins",nil)]) - { - if([cell tag] == 2005) - { - [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:4] stringValue]]; - } - else if([cell tag] == 2006) - { - [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyReturned] objectAtIndex:1] stringValue]]; - } - else if([cell tag] == 2008) - { - if([[[[self sensorStatus] changeAvailable] objectAtIndex:0] intValue] == 1) - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; - } - else - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; - } - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"50c Coins",nil)]) - { - if([cell tag] == 2005) - { - [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyCollected] objectAtIndex:5] stringValue]]; - } - else if([cell tag] == 2006) - { - [[cell detailTextLabel] setText:[[[[self sensorStatus] moneyReturned] objectAtIndex:2] stringValue]]; - } - else if([cell tag] == 2008) - { - if([[[[self sensorStatus] changeAvailable] objectAtIndex:1] intValue] == 1) - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_checkmark"]]]; - } - else - { - [cell setAccessoryView: [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"icon_delete"]]]; - } - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Sales log",nil)] || - [[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Incident report",nil)] || - [[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Send report",nil)]) - { - [[cell detailTextLabel] setText:@""]; - [cell setAccessoryView:nil]; - [cell setAccessoryType:UITableViewCellAccessoryDisclosureIndicator]; - } - } - else if([self currentNavLevel] == SALE) - { - [[[cell contentView] viewWithTag:CELL_CARAT_TAG] removeFromSuperview]; - [[cell detailTextLabel] setText:@""]; - [cell setAccessoryView:nil]; - [cell setAccessoryType:UITableViewCellAccessoryNone]; - if(foldedList) - { - NSInteger cellHeight = cell.contentView.frame.size.height; - UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,cellHeight/2 - (11/2),11,11)]; - imageView.image = [UIImage imageNamed:@"carat.png"]; - imageView.tag = CELL_CARAT_TAG; - [cell.contentView addSubview:imageView]; - } - else if(unfoldedList) - { - NSInteger cellHeight = cell.contentView.frame.size.height; - UIImageView * imageView = [[UIImageView alloc] initWithFrame:CGRectMake(0,cellHeight/2 - (11/2),11,11)]; - imageView.image = [UIImage imageNamed:@"carat-open.png"]; - imageView.tag = CELL_CARAT_TAG; - [cell.contentView addSubview:imageView]; - } - if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Money Paid",nil)]) - { - double numCollected = 0; - numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:0] intValue] * 20; - numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:1] intValue] * 10; - numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:2] intValue] * 5; - numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:3] intValue] * 2; - numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:4] intValue] * 1; - numCollected += [[[[self currentSale] moneyPaid] objectAtIndex:5] intValue] * 0.50; - [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%.2f",numCollected]]; - [cell setAccessoryView:nil]; - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Channel",nil)]) - { - [[cell detailTextLabel] setText:[[self currentSale] channel]]; - [cell setAccessoryView:nil]; - } - if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Product Code",nil)]) - { - [[cell detailTextLabel] setText:[[self currentSale] productCode]]; - [cell setAccessoryView:nil]; - } - if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Product Price",nil)]) - { - [[cell detailTextLabel] setText:[[self currentSale] normalPrice]]; - [cell setAccessoryView:nil]; - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Money Returned",nil)]) - { - double numReturned = 0; - numReturned += [[[[self currentSale] moneyReturned] objectAtIndex:0] intValue] * 2; - numReturned += [[[[self currentSale] moneyReturned] objectAtIndex:1] intValue] * 1; - numReturned += [[[[self currentSale] moneyReturned] objectAtIndex:2] intValue] * 0.50; - [[cell detailTextLabel] setText:[NSString stringWithFormat:@"%.2f",numReturned]]; - [cell setAccessoryView:nil]; - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"20€ Notes",nil)]) - { - if([cell tag] == 3000) - { - [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid] objectAtIndex:0] stringValue]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"10€ Notes",nil)]) - { - if([cell tag] == 3000) - { - [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid] objectAtIndex:1] stringValue]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"5€ Notes",nil)]) - { - if([cell tag] == 3000) - { - [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid] objectAtIndex:2] stringValue]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"2€ Coins",nil)]) - { - if([cell tag] == 3000) - { - [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid] objectAtIndex:3] stringValue]]; - } - else if([cell tag] == 3004) - { - [[cell detailTextLabel] setText:[[[[self currentSale] moneyReturned] objectAtIndex:0] stringValue]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"1€ Coins",nil)]) - { - if([cell tag] == 3000) - { - [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid] objectAtIndex:4] stringValue]]; - } - else if([cell tag] == 3004) - { - [[cell detailTextLabel] setText:[[[[self currentSale] moneyReturned] objectAtIndex:1] stringValue]]; - } - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"50c Coins",nil)]) - { - if([cell tag] == 3000) - { - [[cell detailTextLabel] setText:[[[[self currentSale] moneyPaid]objectAtIndex:5] stringValue]]; - } - else if([cell tag] == 3004) - { - [[cell detailTextLabel] setText:[[[[self currentSale] moneyReturned] objectAtIndex:2] stringValue]]; - } - } - } - else if([self currentNavLevel] == INCIDENT) - { - [[[cell contentView] viewWithTag:CELL_CARAT_TAG] removeFromSuperview]; - [[cell detailTextLabel] setText:@""]; - [cell setAccessoryView:nil]; - [cell setAccessoryType:UITableViewCellAccessoryNone]; - if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Error Code",nil)]) - { - [[cell detailTextLabel] setText:[self.currentIncident errorCode]]; - [cell setAccessoryView:nil]; - } - else if([[[cell textLabel] text] isEqualToString:NSLocalizedString(@"Error Value",nil)]) - { - [[cell detailTextLabel] setText:[self.currentIncident errorValue]]; - [cell setAccessoryView:nil]; - } - } - return cell; -} - -//DELEGATE FUNCTIONS -- (void)passDateViewController:(DatePickerViewController *)controller didFinishEnteringItem:(NSDate *)date -{ - NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; - NSDateComponents *components = [calendar components:units fromDate:date]; - NSLog(@"[MenuTableViewController.m]: %@", components); - [_protocol updateTime: components]; - [self setSentCommand:A5]; - [self startTimeoutTimer]; -} - -- (void)passPriceViewController:(PriceChangerViewController *)controller didFinishEnteringItem:(NSArray *)data -{ - NSLog(@"[MenuTableViewController.m]: %@", data); - //Channel,Code,Price - NSString *channelString = [data objectAtIndex:0]; - NSString *codeString = [data objectAtIndex:1]; - NSString *priceString = [data objectAtIndex:2]; - if(![[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"^\\d+(\\.\\d+)?$"] options:0 error:NULL] numberOfMatchesInString:priceString options:0 range:NSMakeRange(0,[priceString length])]) - { - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Entered price has an invalid format",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - } - else if([channelString length] == 0) - { - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Missing channel",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - } - else if([codeString length] == 0) - { - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Missing product code",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - } - else if(![[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"\\d+"] options:0 error:NULL] numberOfMatchesInString:channelString options:0 range:NSMakeRange(0,[channelString length])]) - { - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Entered channel has an invalid format",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - } - else if(![[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"\\d+"] options:0 error:NULL] numberOfMatchesInString:codeString options:0 range:NSMakeRange(0,[codeString length])]) - { - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Entered product code has an invalid format",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - } - else - { - int channel = [channelString intValue]; - int code = [codeString intValue]; - NSArray *price = [priceString componentsSeparatedByString:@"."]; - [_protocol updatePrice:channel :code :[[price objectAtIndex:0] intValue] :[[price objectAtIndex:1] intValue]]; - [self setSentCommand:A6]; - [self startTimeoutTimer]; - } -} - -- (void)passNameViewController:(PriceChangerViewController *)controller didFinishEnteringItem:(NSArray *)data -{ - NSLog(@"[MenuTableViewController.m]: %@", data); - //Channel,Code,Name - NSString *channelString = [data objectAtIndex:0]; - NSString *codeString = [data objectAtIndex:1]; - NSString *name = [data objectAtIndex:2]; - if([channelString length] == 0) - { - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Missing channel",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - } - else if([codeString length] == 0) - { - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Missing product code",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - } - else if(![[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"\\d+"] options:0 error:NULL] numberOfMatchesInString:channelString options:0 range:NSMakeRange(0,[channelString length])]) - { - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Entered channel has an invalid format",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - } - else if(![[NSRegularExpression regularExpressionWithPattern:[NSString stringWithFormat:@"\\d+"] options:0 error:NULL] numberOfMatchesInString:codeString options:0 range:NSMakeRange(0,[codeString length])]) - { - UIAlertView* alert = [[UIAlertView alloc] initWithTitle:NSLocalizedString(@"Error",nil) message:NSLocalizedString(@"Entered product code has an invalid format",nil) delegate:nil cancelButtonTitle:NSLocalizedString(@"OK",nil) otherButtonTitles:nil]; - [alert show]; - } - else - { - int channel = [channelString intValue]; - int code = [codeString intValue]; - [_protocol updateProductName:channel :code :name]; - [self setSentCommand:A7]; - [self startTimeoutTimer]; - } -} - -- (void) passDateRangeViewController:(DateRangePickerViewController*)controller didFinishEnteringItem:(NSDate*) from : (NSDate*) to -{ - [NSThread sleepForTimeInterval:1]; //HACK! - if([self requestedLog] == SALES_LOG) - { - NSLog(@"[MenuTableViewController.m]: Changing to navLevel: SALE_LIST"); - - NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; - NSDateComponents *componentsFrom = nil; - NSDateComponents *componentsTo = nil; - if(from != nil) - { - componentsFrom = [calendar components:units fromDate:from]; - } - if(to != nil) - { - componentsTo = [calendar components:units fromDate:to]; - } - [_protocol readSalesLog: componentsFrom : componentsTo]; - [self setSentCommand:A2]; - [self startTimeoutTimer]; - } - else if([self requestedLog] == INCIDENT_LOG) - { - NSLog(@"[MenuTableViewController.m]: Changing to navLevel: INCIDENT_LIST"); - - NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit; - NSDateComponents *componentsFrom = nil; - NSDateComponents *componentsTo = nil; - if(from != nil) - { - componentsFrom = [calendar components:units fromDate:from]; - } - if(to != nil) - { - componentsTo = [calendar components:units fromDate:to]; - } - [_protocol readIncidentLog: componentsFrom : componentsTo]; - [self setSentCommand:A3]; - [self startTimeoutTimer]; - } -} - -@end diff --git a/DUREX Vendor Control/NameChangerViewController.h b/DUREX Vendor Control/NameChangerViewController.h deleted file mode 100644 index 0c21f59..0000000 --- a/DUREX Vendor Control/NameChangerViewController.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// NameChangerViewController.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 9/3/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -@class NameChangerViewController; - -#import -#import -#import "BTAppDelegate.h" - -@protocol NameChangerViewControllerDelegate -- (void)passNameViewController:(NameChangerViewController*)controller didFinishEnteringItem:(NSArray *)data; - -@end - - -@interface NameChangerViewController : UIViewController - -@property (strong, nonatomic) IBOutlet UIView *nameChangerView; -@property (strong, nonatomic) IBOutlet UITextField *name; -@property (strong, nonatomic) IBOutlet UITextField *channel; -@property (strong, nonatomic) IBOutlet UITextField *code; -@property (nonatomic, strong) id delegate; - -- (void)showInView:(UIView *)aView animated:(BOOL)animated; -- (IBAction)closePopup:(id)sender; - - -@end \ No newline at end of file diff --git a/DUREX Vendor Control/NameChangerViewController.m b/DUREX Vendor Control/NameChangerViewController.m deleted file mode 100644 index 993b8a7..0000000 --- a/DUREX Vendor Control/NameChangerViewController.m +++ /dev/null @@ -1,102 +0,0 @@ -// -// NameChangerViewController.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 9/3/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "NameChangerViewController.h" - -@interface NameChangerViewController () - -@end - -@implementation NameChangerViewController - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - // Custom initialization - } - return self; -} - -- (void)viewDidLoad -{ - self.nameChangerView.layer.cornerRadius = 5; - self.nameChangerView.layer.shadowOpacity = 0.8; - self.nameChangerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); - - self.code.delegate = self; - self.channel.delegate = self; - self.name.delegate = self; - - UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] - initWithTarget:self - action:@selector(dismissKeyboard)]; - - [self.view addGestureRecognizer:tap]; - - [super viewDidLoad]; - // Do any additional setup after loading the view from its nib. -} - --(void)dismissKeyboard -{ - [self.code resignFirstResponder]; - [self.name resignFirstResponder]; - [self.channel resignFirstResponder]; -} - --(BOOL)textFieldShouldReturn:(UITextField *)textField -{ - [textField resignFirstResponder]; - return YES; -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -- (void)showAnimate -{ - self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); - self.view.alpha = 0; - [UIView animateWithDuration:.25 animations:^{ - self.view.alpha = 1; - self.view.transform = CGAffineTransformMakeScale(1, 1); - }]; -} - -- (void)removeAnimate -{ - [UIView animateWithDuration:.25 animations:^{ - self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); - self.view.alpha = 0.0; - } completion:^(BOOL finished) { - if (finished) { - [self.view removeFromSuperview]; - } - }]; -} - -- (IBAction)closePopup:(id)sender -{ - NSArray *data = [[NSArray alloc] initWithObjects:[[self channel] text],[[self code] text],[[self name] text], nil]; - [self.delegate passNameViewController:self didFinishEnteringItem:data]; - [self removeAnimate]; -} - -- (void)showInView:(UIView *)aView animated:(BOOL)animated -{ - [aView addSubview:self.view]; - if (animated) { - [self showAnimate]; - } -} - -@end diff --git a/DUREX Vendor Control/PriceChangerViewController.h b/DUREX Vendor Control/PriceChangerViewController.h deleted file mode 100644 index c12d175..0000000 --- a/DUREX Vendor Control/PriceChangerViewController.h +++ /dev/null @@ -1,33 +0,0 @@ -// -// PriceChangerViewController.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 9/3/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -@class PriceChangerViewController; - -#import -#import -#import "BTAppDelegate.h" - -@protocol PriceChangerViewControllerDelegate -- (void)passPriceViewController:(PriceChangerViewController*)controller didFinishEnteringItem:(NSArray *)data; - -@end - - -@interface PriceChangerViewController : UIViewController - -@property (strong, nonatomic) IBOutlet UIView *priceChangerView; -@property (strong, nonatomic) IBOutlet UITextField *price; -@property (strong, nonatomic) IBOutlet UITextField *channel; -@property (strong, nonatomic) IBOutlet UITextField *code; -@property (nonatomic, strong) id delegate; - -- (void)showInView:(UIView *)aView animated:(BOOL)animated; -- (IBAction)closePopup:(id)sender; - - -@end diff --git a/DUREX Vendor Control/PriceChangerViewController.m b/DUREX Vendor Control/PriceChangerViewController.m deleted file mode 100644 index 9a974e3..0000000 --- a/DUREX Vendor Control/PriceChangerViewController.m +++ /dev/null @@ -1,120 +0,0 @@ -// -// PriceChangerViewController.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 9/3/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "PriceChangerViewController.h" - -@interface PriceChangerViewController () - -@end - -@implementation PriceChangerViewController - -- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil -{ - self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; - if (self) { - // Custom initialization - } - return self; -} - -- (void)viewDidLoad -{ - self.priceChangerView.layer.cornerRadius = 5; - self.priceChangerView.layer.shadowOpacity = 0.8; - self.priceChangerView.layer.shadowOffset = CGSizeMake(0.0f, 0.0f); - - self.code.delegate = self; - self.channel.delegate = self; - self.price.delegate = self; - - UITapGestureRecognizer *tap = [[UITapGestureRecognizer alloc] - initWithTarget:self - action:@selector(dismissKeyboard)]; - - [self.view addGestureRecognizer:tap]; - - [super viewDidLoad]; - // Do any additional setup after loading the view from its nib. -} - --(void)dismissKeyboard -{ - [self.code resignFirstResponder]; - [self.price resignFirstResponder]; - [self.channel resignFirstResponder]; -} - --(BOOL)textFieldShouldReturn:(UITextField *)textField -{ - [textField resignFirstResponder]; - return YES; -} - -- (void)didReceiveMemoryWarning -{ - [super didReceiveMemoryWarning]; - // Dispose of any resources that can be recreated. -} - -- (void)showAnimate -{ - self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); - self.view.alpha = 0; - [UIView animateWithDuration:.25 animations:^{ - self.view.alpha = 1; - self.view.transform = CGAffineTransformMakeScale(1, 1); - }]; -} - -- (void)removeAnimate -{ - [UIView animateWithDuration:.25 animations:^{ - self.view.transform = CGAffineTransformMakeScale(1.3, 1.3); - self.view.alpha = 0.0; - } completion:^(BOOL finished) { - if (finished) { - [self.view removeFromSuperview]; - } - }]; -} - -- (void) formatPrice -{ - NSMutableString *priceText = [NSMutableString stringWithString:[[self price] text]]; - [priceText replaceOccurrencesOfString:@"," withString:@"." options:NSLiteralSearch range:NSMakeRange(0, [priceText length])]; - NSUInteger commaPos = [priceText rangeOfString:@"."].location; - if(commaPos == NSNotFound) - { - [priceText appendString:@".00"]; - } - else if(commaPos == [priceText length] - 2) - { - [priceText appendString:@"0"]; - } - [[self price] setText:priceText]; -} - -- (IBAction)closePopup:(id)sender -{ - [self formatPrice]; - NSArray *data = [[NSArray alloc] initWithObjects:[[self channel] text],[[self code] text],[[self price] text], nil]; - [self.delegate passPriceViewController:self didFinishEnteringItem:data]; - [self removeAnimate]; -} - -- (void)showInView:(UIView *)aView animated:(BOOL)animated -{ - [aView addSubview:self.view]; - if (animated) { - [self showAnimate]; - } -} - - -@end diff --git a/DUREX Vendor Control/Sale.h b/DUREX Vendor Control/Sale.h deleted file mode 100644 index 0d901be..0000000 --- a/DUREX Vendor Control/Sale.h +++ /dev/null @@ -1,23 +0,0 @@ -// -// Sale.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 07/09/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import -#import "CommunicationProtocol.h" - -@interface Sale : NSObject - -@property (strong,nonatomic) NSMutableArray *moneyPaid; -@property (strong,nonatomic) NSMutableArray *moneyReturned; -@property NSString *productCode; -@property NSString *normalPrice; -@property NSString *channel; -@property NSDate *saleTime; - -- (id) init; - -@end diff --git a/DUREX Vendor Control/Sale.m b/DUREX Vendor Control/Sale.m deleted file mode 100644 index a8b3b7c..0000000 --- a/DUREX Vendor Control/Sale.m +++ /dev/null @@ -1,20 +0,0 @@ -// -// Sale.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 07/09/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "Sale.h" - -@implementation Sale - -- (id) init -{ - [self setMoneyPaid:[[NSMutableArray alloc]init]]; - [self setMoneyReturned:[[NSMutableArray alloc]init]]; - return self; -} - -@end diff --git a/DUREX Vendor Control/SalesLog.h b/DUREX Vendor Control/SalesLog.h deleted file mode 100644 index ebb6785..0000000 --- a/DUREX Vendor Control/SalesLog.h +++ /dev/null @@ -1,21 +0,0 @@ -// -// SalesLog.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 07/09/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import -#import "CommunicationProtocol.h" -#import "Sale.h" - -@interface SalesLog : NSObject - -@property (strong,nonatomic) NSString *response; -@property (strong,nonatomic) NSMutableArray *sales; - -- (id) init; -- (void) setResponseValue:(NSString *)response; - -@end diff --git a/DUREX Vendor Control/SalesLog.m b/DUREX Vendor Control/SalesLog.m deleted file mode 100644 index 363dbbe..0000000 --- a/DUREX Vendor Control/SalesLog.m +++ /dev/null @@ -1,66 +0,0 @@ -// -// SalesLog.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 07/09/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "SalesLog.h" - -@implementation SalesLog - -- (id) init -{ - [self setSales:[[NSMutableArray alloc] init]]; - return self; -} - -- (void) setResponseValue:(NSString *)response -{ - [self setResponse: response]; - [self parseResponse]; -} - -- (void) parseResponse -{ - NSInteger currentSale = 0; - NSCalendar *calendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar]; - NSCalendarUnit units = NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit; - NSDateComponents *saleDate = [[NSDateComponents alloc] init]; - NSInteger currentYear = [[calendar components:units fromDate:[NSDate date]] year]; - currentYear = (currentYear/100)*100; - while(![[[self response] substringWithRange:NSMakeRange((currentSale*SALE_STRING_LENGTH), 4)] isEqualToString:@"P2P2"]) - { - Sale *sale = [[Sale alloc] init]; - [saleDate setYear:(currentYear + [[[self response] substringWithRange:NSMakeRange(2 + currentSale*SALE_STRING_LENGTH, 2)] intValue])]; - [saleDate setMonth:[[[self response] substringWithRange:NSMakeRange(4 + currentSale*SALE_STRING_LENGTH, 2)] intValue]]; - [saleDate setDay:[[[self response] substringWithRange:NSMakeRange(6 + currentSale*SALE_STRING_LENGTH, 2)] intValue]]; - [saleDate setHour:[[[self response] substringWithRange:NSMakeRange(8 + currentSale*SALE_STRING_LENGTH, 2)] intValue]]; - [saleDate setMinute:[[[self response] substringWithRange:NSMakeRange(10 + currentSale*SALE_STRING_LENGTH, 2)] intValue]]; - [sale setSaleTime:[calendar dateFromComponents:saleDate]]; - NSLog(@"date: %@",[calendar dateFromComponents:saleDate]); - [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(12 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:0]; - [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(14 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:1]; - [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(16 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:2]; - [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(18 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:3]; - [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(20 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:4]; - [[sale moneyPaid] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(22 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:5]; - NSLog(@"moneyPaid: %@",[sale moneyPaid]); - [sale setChannel:[[self response] substringWithRange:NSMakeRange(24 + currentSale*SALE_STRING_LENGTH, 1)]]; - NSLog(@"channel: %@",[sale channel]); - [sale setProductCode:[[self response] substringWithRange:NSMakeRange(25 + currentSale*SALE_STRING_LENGTH, 1)]]; - NSLog(@"productCode: %@",[sale productCode]); - [sale setNormalPrice: [NSString stringWithFormat:@"%d,%02d €",[[[self response] substringWithRange:NSMakeRange(26 + currentSale*SALE_STRING_LENGTH, 2)] intValue],[[[self response] substringWithRange:NSMakeRange(28 + currentSale*SALE_STRING_LENGTH, 2)] intValue]]]; - NSLog(@"normalPrice: %@",[sale normalPrice]); - [[sale moneyReturned] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(30 + currentSale*SALE_STRING_LENGTH, 2)] intValue]] atIndex:0]; - [[sale moneyReturned] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(32 + currentSale*SALE_STRING_LENGTH , 2)] intValue]] atIndex:1]; - [[sale moneyReturned] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:NSMakeRange(34 + currentSale*SALE_STRING_LENGTH , 2)] intValue]] atIndex:2]; - NSLog(@"moneyReturned: %@",[sale moneyReturned]); - [[self sales] insertObject:sale atIndex:currentSale]; - currentSale++; - } - NSLog(@"%@",[self sales]); -} - -@end diff --git a/DUREX Vendor Control/Sensors.h b/DUREX Vendor Control/Sensors.h deleted file mode 100644 index 081dd97..0000000 --- a/DUREX Vendor Control/Sensors.h +++ /dev/null @@ -1,28 +0,0 @@ -// -// Sensors.h -// DUREX Vendor Control -// -// Created by Imanol Barba on 9/5/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import -#import "CommunicationProtocol.h" - -@interface Sensors : NSObject - -@property (strong,nonatomic) NSString *response; -@property NSUInteger numChannels; -@property (strong,nonatomic) NSMutableArray *channelProductAvailability; -@property (strong,nonatomic) NSMutableArray *channelStatus; -@property Boolean doorOpen; -@property Boolean coilOpen; -@property (strong,nonatomic) NSMutableArray *moneyCollected; -@property (strong,nonatomic) NSMutableArray *moneyReturned; -@property (strong,nonatomic) NSMutableArray *productsSold; -@property (strong,nonatomic) NSMutableArray *changeAvailable; - -- (id) init; -- (void) setResponseValue:(NSString *)response; - -@end diff --git a/DUREX Vendor Control/Sensors.m b/DUREX Vendor Control/Sensors.m deleted file mode 100644 index e46e77f..0000000 --- a/DUREX Vendor Control/Sensors.m +++ /dev/null @@ -1,148 +0,0 @@ -// -// Sensors.m -// DUREX Vendor Control -// -// Created by Imanol Barba on 9/5/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import "Sensors.h" - -@interface Sensors () - -@end - -@implementation Sensors - -- (id) init -{ - [self setChannelProductAvailability:[[NSMutableArray alloc]init]]; - [self setChannelStatus:[[NSMutableArray alloc]init]]; - [self setMoneyCollected:[[NSMutableArray alloc]init]]; - [self setMoneyReturned:[[NSMutableArray alloc]init]]; - [self setProductsSold:[[NSMutableArray alloc]init]]; - [self setChangeAvailable:[[NSMutableArray alloc] init]]; - - return self; -} - -- (void) setResponseValue:(NSString *)response -{ - [self setResponse:response]; - [self parseResponse]; -} - -- (void) parseResponse -{ - uint8_t channelCount = 0; - uint16_t channelStatus = 0; - uint16_t channelAvailability = 0; - uint16_t channelMotors = 0; - - NSRange substrRange; - substrRange.length = 5; - substrRange.location = 2; - - channelStatus = [[[self response] substringWithRange:substrRange] intValue]; - substrRange.location += 5; - - channelAvailability = [[[self response] substringWithRange:substrRange] intValue]; - substrRange.location += 5; - - channelMotors = [[[self response] substringWithRange:substrRange] intValue]; - substrRange.location += 5; - - for(int i = 0; i < MAX_CHANNELS; i++) - { - if(channelStatus & 0x01) - { - channelCount++; - } - channelStatus >>= 1; - } - [self setNumChannels:channelCount]; - - for(int i = 0; i < MAX_CHANNELS; i++) - { - if(channelAvailability & 0x01) - { - [[self channelProductAvailability] insertObject:[NSNumber numberWithBool:TRUE] atIndex:i]; - } - else - { - [[self channelProductAvailability] insertObject:[NSNumber numberWithBool:FALSE] atIndex:i]; - } - channelAvailability >>= 1; - } - - for(int i = 0; i < MAX_CHANNELS; i++) - { - if(channelMotors & 0x01) - { - [[self channelStatus] insertObject:[NSNumber numberWithBool:TRUE] atIndex:i]; - } - else - { - [[self channelStatus] insertObject:[NSNumber numberWithBool:FALSE] atIndex:i]; - } - channelMotors >>= 1; - } - - if([[self response] characterAtIndex:17] == '1') - { - [self setDoorOpen:TRUE]; - } - else - { - [self setDoorOpen:FALSE]; - } - - if([[self response] characterAtIndex:18] == '1') - { - [self setCoilOpen:TRUE]; - } - else - { - [self setCoilOpen:FALSE]; - } - substrRange.length = 3; - substrRange.location = 19; - - for(int i = 0; i < MONEY_IN_NUM_UNITS; i++) - { - [[self moneyCollected] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:substrRange] intValue]] atIndex:i]; - substrRange.location += 3; - } - for(int i = 0; i < MONEY_OUT_NUM_UNITS; i++) - { - [[self moneyReturned] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:substrRange] intValue]] atIndex:i]; - substrRange.location += 3; - } - - substrRange.length = 2; - for(int i = 0; i < MAX_PRODUCTS; i++) - { - [[self productsSold] insertObject:[NSNumber numberWithInt:[[[self response] substringWithRange:substrRange] intValue]] atIndex:i]; - substrRange.location += 2; - } - - if([[self response] characterAtIndex:78] == '1') - { - [[self changeAvailable]insertObject:[NSNumber numberWithBool:TRUE] atIndex:0]; - } - else - { - [[self changeAvailable]insertObject:[NSNumber numberWithBool:FALSE] atIndex:0]; - } - - if([[self response] characterAtIndex:79] == '1') - { - [[self changeAvailable]insertObject:[NSNumber numberWithBool:TRUE] atIndex:1]; - } - else - { - [[self changeAvailable]insertObject:[NSNumber numberWithBool:FALSE] atIndex:1]; - } -} - -@end diff --git a/DUREX Vendor Control/Stack.h b/DUREX Vendor Control/Stack.h deleted file mode 100644 index c0cbe1a..0000000 --- a/DUREX Vendor Control/Stack.h +++ /dev/null @@ -1,19 +0,0 @@ -// -// Stack.h -// DUREX test -// -// Created by Imanol Barba on 5/23/14. -// Copyright (c) 2014 Emmoco. All rights reserved. -// - -#import - -@interface Stack : NSObject - -- (id) init; -- (void) push: (id) element; -- (id) pop; -- (NSInteger) count; -- (void) clear; - -@end diff --git a/DUREX Vendor Control/Stack.m b/DUREX Vendor Control/Stack.m deleted file mode 100644 index 25d90b4..0000000 --- a/DUREX Vendor Control/Stack.m +++ /dev/null @@ -1,49 +0,0 @@ -// -// Stack.m -// DUREX test -// -// Created by Imanol Barba on 5/23/14. -// Copyright (c) 2014 Emmoco. All rights reserved.retur -// - -#import "Stack.h" - -@interface Stack () - -@property (strong,nonatomic) NSMutableArray *dataArray; -@property (nonatomic) NSUInteger lastPosition; -@end - -@implementation Stack - -- (id) init -{ - self = [super init]; - [self setLastPosition: 0]; - [self setDataArray:[[NSMutableArray alloc] init]]; - return self; -} - -- (void) push: (id) element -{ - [[self dataArray] addObject:element]; - [self setLastPosition: [self lastPosition] + 1]; -} -- (id) pop -{ - id element; - [self setLastPosition: [self lastPosition] - 1]; - element = [[self dataArray] objectAtIndex:[self lastPosition]]; - [[self dataArray] removeLastObject]; - return element; -} -- (NSInteger) count -{ - return [[self dataArray] count]; -} -- (void) clear -{ - [[self dataArray] removeAllObjects]; -} - -@end diff --git a/DUREX Vendor Control/UIView+Toast.h b/DUREX Vendor Control/UIView+Toast.h deleted file mode 100755 index f4c1832..0000000 --- a/DUREX Vendor Control/UIView+Toast.h +++ /dev/null @@ -1,50 +0,0 @@ -/*************************************************************************** - -UIView+Toast.h -Toast - -Copyright (c) 2013 Charles Scalesse. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -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 UIView (Toast) - -// each makeToast method creates a view and displays it as toast -- (void)makeToast:(NSString *)message; -- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position; -- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position image:(UIImage *)image; -- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position title:(NSString *)title; -- (void)makeToast:(NSString *)message duration:(NSTimeInterval)interval position:(id)position title:(NSString *)title image:(UIImage *)image; - -// displays toast with an activity spinner -- (void)makeToastActivity; -- (void)makeToastActivity:(id)position; -- (void)hideToastActivity; - -// the showToast methods display any view as toast -- (void)showToast:(UIView *)toast; -- (void)showToast:(UIView *)toast duration:(NSTimeInterval)interval position:(id)point; - -@end diff --git a/DUREX Vendor Control/UIView+Toast.m b/DUREX Vendor Control/UIView+Toast.m deleted file mode 100755 index 00408d5..0000000 --- a/DUREX Vendor Control/UIView+Toast.m +++ /dev/null @@ -1,365 +0,0 @@ -// -// UIView+Toast.m -// Toast -// -// Copyright 2013 Charles Scalesse. -// - -#import "UIView+Toast.h" -#import -#import - -/* - * CONFIGURE THESE VALUES TO ADJUST LOOK & FEEL, - * DISPLAY DURATION, ETC. - */ - -// general appearance -static const CGFloat CSToastMaxWidth = 0.8; // 80% of parent view width -static const CGFloat CSToastMaxHeight = 0.8; // 80% of parent view height -static const CGFloat CSToastHorizontalPadding = 10.0; -static const CGFloat CSToastVerticalPadding = 10.0; -static const CGFloat CSToastCornerRadius = 10.0; -static const CGFloat CSToastOpacity = 0.8; -static const CGFloat CSToastFontSize = 16.0; -static const CGFloat CSToastMaxTitleLines = 0; -static const CGFloat CSToastMaxMessageLines = 0; -static const NSTimeInterval CSToastFadeDuration = 0.2; - -// shadow appearance -static const CGFloat CSToastShadowOpacity = 0.8; -static const CGFloat CSToastShadowRadius = 6.0; -static const CGSize CSToastShadowOffset = { 4.0, 4.0 }; -static const BOOL CSToastDisplayShadow = YES; - -// display duration and position -static const NSString * CSToastDefaultPosition = @"bottom"; -static const NSTimeInterval CSToastDefaultDuration = 3.0; - -// image view size -static const CGFloat CSToastImageViewWidth = 80.0; -static const CGFloat CSToastImageViewHeight = 80.0; - -// activity -static const CGFloat CSToastActivityWidth = 100.0; -static const CGFloat CSToastActivityHeight = 100.0; -static const NSString * CSToastActivityDefaultPosition = @"center"; - -// interaction -static const BOOL CSToastHidesOnTap = YES; // excludes activity views - -// associative reference keys -static const NSString * CSToastTimerKey = @"CSToastTimerKey"; -static const NSString * CSToastActivityViewKey = @"CSToastActivityViewKey"; - -@interface UIView (ToastPrivate) - -- (void)hideToast:(UIView *)toast; -- (void)toastTimerDidFinish:(NSTimer *)timer; -- (void)handleToastTapped:(UITapGestureRecognizer *)recognizer; -- (CGPoint)centerPointForPosition:(id)position withToast:(UIView *)toast; -- (UIView *)viewForMessage:(NSString *)message title:(NSString *)title image:(UIImage *)image; -- (CGSize)sizeForString:(NSString *)string font:(UIFont *)font constrainedToSize:(CGSize)constrainedSize lineBreakMode:(NSLineBreakMode)lineBreakMode; - -@end - - -@implementation UIView (Toast) - -#pragma mark - Toast Methods - -- (void)makeToast:(NSString *)message { - [self makeToast:message duration:CSToastDefaultDuration position:CSToastDefaultPosition]; -} - -- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position { - UIView *toast = [self viewForMessage:message title:nil image:nil]; - [self showToast:toast duration:duration position:position]; -} - -- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position title:(NSString *)title { - UIView *toast = [self viewForMessage:message title:title image:nil]; - [self showToast:toast duration:duration position:position]; -} - -- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position image:(UIImage *)image { - UIView *toast = [self viewForMessage:message title:nil image:image]; - [self showToast:toast duration:duration position:position]; -} - -- (void)makeToast:(NSString *)message duration:(NSTimeInterval)duration position:(id)position title:(NSString *)title image:(UIImage *)image { - UIView *toast = [self viewForMessage:message title:title image:image]; - [self showToast:toast duration:duration position:position]; -} - -- (void)showToast:(UIView *)toast { - [self showToast:toast duration:CSToastDefaultDuration position:CSToastDefaultPosition]; -} - -- (void)showToast:(UIView *)toast duration:(NSTimeInterval)duration position:(id)point { - toast.center = [self centerPointForPosition:point withToast:toast]; - toast.alpha = 0.0; - - if (CSToastHidesOnTap) { - UITapGestureRecognizer *recognizer = [[UITapGestureRecognizer alloc] initWithTarget:toast action:@selector(handleToastTapped:)]; - [toast addGestureRecognizer:recognizer]; - toast.userInteractionEnabled = YES; - toast.exclusiveTouch = YES; - } - - [self addSubview:toast]; - - [UIView animateWithDuration:CSToastFadeDuration - delay:0.0 - options:(UIViewAnimationOptionCurveEaseOut | UIViewAnimationOptionAllowUserInteraction) - animations:^{ - toast.alpha = 1.0; - } completion:^(BOOL finished) { - NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:duration target:self selector:@selector(toastTimerDidFinish:) userInfo:toast repeats:NO]; - // associate the timer with the toast view - objc_setAssociatedObject (toast, &CSToastTimerKey, timer, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - }]; - -} - -- (void)hideToast:(UIView *)toast { - [UIView animateWithDuration:CSToastFadeDuration - delay:0.0 - options:(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState) - animations:^{ - toast.alpha = 0.0; - } completion:^(BOOL finished) { - [toast removeFromSuperview]; - }]; -} - -#pragma mark - Events - -- (void)toastTimerDidFinish:(NSTimer *)timer { - [self hideToast:(UIView *)timer.userInfo]; -} - -- (void)handleToastTapped:(UITapGestureRecognizer *)recognizer { - NSTimer *timer = (NSTimer *)objc_getAssociatedObject(self, &CSToastTimerKey); - [timer invalidate]; - - [self hideToast:recognizer.view]; -} - -#pragma mark - Toast Activity Methods - -- (void)makeToastActivity { - [self makeToastActivity:CSToastActivityDefaultPosition]; -} - -- (void)makeToastActivity:(id)position { - // sanity - UIView *existingActivityView = (UIView *)objc_getAssociatedObject(self, &CSToastActivityViewKey); - if (existingActivityView != nil) return; - - UIView *activityView = [[UIView alloc] initWithFrame:CGRectMake(0, 0, CSToastActivityWidth, CSToastActivityHeight)]; - activityView.center = [self centerPointForPosition:position withToast:activityView]; - activityView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:CSToastOpacity]; - activityView.alpha = 0.0; - activityView.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin); - activityView.layer.cornerRadius = CSToastCornerRadius; - - if (CSToastDisplayShadow) { - activityView.layer.shadowColor = [UIColor blackColor].CGColor; - activityView.layer.shadowOpacity = CSToastShadowOpacity; - activityView.layer.shadowRadius = CSToastShadowRadius; - activityView.layer.shadowOffset = CSToastShadowOffset; - } - - UIActivityIndicatorView *activityIndicatorView = [[UIActivityIndicatorView alloc] initWithActivityIndicatorStyle:UIActivityIndicatorViewStyleWhiteLarge]; - activityIndicatorView.center = CGPointMake(activityView.bounds.size.width / 2, activityView.bounds.size.height / 2); - [activityView addSubview:activityIndicatorView]; - [activityIndicatorView startAnimating]; - - // associate the activity view with self - objc_setAssociatedObject (self, &CSToastActivityViewKey, activityView, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - - [self addSubview:activityView]; - - [UIView animateWithDuration:CSToastFadeDuration - delay:0.0 - options:UIViewAnimationOptionCurveEaseOut - animations:^{ - activityView.alpha = 1.0; - } completion:nil]; -} - -- (void)hideToastActivity { - UIView *existingActivityView = (UIView *)objc_getAssociatedObject(self, &CSToastActivityViewKey); - if (existingActivityView != nil) { - [UIView animateWithDuration:CSToastFadeDuration - delay:0.0 - options:(UIViewAnimationOptionCurveEaseIn | UIViewAnimationOptionBeginFromCurrentState) - animations:^{ - existingActivityView.alpha = 0.0; - } completion:^(BOOL finished) { - [existingActivityView removeFromSuperview]; - objc_setAssociatedObject (self, &CSToastActivityViewKey, nil, OBJC_ASSOCIATION_RETAIN_NONATOMIC); - }]; - } -} - -#pragma mark - Helpers - -- (CGPoint)centerPointForPosition:(id)point withToast:(UIView *)toast { - if([point isKindOfClass:[NSString class]]) { - // convert string literals @"top", @"bottom", @"center", or any point wrapped in an NSValue object into a CGPoint - if([point caseInsensitiveCompare:@"top"] == NSOrderedSame) { - return CGPointMake(self.bounds.size.width/2, (toast.frame.size.height / 2) + CSToastVerticalPadding); - } else if([point caseInsensitiveCompare:@"bottom"] == NSOrderedSame) { - return CGPointMake(self.bounds.size.width/2, (self.bounds.size.height - (toast.frame.size.height / 2)) - CSToastVerticalPadding); - } else if([point caseInsensitiveCompare:@"center"] == NSOrderedSame) { - return CGPointMake(self.bounds.size.width / 2, self.bounds.size.height / 2); - } - } else if ([point isKindOfClass:[NSValue class]]) { - return [point CGPointValue]; - } - - NSLog(@"Warning: Invalid position for toast."); - return [self centerPointForPosition:CSToastDefaultPosition withToast:toast]; -} - -- (CGSize)sizeForString:(NSString *)string font:(UIFont *)font constrainedToSize:(CGSize)constrainedSize lineBreakMode:(NSLineBreakMode)lineBreakMode { - if ([string respondsToSelector:@selector(boundingRectWithSize:options:attributes:context:)]) { - NSMutableParagraphStyle *paragraphStyle = [[NSMutableParagraphStyle alloc] init]; - paragraphStyle.lineBreakMode = lineBreakMode; - NSDictionary *attributes = @{NSFontAttributeName:font, NSParagraphStyleAttributeName:paragraphStyle}; - CGRect boundingRect = [string boundingRectWithSize:constrainedSize options:NSStringDrawingUsesLineFragmentOrigin attributes:attributes context:nil]; - return CGSizeMake(ceilf(boundingRect.size.width), ceilf(boundingRect.size.height)); - } - -#pragma clang diagnostic push -#pragma clang diagnostic ignored "-Wdeprecated-declarations" - return [string sizeWithFont:font constrainedToSize:constrainedSize lineBreakMode:lineBreakMode]; -#pragma clang diagnostic pop -} - -- (UIView *)viewForMessage:(NSString *)message title:(NSString *)title image:(UIImage *)image { - // sanity - if((message == nil) && (title == nil) && (image == nil)) return nil; - - // dynamically build a toast view with any combination of message, title, & image. - UILabel *messageLabel = nil; - UILabel *titleLabel = nil; - UIImageView *imageView = nil; - - // create the parent view - UIView *wrapperView = [[UIView alloc] init]; - wrapperView.autoresizingMask = (UIViewAutoresizingFlexibleLeftMargin | UIViewAutoresizingFlexibleRightMargin | UIViewAutoresizingFlexibleTopMargin | UIViewAutoresizingFlexibleBottomMargin); - wrapperView.layer.cornerRadius = CSToastCornerRadius; - - if (CSToastDisplayShadow) { - wrapperView.layer.shadowColor = [UIColor blackColor].CGColor; - wrapperView.layer.shadowOpacity = CSToastShadowOpacity; - wrapperView.layer.shadowRadius = CSToastShadowRadius; - wrapperView.layer.shadowOffset = CSToastShadowOffset; - } - - wrapperView.backgroundColor = [[UIColor blackColor] colorWithAlphaComponent:CSToastOpacity]; - - if(image != nil) { - imageView = [[UIImageView alloc] initWithImage:image]; - imageView.contentMode = UIViewContentModeScaleAspectFit; - imageView.frame = CGRectMake(CSToastHorizontalPadding, CSToastVerticalPadding, CSToastImageViewWidth, CSToastImageViewHeight); - } - - CGFloat imageWidth, imageHeight, imageLeft; - - // the imageView frame values will be used to size & position the other views - if(imageView != nil) { - imageWidth = imageView.bounds.size.width; - imageHeight = imageView.bounds.size.height; - imageLeft = CSToastHorizontalPadding; - } else { - imageWidth = imageHeight = imageLeft = 0.0; - } - - if (title != nil) { - titleLabel = [[UILabel alloc] init]; - titleLabel.numberOfLines = CSToastMaxTitleLines; - titleLabel.font = [UIFont boldSystemFontOfSize:CSToastFontSize]; - titleLabel.textAlignment = NSTextAlignmentLeft; - titleLabel.lineBreakMode = NSLineBreakByWordWrapping; - titleLabel.textColor = [UIColor whiteColor]; - titleLabel.backgroundColor = [UIColor clearColor]; - titleLabel.alpha = 1.0; - titleLabel.text = title; - - // size the title label according to the length of the text - CGSize maxSizeTitle = CGSizeMake((self.bounds.size.width * CSToastMaxWidth) - imageWidth, self.bounds.size.height * CSToastMaxHeight); - CGSize expectedSizeTitle = [self sizeForString:title font:titleLabel.font constrainedToSize:maxSizeTitle lineBreakMode:titleLabel.lineBreakMode]; - titleLabel.frame = CGRectMake(0.0, 0.0, expectedSizeTitle.width, expectedSizeTitle.height); - } - - if (message != nil) { - messageLabel = [[UILabel alloc] init]; - messageLabel.numberOfLines = CSToastMaxMessageLines; - messageLabel.font = [UIFont systemFontOfSize:CSToastFontSize]; - messageLabel.lineBreakMode = NSLineBreakByWordWrapping; - messageLabel.textColor = [UIColor whiteColor]; - messageLabel.backgroundColor = [UIColor clearColor]; - messageLabel.alpha = 1.0; - messageLabel.text = message; - - // size the message label according to the length of the text - CGSize maxSizeMessage = CGSizeMake((self.bounds.size.width * CSToastMaxWidth) - imageWidth, self.bounds.size.height * CSToastMaxHeight); - CGSize expectedSizeMessage = [self sizeForString:message font:messageLabel.font constrainedToSize:maxSizeMessage lineBreakMode:messageLabel.lineBreakMode]; - messageLabel.frame = CGRectMake(0.0, 0.0, expectedSizeMessage.width, expectedSizeMessage.height); - } - - // titleLabel frame values - CGFloat titleWidth, titleHeight, titleTop, titleLeft; - - if(titleLabel != nil) { - titleWidth = titleLabel.bounds.size.width; - titleHeight = titleLabel.bounds.size.height; - titleTop = CSToastVerticalPadding; - titleLeft = imageLeft + imageWidth + CSToastHorizontalPadding; - } else { - titleWidth = titleHeight = titleTop = titleLeft = 0.0; - } - - // messageLabel frame values - CGFloat messageWidth, messageHeight, messageLeft, messageTop; - - if(messageLabel != nil) { - messageWidth = messageLabel.bounds.size.width; - messageHeight = messageLabel.bounds.size.height; - messageLeft = imageLeft + imageWidth + CSToastHorizontalPadding; - messageTop = titleTop + titleHeight + CSToastVerticalPadding; - } else { - messageWidth = messageHeight = messageLeft = messageTop = 0.0; - } - - CGFloat longerWidth = MAX(titleWidth, messageWidth); - CGFloat longerLeft = MAX(titleLeft, messageLeft); - - // wrapper width uses the longerWidth or the image width, whatever is larger. same logic applies to the wrapper height - CGFloat wrapperWidth = MAX((imageWidth + (CSToastHorizontalPadding * 2)), (longerLeft + longerWidth + CSToastHorizontalPadding)); - CGFloat wrapperHeight = MAX((messageTop + messageHeight + CSToastVerticalPadding), (imageHeight + (CSToastVerticalPadding * 2))); - - wrapperView.frame = CGRectMake(0.0, 0.0, wrapperWidth, wrapperHeight); - - if(titleLabel != nil) { - titleLabel.frame = CGRectMake(titleLeft, titleTop, titleWidth, titleHeight); - [wrapperView addSubview:titleLabel]; - } - - if(messageLabel != nil) { - messageLabel.frame = CGRectMake(messageLeft, messageTop, messageWidth, messageHeight); - [wrapperView addSubview:messageLabel]; - } - - if(imageView != nil) { - [wrapperView addSubview:imageView]; - } - - return wrapperView; -} - -@end diff --git a/DUREX Vendor Control/bluetooth.png b/DUREX Vendor Control/bluetooth.png deleted file mode 100644 index 7befaba..0000000 Binary files a/DUREX Vendor Control/bluetooth.png and /dev/null differ diff --git a/DUREX Vendor Control/carat-open.png b/DUREX Vendor Control/carat-open.png deleted file mode 100644 index 11c7038..0000000 Binary files a/DUREX Vendor Control/carat-open.png and /dev/null differ diff --git a/DUREX Vendor Control/carat.png b/DUREX Vendor Control/carat.png deleted file mode 100644 index ffa0011..0000000 Binary files a/DUREX Vendor Control/carat.png and /dev/null differ diff --git a/DUREX Vendor Control/en.lproj/DatePickerViewController.strings b/DUREX Vendor Control/en.lproj/DatePickerViewController.strings deleted file mode 100644 index 1b5338e..0000000 --- a/DUREX Vendor Control/en.lproj/DatePickerViewController.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "8vW-ig-tUA"; */ -"8vW-ig-tUA.normalTitle" = "Done"; diff --git a/DUREX Vendor Control/en.lproj/DatePickerViewController_Landscape.strings b/DUREX Vendor Control/en.lproj/DatePickerViewController_Landscape.strings deleted file mode 100644 index 1e1f995..0000000 --- a/DUREX Vendor Control/en.lproj/DatePickerViewController_Landscape.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "SLt-EA-xM9"; */ -"SLt-EA-xM9.normalTitle" = "Done"; diff --git a/DUREX Vendor Control/en.lproj/DatePickerViewController_iPad.strings b/DUREX Vendor Control/en.lproj/DatePickerViewController_iPad.strings deleted file mode 100644 index 78dd0bc..0000000 --- a/DUREX Vendor Control/en.lproj/DatePickerViewController_iPad.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "RGE-Ye-qon"; */ -"RGE-Ye-qon.normalTitle" = "Done"; diff --git a/DUREX Vendor Control/en.lproj/DatePickerViewController_iPad_Landscape.strings b/DUREX Vendor Control/en.lproj/DatePickerViewController_iPad_Landscape.strings deleted file mode 100644 index 6c603a3..0000000 --- a/DUREX Vendor Control/en.lproj/DatePickerViewController_iPad_Landscape.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "JbU-pO-d9E"; */ -"JbU-pO-d9E.normalTitle" = "Done"; diff --git a/DUREX Vendor Control/en.lproj/DateRangePickerViewController.strings b/DUREX Vendor Control/en.lproj/DateRangePickerViewController.strings deleted file mode 100644 index b5e4bf7..0000000 --- a/DUREX Vendor Control/en.lproj/DateRangePickerViewController.strings +++ /dev/null @@ -1,9 +0,0 @@ - -/* Class = "IBUILabel"; text = "To:"; ObjectID = "J6Y-lM-Rjf"; */ -"J6Y-lM-Rjf.text" = "To:"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "aYc-3W-Uqn"; */ -"aYc-3W-Uqn.normalTitle" = "Done"; - -/* Class = "IBUILabel"; text = "From:"; ObjectID = "xIo-vd-lE7"; */ -"xIo-vd-lE7.text" = "From:"; diff --git a/DUREX Vendor Control/en.lproj/DateRangePickerViewController_Landscape.strings b/DUREX Vendor Control/en.lproj/DateRangePickerViewController_Landscape.strings deleted file mode 100644 index 1c9c171..0000000 --- a/DUREX Vendor Control/en.lproj/DateRangePickerViewController_Landscape.strings +++ /dev/null @@ -1,9 +0,0 @@ - -/* Class = "IBUILabel"; text = "From:"; ObjectID = "Ses-ng-Dli"; */ -"Ses-ng-Dli.text" = "From:"; - -/* Class = "IBUILabel"; text = "To:"; ObjectID = "WCO-rz-s5y"; */ -"WCO-rz-s5y.text" = "To:"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "nfK-Us-pVk"; */ -"nfK-Us-pVk.normalTitle" = "Done"; diff --git a/DUREX Vendor Control/en.lproj/DateRangePickerViewController_iPad.strings b/DUREX Vendor Control/en.lproj/DateRangePickerViewController_iPad.strings deleted file mode 100644 index 80a19e8..0000000 --- a/DUREX Vendor Control/en.lproj/DateRangePickerViewController_iPad.strings +++ /dev/null @@ -1,9 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "JjT-6I-8h2"; */ -"JjT-6I-8h2.normalTitle" = "Done"; - -/* Class = "IBUILabel"; text = "From:"; ObjectID = "WiF-nR-ajG"; */ -"WiF-nR-ajG.text" = "From:"; - -/* Class = "IBUILabel"; text = "To:"; ObjectID = "dRe-Qx-Lml"; */ -"dRe-Qx-Lml.text" = "To:"; diff --git a/DUREX Vendor Control/en.lproj/DateRangePickerViewController_iPad_Landscape.strings b/DUREX Vendor Control/en.lproj/DateRangePickerViewController_iPad_Landscape.strings deleted file mode 100644 index 360c45f..0000000 --- a/DUREX Vendor Control/en.lproj/DateRangePickerViewController_iPad_Landscape.strings +++ /dev/null @@ -1,9 +0,0 @@ - -/* Class = "IBUILabel"; text = "From:"; ObjectID = "7sY-pS-rR6"; */ -"7sY-pS-rR6.text" = "From:"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "hDh-hS-ruL"; */ -"hDh-hS-ruL.normalTitle" = "Done"; - -/* Class = "IBUILabel"; text = "To:"; ObjectID = "z8k-7k-O2i"; */ -"z8k-7k-O2i.text" = "To:"; diff --git a/DUREX Vendor Control/en.lproj/EMConnectingView_Landscape.strings b/DUREX Vendor Control/en.lproj/EMConnectingView_Landscape.strings deleted file mode 100644 index a8b4ee8..0000000 --- a/DUREX Vendor Control/en.lproj/EMConnectingView_Landscape.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "J1X-2s-Ung"; */ -"J1X-2s-Ung.text" = "Connecting to device"; diff --git a/DUREX Vendor Control/en.lproj/EMConnectingView_iPad.strings b/DUREX Vendor Control/en.lproj/EMConnectingView_iPad.strings deleted file mode 100644 index e43e779..0000000 --- a/DUREX Vendor Control/en.lproj/EMConnectingView_iPad.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "ZWE-GZ-XAB"; */ -"ZWE-GZ-XAB.text" = "Connecting to device"; diff --git a/DUREX Vendor Control/en.lproj/EMConnectingView_iPad_Landscape.strings b/DUREX Vendor Control/en.lproj/EMConnectingView_iPad_Landscape.strings deleted file mode 100644 index 2314f47..0000000 --- a/DUREX Vendor Control/en.lproj/EMConnectingView_iPad_Landscape.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "X5Q-qk-1n6"; */ -"X5Q-qk-1n6.text" = "Connecting to device"; diff --git a/DUREX Vendor Control/en.lproj/Localizable.strings b/DUREX Vendor Control/en.lproj/Localizable.strings deleted file mode 100644 index ef9c274..0000000 --- a/DUREX Vendor Control/en.lproj/Localizable.strings +++ /dev/null @@ -1,116 +0,0 @@ -/* - Localizable.strings - DUREX test - - Created by Imanol Barba on 8/11/14. - Copyright (c) 2014 Emmoco. All rights reserved. -*/ - -"PIECE OF CRAP 2000 PRO ULTRA" = "PIECE OF CRAP 2000 PRO ULTRA"; -"FUCKING ONLINE" = "FUCKING ONLINE"; -"Maintenance" = "Maintenance"; -"Basic Configuration" = "Basic Configuration"; -"Sending a Report" = "Sending a Report"; -"Sensors" = "Sensors"; -"Commands" = "Commands"; -"Channels Present" = "Channels Present"; -"Channel 1" = "Channel 1"; -"Channel 2" = "Channel 2"; -"Channel 3" = "Channel 3"; -"Channel 4" = "Channel 4"; -"Channel 5" = "Channel 5"; -"Channel 6" = "Channel 6"; -"Channel 7" = "Channel 7"; -"Channel 8" = "Channel 8"; -"Channel 9" = "Channel 9"; -"Channel 10" = "Channel 10"; -"Channel 11" = "Channel 11"; -"Channel 12" = "Channel 12"; -"Channel 13" = "Channel 13"; -"Channel 14" = "Channel 14"; -"Channel 15" = "Channel 15"; -"Channel 16" = "Channel 16"; -"Product Present in Channel" = "Product Present in Channel"; -"Channel Engine Status" = "Channel Engine Status"; -"Door Sensor" = "Door Sensor"; -"Coil Sensor" = "Coil Sensor"; -"OPEN" = "OPEN"; -"CLOSED" = "CLOSED"; -"Money Collected" = "Money Collected"; -"Money Returned" = "Money Returned"; -"Products Sold" = "Products Sold"; -"Product 1" = "Product 1"; -"Product 2" = "Product 2"; -"Product 3" = "Product 3"; -"Product 4" = "Product 4"; -"Product 5" = "Product 5"; -"Product 6" = "Product 6"; -"Product 7" = "Product 7"; -"Product 8" = "Product 8"; -"Product 9" = "Product 9"; -"Product 10" = "Product 10"; -"Product 11" = "Product 11"; -"Product 12" = "Product 12"; -"Product 13" = "Product 13"; -"Product 14" = "Product 14"; -"Product 15" = "Product 15"; -"Product 16" = "Product 16"; -"Change Available" = "Change Available"; -"Sales log" = "Sales log"; -"Incident report" = "Incident report"; -"Send report" = "Send report"; -"Communication error" = "Communication error"; -"Error while trying to connect to the device" = "Error while trying to connect to the device"; -"Signal Strength: %0.0f" = "Signal Strength: %0.0f"; -"Searching for devices..." = "Searching for devices..."; -"Connection Failed" = "Connection Failed"; -"An error occurred while trying to connect to the selected device" = "An error occurred while trying to connect to the selected device"; -"Close" = "Close"; -"20€ Notes" = "20€ Notes"; -"10€ Notes" = "10€ Notes"; -"5€ Notes" = "5€ Notes"; -"2€ Coins" = "2€ Coins"; -"1€ Coins" = "1€ Coins"; -"50c Coins" = "50c Coins"; -"Channel" = "Channel"; -"Product Code" = "Product Code"; -"Product Price" = "Product Price"; -"Discounted Price" = "Discounted Price"; -"Money Paid" = "Money Paid"; -"1€ Change" = "1€ Change"; -"50c Change" = "50c Change"; -"Update Date & Time" = "Update Date & Time"; -"Update product price" = "Update product price"; -"Update product name" = "Update product name"; -"Sale on" = "Sale on"; -"Report sent successfully" = "Report sent successfully"; -"Success!" = "Success!"; -"Connection to server failed" = "Connection to server failed"; -"Error" = "Error"; -"Product" = "Product"; -"Entered price has an invalid format" = "Entered price has an invalid format"; -"Entered product code has an invalid format" = "Entered product code has an invalid format"; -"Entered channel has an invalid format" = "Entered channel has an invalid format"; -"Missing channel" = "Missing channel"; -"Missing product code" = "Missing product code"; -"Time and Date changed successfully" = "Time and Date changed successfully"; -"Time and Date change returned error" = "Time and Date change returned error"; -"Product price changed successfully" = "Product price changed successfully"; -"Product price change returned error" = "Product price change returned error"; -"Product name changed successfully" = "Product name changed successfully"; -"Product name change returned error" = "Product name change returned error"; -"Error occurred while reading answer from device" = "Error occurred while reading answer from device"; -"Error occurred while sending command to device" = "Error occurred while sending command to device"; -"Connection lost" = "Connection lost"; -"Device answer timeout occurred" = "Device answer timeout occurred"; -"Incident log" = "Incident log"; -"Error Code" = "Error Code"; -"Error Value" = "Error Value"; -"Error obtaining data from URL" = "Error obtaining data from URL"; -"Missing fields version and/or commands in JSON file" = "Missing fields version and/or commands in JSON file"; -"Version mismatch" = "Version mismatch"; -"Do you want to run batch command file" = "Do you want to run batch command file"; -"WARNING: Machine ID does not match currently connected machine. Do you wish to continue?" = "WARNING: Machine ID does not match currently connected machine. Do you wish to continue?"; -"Confirmation" = "Confirmation"; -"OK" = "OK"; -"Cancel" = "Cancel"; \ No newline at end of file diff --git a/DUREX Vendor Control/en.lproj/MainStoryboard.strings b/DUREX Vendor Control/en.lproj/MainStoryboard.strings deleted file mode 100644 index 55bb165..0000000 --- a/DUREX Vendor Control/en.lproj/MainStoryboard.strings +++ /dev/null @@ -1,24 +0,0 @@ - -/* Class = "IBUILabel"; text = "FUCKING ONLINE"; ObjectID = "0cU-st-98u"; */ -"0cU-st-98u.text" = "FUCKING ONLINE"; - -/* Class = "IBUINavigationItem"; title = "Connected to:"; ObjectID = "2rA-9H-FRE"; */ -"2rA-9H-FRE.title" = "Connected to:"; - -/* Class = "IBUILabel"; text = "Detail"; ObjectID = "Ghk-fD-iNE"; */ -"Ghk-fD-iNE.text" = "Detail"; - -/* Class = "IBUILabel"; text = "PIECE OF CRAP 2000 PRO ULTRA"; ObjectID = "W3U-nk-SlV"; */ -"W3U-nk-SlV.text" = "PIECE OF CRAP 2000 PRO ULTRA"; - -/* Class = "IBUINavigationItem"; title = "Select device"; ObjectID = "exc-MP-jDa"; */ -"exc-MP-jDa.title" = "Select device"; - -/* Class = "IBUILabel"; text = "Title"; ObjectID = "iCG-eW-H8x"; */ -"iCG-eW-H8x.text" = "Title"; - -/* Class = "IBUILabel"; text = "Title"; ObjectID = "oML-ji-1Ho"; */ -"oML-ji-1Ho.text" = "Title"; - -/* Class = "IBUILabel"; text = "Connect to device"; ObjectID = "oyW-sA-Lfb"; */ -"oyW-sA-Lfb.text" = "Connect to device"; diff --git a/DUREX Vendor Control/en.lproj/NameChangerViewController.strings b/DUREX Vendor Control/en.lproj/NameChangerViewController.strings deleted file mode 100644 index 1b12c50..0000000 --- a/DUREX Vendor Control/en.lproj/NameChangerViewController.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "Y9f-BL-5ZB"; */ -"Y9f-BL-5ZB.normalTitle" = "Done"; - -/* Class = "IBUILabel"; text = "New Name"; ObjectID = "Zfh-RB-roO"; */ -"Zfh-RB-roO.text" = "New Name"; - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "u0t-Gj-gKZ"; */ -"u0t-Gj-gKZ.text" = "Channel"; - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "zk3-Qc-MYf"; */ -"zk3-Qc-MYf.text" = "Product Code"; diff --git a/DUREX Vendor Control/en.lproj/NameChangerViewController_Landscape.strings b/DUREX Vendor Control/en.lproj/NameChangerViewController_Landscape.strings deleted file mode 100644 index 5d33219..0000000 --- a/DUREX Vendor Control/en.lproj/NameChangerViewController_Landscape.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "ZH7-mZ-Jfc"; */ -"ZH7-mZ-Jfc.normalTitle" = "Done"; - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "ZzG-qH-dln"; */ -"ZzG-qH-dln.text" = "Channel"; - -/* Class = "IBUILabel"; text = "New Name"; ObjectID = "gIa-c0-uyh"; */ -"gIa-c0-uyh.text" = "New Name"; - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "z9N-z7-JyV"; */ -"z9N-z7-JyV.text" = "Product Code"; diff --git a/DUREX Vendor Control/en.lproj/NameChangerViewController_iPad.strings b/DUREX Vendor Control/en.lproj/NameChangerViewController_iPad.strings deleted file mode 100644 index 58829f0..0000000 --- a/DUREX Vendor Control/en.lproj/NameChangerViewController_iPad.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "9PW-xp-3t9"; */ -"9PW-xp-3t9.text" = "Channel"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "Md5-1l-LqY"; */ -"Md5-1l-LqY.normalTitle" = "Done"; - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "RCD-6Z-45A"; */ -"RCD-6Z-45A.text" = "Product Code"; - -/* Class = "IBUILabel"; text = "New Name"; ObjectID = "pLv-EG-y2m"; */ -"pLv-EG-y2m.text" = "New Name"; diff --git a/DUREX Vendor Control/en.lproj/NameChangerViewController_iPad_Landscape.strings b/DUREX Vendor Control/en.lproj/NameChangerViewController_iPad_Landscape.strings deleted file mode 100644 index 41be93d..0000000 --- a/DUREX Vendor Control/en.lproj/NameChangerViewController_iPad_Landscape.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "85G-KF-Rny"; */ -"85G-KF-Rny.text" = "Product Code"; - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "MUO-8b-DhH"; */ -"MUO-8b-DhH.text" = "Channel"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "q3O-jD-tjP"; */ -"q3O-jD-tjP.normalTitle" = "Done"; - -/* Class = "IBUILabel"; text = "New Name"; ObjectID = "zj0-M4-cAO"; */ -"zj0-M4-cAO.text" = "New Name"; diff --git a/DUREX Vendor Control/en.lproj/PriceChangerViewController.strings b/DUREX Vendor Control/en.lproj/PriceChangerViewController.strings deleted file mode 100644 index 58d4466..0000000 --- a/DUREX Vendor Control/en.lproj/PriceChangerViewController.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "2cF-of-r57"; */ -"2cF-of-r57.text" = "Product Code"; - -/* Class = "IBUILabel"; text = "New Price"; ObjectID = "Cbx-ha-NZx"; */ -"Cbx-ha-NZx.text" = "New Price"; - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "VCq-As-NrV"; */ -"VCq-As-NrV.text" = "Channel"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "slH-Zj-pps"; */ -"slH-Zj-pps.normalTitle" = "Done"; diff --git a/DUREX Vendor Control/en.lproj/PriceChangerViewController_Landscape.strings b/DUREX Vendor Control/en.lproj/PriceChangerViewController_Landscape.strings deleted file mode 100644 index 874b6b8..0000000 --- a/DUREX Vendor Control/en.lproj/PriceChangerViewController_Landscape.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "0G8-sN-Hfg"; */ -"0G8-sN-Hfg.text" = "Channel"; - -/* Class = "IBUILabel"; text = "New Price"; ObjectID = "UrS-qz-jRa"; */ -"UrS-qz-jRa.text" = "New Price"; - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "neg-KG-oQC"; */ -"neg-KG-oQC.text" = "Product Code"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "ubO-fy-Tcd"; */ -"ubO-fy-Tcd.normalTitle" = "Done"; diff --git a/DUREX Vendor Control/en.lproj/PriceChangerViewController_iPad.strings b/DUREX Vendor Control/en.lproj/PriceChangerViewController_iPad.strings deleted file mode 100644 index 17d58f3..0000000 --- a/DUREX Vendor Control/en.lproj/PriceChangerViewController_iPad.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "6M6-Rz-v0B"; */ -"6M6-Rz-v0B.text" = "Channel"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "BsH-aP-YXx"; */ -"BsH-aP-YXx.normalTitle" = "Done"; - -/* Class = "IBUILabel"; text = "New Price"; ObjectID = "CRj-D6-8bV"; */ -"CRj-D6-8bV.text" = "New Price"; - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "y0J-fk-3XQ"; */ -"y0J-fk-3XQ.text" = "Product Code"; diff --git a/DUREX Vendor Control/en.lproj/PriceChangerViewController_iPad_Landscape.strings b/DUREX Vendor Control/en.lproj/PriceChangerViewController_iPad_Landscape.strings deleted file mode 100644 index ab18f05..0000000 --- a/DUREX Vendor Control/en.lproj/PriceChangerViewController_iPad_Landscape.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "GCF-GY-CN1"; */ -"GCF-GY-CN1.text" = "Product Code"; - -/* Class = "IBUILabel"; text = "New Price"; ObjectID = "eXX-xf-h6G"; */ -"eXX-xf-h6G.text" = "New Price"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "hdn-qQ-8np"; */ -"hdn-qQ-8np.normalTitle" = "Done"; - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "z9V-5B-LtD"; */ -"z9V-5B-LtD.text" = "Channel"; diff --git a/DUREX Vendor Control/en.lproj/back_arrow.png b/DUREX Vendor Control/en.lproj/back_arrow.png deleted file mode 100644 index 02b7278..0000000 Binary files a/DUREX Vendor Control/en.lproj/back_arrow.png and /dev/null differ diff --git a/DUREX Vendor Control/es.lproj/DatePickerViewController.strings b/DUREX Vendor Control/es.lproj/DatePickerViewController.strings deleted file mode 100644 index 20456e3..0000000 --- a/DUREX Vendor Control/es.lproj/DatePickerViewController.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "8vW-ig-tUA"; */ -"8vW-ig-tUA.normalTitle" = "Aceptar"; diff --git a/DUREX Vendor Control/es.lproj/DatePickerViewController_Landscape.strings b/DUREX Vendor Control/es.lproj/DatePickerViewController_Landscape.strings deleted file mode 100644 index f5cff71..0000000 --- a/DUREX Vendor Control/es.lproj/DatePickerViewController_Landscape.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "SLt-EA-xM9"; */ -"SLt-EA-xM9.normalTitle" = "Aceptar"; diff --git a/DUREX Vendor Control/es.lproj/DatePickerViewController_iPad.strings b/DUREX Vendor Control/es.lproj/DatePickerViewController_iPad.strings deleted file mode 100644 index ed4f79a..0000000 --- a/DUREX Vendor Control/es.lproj/DatePickerViewController_iPad.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "RGE-Ye-qon"; */ -"RGE-Ye-qon.normalTitle" = "Aceptar"; diff --git a/DUREX Vendor Control/es.lproj/DatePickerViewController_iPad_Landscape.strings b/DUREX Vendor Control/es.lproj/DatePickerViewController_iPad_Landscape.strings deleted file mode 100644 index 4fda1e8..0000000 --- a/DUREX Vendor Control/es.lproj/DatePickerViewController_iPad_Landscape.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "JbU-pO-d9E"; */ -"JbU-pO-d9E.normalTitle" = "Aceptar"; diff --git a/DUREX Vendor Control/es.lproj/DateRangePickerViewController.strings b/DUREX Vendor Control/es.lproj/DateRangePickerViewController.strings deleted file mode 100644 index adca0a2..0000000 --- a/DUREX Vendor Control/es.lproj/DateRangePickerViewController.strings +++ /dev/null @@ -1,9 +0,0 @@ - -/* Class = "IBUILabel"; text = "To:"; ObjectID = "J6Y-lM-Rjf"; */ -"J6Y-lM-Rjf.text" = "Desde:"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "aYc-3W-Uqn"; */ -"aYc-3W-Uqn.normalTitle" = "Aceptar"; - -/* Class = "IBUILabel"; text = "From:"; ObjectID = "xIo-vd-lE7"; */ -"xIo-vd-lE7.text" = "Hasta:"; diff --git a/DUREX Vendor Control/es.lproj/DateRangePickerViewController_Landscape.strings b/DUREX Vendor Control/es.lproj/DateRangePickerViewController_Landscape.strings deleted file mode 100644 index c37077d..0000000 --- a/DUREX Vendor Control/es.lproj/DateRangePickerViewController_Landscape.strings +++ /dev/null @@ -1,9 +0,0 @@ - -/* Class = "IBUILabel"; text = "From:"; ObjectID = "Ses-ng-Dli"; */ -"Ses-ng-Dli.text" = "Desde:"; - -/* Class = "IBUILabel"; text = "To:"; ObjectID = "WCO-rz-s5y"; */ -"WCO-rz-s5y.text" = "Hasta:"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "nfK-Us-pVk"; */ -"nfK-Us-pVk.normalTitle" = "Aceptar"; diff --git a/DUREX Vendor Control/es.lproj/DateRangePickerViewController_iPad.strings b/DUREX Vendor Control/es.lproj/DateRangePickerViewController_iPad.strings deleted file mode 100644 index b85b410..0000000 --- a/DUREX Vendor Control/es.lproj/DateRangePickerViewController_iPad.strings +++ /dev/null @@ -1,9 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "JjT-6I-8h2"; */ -"JjT-6I-8h2.normalTitle" = "Aceptar"; - -/* Class = "IBUILabel"; text = "From:"; ObjectID = "WiF-nR-ajG"; */ -"WiF-nR-ajG.text" = "Desde:"; - -/* Class = "IBUILabel"; text = "To:"; ObjectID = "dRe-Qx-Lml"; */ -"dRe-Qx-Lml.text" = "Hasta:"; diff --git a/DUREX Vendor Control/es.lproj/DateRangePickerViewController_iPad_Landscape.strings b/DUREX Vendor Control/es.lproj/DateRangePickerViewController_iPad_Landscape.strings deleted file mode 100644 index 6f7cbbd..0000000 --- a/DUREX Vendor Control/es.lproj/DateRangePickerViewController_iPad_Landscape.strings +++ /dev/null @@ -1,9 +0,0 @@ - -/* Class = "IBUILabel"; text = "From:"; ObjectID = "7sY-pS-rR6"; */ -"7sY-pS-rR6.text" = "Desde:"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "hDh-hS-ruL"; */ -"hDh-hS-ruL.normalTitle" = "Aceptar"; - -/* Class = "IBUILabel"; text = "To:"; ObjectID = "z8k-7k-O2i"; */ -"z8k-7k-O2i.text" = "Hasta:"; diff --git a/DUREX Vendor Control/es.lproj/EMConnectingView_Landscape.strings b/DUREX Vendor Control/es.lproj/EMConnectingView_Landscape.strings deleted file mode 100644 index 2cc7b00..0000000 --- a/DUREX Vendor Control/es.lproj/EMConnectingView_Landscape.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "J1X-2s-Ung"; */ -"J1X-2s-Ung.text" = "Realizando conexión"; diff --git a/DUREX Vendor Control/es.lproj/EMConnectingView_iPad.strings b/DUREX Vendor Control/es.lproj/EMConnectingView_iPad.strings deleted file mode 100644 index 11926a4..0000000 --- a/DUREX Vendor Control/es.lproj/EMConnectingView_iPad.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "ZWE-GZ-XAB"; */ -"ZWE-GZ-XAB.text" = "Realizando conexión"; diff --git a/DUREX Vendor Control/es.lproj/EMConnectingView_iPad_Landscape.strings b/DUREX Vendor Control/es.lproj/EMConnectingView_iPad_Landscape.strings deleted file mode 100644 index 148fa14..0000000 --- a/DUREX Vendor Control/es.lproj/EMConnectingView_iPad_Landscape.strings +++ /dev/null @@ -1,3 +0,0 @@ - -/* Class = "IBUILabel"; text = "Connecting to device"; ObjectID = "X5Q-qk-1n6"; */ -"X5Q-qk-1n6.text" = "Realizando conexión"; diff --git a/DUREX Vendor Control/es.lproj/Localizable.strings b/DUREX Vendor Control/es.lproj/Localizable.strings deleted file mode 100644 index a818863..0000000 --- a/DUREX Vendor Control/es.lproj/Localizable.strings +++ /dev/null @@ -1,116 +0,0 @@ -/* - Localizable.strings - DUREX test - - Created by Imanol Barba on 8/11/14. - Copyright (c) 2014 Emmoco. All rights reserved. -*/ - -"PIECE OF CRAP 2000 PRO ULTRA" = "CACHARRACO DE LA MUERTE"; -"FUCKING ONLINE" = "A TOPE"; -"Maintenance" = "Mantenimiento"; -"Basic Configuration" = "Configuración Básica"; -"Sending a Report" = "Mandar un Informe"; -"Sensors" = "Sensores"; -"Commands" = "Comandos"; -"Channels Present" = "Canales presentes"; -"Channel 1" = "Canal 1"; -"Channel 2" = "Canal 2"; -"Channel 3" = "Canal 3"; -"Channel 4" = "Canal 4"; -"Channel 5" = "Canal 5"; -"Channel 6" = "Canal 6"; -"Channel 7" = "Canal 7"; -"Channel 8" = "Canal 8"; -"Channel 9" = "Canal 9"; -"Channel 10" = "Canal 10"; -"Channel 11" = "Canal 11"; -"Channel 12" = "Canal 12"; -"Channel 13" = "Canal 13"; -"Channel 14" = "Canal 14"; -"Channel 15" = "Canal 15"; -"Channel 16" = "Canal 16"; -"Product Present in Channel" = "Producto presente en el canal"; -"Channel Engine Status" = "Estado de los motores"; -"Door Sensor" = "Sensor de puerta"; -"Coil Sensor" = "Sensor de bobina"; -"OPEN" = "ABIERTO"; -"CLOSED" = "CERRADO"; -"Money Collected" = "Recaudación efectuada"; -"Money Returned" = "Efectivo devuelto"; -"Products Sold" = "Productos vendidos"; -"Product 1" = "Producto 1"; -"Product 2" = "Producto 2"; -"Product 3" = "Producto 3"; -"Product 4" = "Producto 4"; -"Product 5" = "Producto 5"; -"Product 6" = "Producto 6"; -"Product 7" = "Producto 7"; -"Product 8" = "Producto 8"; -"Product 9" = "Producto 9"; -"Product 10" = "Producto 10"; -"Product 11" = "Producto 11"; -"Product 12" = "Producto 12"; -"Product 13" = "Producto 13"; -"Product 14" = "Producto 14"; -"Product 15" = "Producto 15"; -"Product 16" = "Producto 16"; -"Change Available" = "Cambio disponible"; -"Sales log" = "Registro de ventas"; -"Incident report" = "Registro de incidencias"; -"Send report" = "Mandar informe"; -"Communication error" = "Error de comunicación"; -"Error while trying to connect to the device" = "Error al intentar conectarse con el dispositivo"; -"Signal Strength: %0.0f" = "Potencia de la señal: %0.0f"; -"Searching for devices..." = "Buscando dispositivos..."; -"Connection Failed" = "Falló la conexión"; -"An error occurred while trying to connect to the selected device" = "Error al intentar conectarse al dispositivo seleccionado"; -"Close" = "Cerrar"; -"20€ Notes" = "Billetes de 20€"; -"10€ Notes" = "Billetes de 10€"; -"5€ Notes" = "Billetes de 5€"; -"2€ Coins" = "Monedas de 2€"; -"1€ Coins" = "Monedas de 1€"; -"50c Coins" = "Monedas de 50c"; -"Channel" = "Canal"; -"Product Code" = "Código del producto"; -"Product Price" = "Precio del Producto"; -"Discounted Price" = "Precio con descuento"; -"Money Paid" = "Efectivo Pagado"; -"1€ Change" = "Cambio de 1€"; -"50c Change" = "Cambio de 50c"; -"Update Date & Time" = "Actualizar fecha y hora"; -"Update product price" = "Actualizar precio del producto"; -"Update product name" = "Actualizar nombre del producto"; -"Sale on" = "Venta el"; -"Report sent successfully" = "Informe enviado satisfactoriamente"; -"Success!" = "Éxito!"; -"Connection to server failed" = "Conexión al servidor fallida"; -"Error" = "Error"; -"Product" = "Producto"; -"Entered price has an invalid format" = "El precio introducido está en un formato incorrecto"; -"Entered code has an invalid format" = "El código de producto introducido está en un formato incorrecto"; -"Entered channel has an invalid format" = "El canal introducido está en un formato incorrecto"; -"Missing channel" = "Falta el canal"; -"Missing product code" = "Falta el código del producto"; -"Time and Date changed successfully" = "Fecha y hora cambiadas con éxito"; -"Time and Date change returned error" = "Error al cambiar la fecha y hora"; -"Product price changed successfully" = "El precio del producto se cambió con éxito"; -"Product price change returned error" = "Error al cambiar el precio del producto"; -"Product name changed successfully" = "El nombre del producto se cambió con éxito"; -"Product name change returned error" = "Error al cambiar el nombre del producto"; -"Error occurred while reading answer from device" = "Error al leer la respuesta del dispositivo"; -"Error occurred while sending command to device" = "Error al mandar el comando al dispositivo"; -"Connection lost" = "Conexión perdida"; -"Device answer timeout occurred" = "El tiempo de espera de respuesta del dispositivo ha expirado"; -"Incident log" = "Registro de incidencias"; -"Error Code" = "Código de error"; -"Error Value" = "Valor del error"; -"Error obtaining data from URL" = "Error al obtener los datos de la URL"; -"Missing fields version and/or commands in JSON file" = "Faltan los campos de versión y/o comandos en el fichero JSON"; -"Version mismatch" = "Versiones no coincidentes"; -"Do you want to run batch command file" = "¿Desea ejecutar el fichero por lotes"; -"WARNING: Machine ID does not match currently connected machine. Do you wish to continue?" = "ADVERTENCIA: El identificador de máquina no coincide con la máquina conectada. ¿Desea continuar?"; -"Confirmation" = "Confirmación"; -"OK" = "OK"; -"Cancel" = "Cancelar"; \ No newline at end of file diff --git a/DUREX Vendor Control/es.lproj/MainStoryboard.strings b/DUREX Vendor Control/es.lproj/MainStoryboard.strings deleted file mode 100644 index df494b7..0000000 --- a/DUREX Vendor Control/es.lproj/MainStoryboard.strings +++ /dev/null @@ -1,24 +0,0 @@ - -/* Class = "IBUILabel"; text = "FUCKING ONLINE"; ObjectID = "0cU-st-98u"; */ -"0cU-st-98u.text" = "A TOPE"; - -/* Class = "IBUINavigationItem"; title = "Connected to:"; ObjectID = "2rA-9H-FRE"; */ -"2rA-9H-FRE.title" = "Conectado a:"; - -/* Class = "IBUILabel"; text = "Detail"; ObjectID = "Ghk-fD-iNE"; */ -"Ghk-fD-iNE.text" = "Detail"; - -/* Class = "IBUILabel"; text = "PIECE OF CRAP 2000 PRO ULTRA"; ObjectID = "W3U-nk-SlV"; */ -"W3U-nk-SlV.text" = "CACHARRACO DE LA MUERTE"; - -/* Class = "IBUINavigationItem"; title = "Select device"; ObjectID = "exc-MP-jDa"; */ -"exc-MP-jDa.title" = "Selecccione el dispositivo"; - -/* Class = "IBUILabel"; text = "Title"; ObjectID = "iCG-eW-H8x"; */ -"iCG-eW-H8x.text" = "Title"; - -/* Class = "IBUILabel"; text = "Title"; ObjectID = "oML-ji-1Ho"; */ -"oML-ji-1Ho.text" = "Title"; - -/* Class = "IBUILabel"; text = "Connect to device"; ObjectID = "oyW-sA-Lfb"; */ -"oyW-sA-Lfb.text" = "Conectarse al dispositivo"; diff --git a/DUREX Vendor Control/es.lproj/NameChangerViewController.strings b/DUREX Vendor Control/es.lproj/NameChangerViewController.strings deleted file mode 100644 index dd54c46..0000000 --- a/DUREX Vendor Control/es.lproj/NameChangerViewController.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "Y9f-BL-5ZB"; */ -"Y9f-BL-5ZB.normalTitle" = "Aceptar"; - -/* Class = "IBUILabel"; text = "New Name"; ObjectID = "Zfh-RB-roO"; */ -"Zfh-RB-roO.text" = "Nuevo Nombre"; - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "u0t-Gj-gKZ"; */ -"u0t-Gj-gKZ.text" = "Canal"; - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "zk3-Qc-MYf"; */ -"zk3-Qc-MYf.text" = "Código del Producto"; diff --git a/DUREX Vendor Control/es.lproj/NameChangerViewController_Landscape.strings b/DUREX Vendor Control/es.lproj/NameChangerViewController_Landscape.strings deleted file mode 100644 index 0ff7fea..0000000 --- a/DUREX Vendor Control/es.lproj/NameChangerViewController_Landscape.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "ZH7-mZ-Jfc"; */ -"ZH7-mZ-Jfc.normalTitle" = "Aceptar"; - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "ZzG-qH-dln"; */ -"ZzG-qH-dln.text" = "Canal"; - -/* Class = "IBUILabel"; text = "New Name"; ObjectID = "gIa-c0-uyh"; */ -"gIa-c0-uyh.text" = "Nuevo Nombre"; - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "z9N-z7-JyV"; */ -"z9N-z7-JyV.text" = "Código del Producto"; diff --git a/DUREX Vendor Control/es.lproj/NameChangerViewController_iPad.strings b/DUREX Vendor Control/es.lproj/NameChangerViewController_iPad.strings deleted file mode 100644 index 4c55a0e..0000000 --- a/DUREX Vendor Control/es.lproj/NameChangerViewController_iPad.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "9PW-xp-3t9"; */ -"9PW-xp-3t9.text" = "Canal"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "Md5-1l-LqY"; */ -"Md5-1l-LqY.normalTitle" = "Aceptar"; - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "RCD-6Z-45A"; */ -"RCD-6Z-45A.text" = "Código del Producto"; - -/* Class = "IBUILabel"; text = "New Name"; ObjectID = "pLv-EG-y2m"; */ -"pLv-EG-y2m.text" = "Nuevo Nombre"; diff --git a/DUREX Vendor Control/es.lproj/NameChangerViewController_iPad_Landscape.strings b/DUREX Vendor Control/es.lproj/NameChangerViewController_iPad_Landscape.strings deleted file mode 100644 index 2745ff0..0000000 --- a/DUREX Vendor Control/es.lproj/NameChangerViewController_iPad_Landscape.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "85G-KF-Rny"; */ -"85G-KF-Rny.text" = "Código del Producto"; - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "MUO-8b-DhH"; */ -"MUO-8b-DhH.text" = "Canal"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "q3O-jD-tjP"; */ -"q3O-jD-tjP.normalTitle" = "Aceptar"; - -/* Class = "IBUILabel"; text = "New Name"; ObjectID = "zj0-M4-cAO"; */ -"zj0-M4-cAO.text" = "Nuevo Nombre"; diff --git a/DUREX Vendor Control/es.lproj/PriceChangerViewController.strings b/DUREX Vendor Control/es.lproj/PriceChangerViewController.strings deleted file mode 100644 index a6d4a99..0000000 --- a/DUREX Vendor Control/es.lproj/PriceChangerViewController.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "2cF-of-r57"; */ -"2cF-of-r57.text" = "Código del Producto"; - -/* Class = "IBUILabel"; text = "New Price"; ObjectID = "Cbx-ha-NZx"; */ -"Cbx-ha-NZx.text" = "Nuevo Precio"; - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "VCq-As-NrV"; */ -"VCq-As-NrV.text" = "Canal"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "slH-Zj-pps"; */ -"slH-Zj-pps.normalTitle" = "Aceptar"; diff --git a/DUREX Vendor Control/es.lproj/PriceChangerViewController_Landscape.strings b/DUREX Vendor Control/es.lproj/PriceChangerViewController_Landscape.strings deleted file mode 100644 index 39435bd..0000000 --- a/DUREX Vendor Control/es.lproj/PriceChangerViewController_Landscape.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "0G8-sN-Hfg"; */ -"0G8-sN-Hfg.text" = "Canal"; - -/* Class = "IBUILabel"; text = "New Price"; ObjectID = "UrS-qz-jRa"; */ -"UrS-qz-jRa.text" = "Nuevo Precio"; - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "neg-KG-oQC"; */ -"neg-KG-oQC.text" = "Código del Producto"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "ubO-fy-Tcd"; */ -"ubO-fy-Tcd.normalTitle" = "Aceptar"; diff --git a/DUREX Vendor Control/es.lproj/PriceChangerViewController_iPad.strings b/DUREX Vendor Control/es.lproj/PriceChangerViewController_iPad.strings deleted file mode 100644 index 4542d61..0000000 --- a/DUREX Vendor Control/es.lproj/PriceChangerViewController_iPad.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "6M6-Rz-v0B"; */ -"6M6-Rz-v0B.text" = "Canal"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "BsH-aP-YXx"; */ -"BsH-aP-YXx.normalTitle" = "Aceptar"; - -/* Class = "IBUILabel"; text = "New Price"; ObjectID = "CRj-D6-8bV"; */ -"CRj-D6-8bV.text" = "Nuevo Precio"; - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "y0J-fk-3XQ"; */ -"y0J-fk-3XQ.text" = "Código del Producto"; diff --git a/DUREX Vendor Control/es.lproj/PriceChangerViewController_iPad_Landscape.strings b/DUREX Vendor Control/es.lproj/PriceChangerViewController_iPad_Landscape.strings deleted file mode 100644 index ff00a19..0000000 --- a/DUREX Vendor Control/es.lproj/PriceChangerViewController_iPad_Landscape.strings +++ /dev/null @@ -1,12 +0,0 @@ - -/* Class = "IBUILabel"; text = "Product Code"; ObjectID = "GCF-GY-CN1"; */ -"GCF-GY-CN1.text" = "Código del Producto"; - -/* Class = "IBUILabel"; text = "New Price"; ObjectID = "eXX-xf-h6G"; */ -"eXX-xf-h6G.text" = "Nuevo Precio"; - -/* Class = "IBUIButton"; normalTitle = "Done"; ObjectID = "hdn-qQ-8np"; */ -"hdn-qQ-8np.normalTitle" = "Aceptar"; - -/* Class = "IBUILabel"; text = "Channel"; ObjectID = "z9V-5B-LtD"; */ -"z9V-5B-LtD.text" = "Canal"; diff --git a/DUREX Vendor Control/es.lproj/back_arrow.png b/DUREX Vendor Control/es.lproj/back_arrow.png deleted file mode 100644 index 86b8e42..0000000 Binary files a/DUREX Vendor Control/es.lproj/back_arrow.png and /dev/null differ diff --git a/DUREX Vendor Control/icon_checkmark.png b/DUREX Vendor Control/icon_checkmark.png deleted file mode 100755 index 05f9c40..0000000 Binary files a/DUREX Vendor Control/icon_checkmark.png and /dev/null differ diff --git a/DUREX Vendor Control/icon_delete.png b/DUREX Vendor Control/icon_delete.png deleted file mode 100755 index 3ea51f4..0000000 Binary files a/DUREX Vendor Control/icon_delete.png and /dev/null differ diff --git a/DUREX Vendor Control/system.json b/DUREX Vendor Control/system.json deleted file mode 100644 index 1e5ea8a..0000000 --- a/DUREX Vendor Control/system.json +++ /dev/null @@ -1,246 +0,0 @@ -{ - "resources": { - "$eapProtocolLevel": { - "id": -3, - "align": 2, - "attributes": {"readonly": true}, - "type": "u2", - "access": "r", - "size": 2 - }, - "numBytes": { - "id": 1, - "align": 1, - "attributes": {}, - "type": "u1", - "access": "rw", - "size": 1 - }, - "messageAvailableDevice": { - "id": 5, - "align": 1, - "attributes": {}, - "type": "u1", - "access": "rw", - "size": 1 - }, - "data": { - "id": 2, - "align": 1, - "attributes": {}, - "type": "C:201", - "access": "rw", - "size": 201 - }, - "$activeGroup": { - "id": -10, - "align": 1, - "pack": 1, - "attributes": {"readwrite": true}, - "type": "E:system@emmoco.com.System/ParameterGroup", - "access": "rw", - "size": 1 - }, - "$mcmDisconnect": { - "id": -9, - "align": 1, - "attributes": {"writeonly": true}, - "type": "u1", - "access": "w", - "size": 1 - }, - "$eapBuildDate": { - "dim": 8, - "id": -4, - "align": 1, - "attributes": {"readonly": true}, - "type": "A8:u1", - "access": "r", - "size": 8 - }, - "numPackets": { - "id": 3, - "align": 1, - "attributes": {}, - "type": "u1", - "access": "rw", - "size": 1 - }, - "$resourceCount": { - "id": -7, - "align": 1, - "attributes": {"readonly": true}, - "type": "S:system@emmoco.com.System/ResourceCount", - "access": "r", - "size": 2 - }, - "$schemaHash": { - "dim": 20, - "id": -6, - "align": 1, - "attributes": {"readonly": true}, - "type": "A20:u1", - "access": "r", - "size": 20 - }, - "$mcmProtocolLevel": { - "id": -2, - "align": 2, - "attributes": {"readonly": true}, - "type": "u2", - "access": "r", - "size": 2 - }, - "$mobileRssi": { - "id": -8, - "align": 1, - "attributes": {"readonly": true}, - "type": "i1", - "access": "r", - "size": 1 - }, - "messageAvailableMobile": { - "id": 4, - "align": 1, - "attributes": {}, - "type": "u1", - "access": "rw", - "size": 1 - }, - "$fileIndexReset": { - "id": -5, - "align": 2, - "attributes": {"writeonly": true}, - "type": "i2", - "access": "w", - "size": 2 - } - }, - "resourceNamesSys": [ - "$activeGroup", - "$eapBuildDate", - "$eapProtocolLevel", - "$fileIndexReset", - "$mcmDisconnect", - "$mcmProtocolLevel", - "$mobileRssi", - "$resourceCount", - "$schemaHash" - ], - "manifest": { - "protocolLevel": 13, - "hash": [ - 136, - 153, - 100, - 70, - 146, - 253, - 60, - 140, - 136, - 30, - 15, - 57, - 162, - 138, - 48, - 141 - ], - "toolVersion": "13.4.1.201311121909", - "name": "DUREX", - "$$md5": "8899644692fd3c8c881e0f39a28a308d", - "build": [ - 140, - 129, - 134, - 54, - 72, - 1, - 0, - 0 - ], - "date": "2014-09-02T15:20:57T", - "maxAlign": 2, - "maxSize": 201, - "version": "1.0.0" - }, - "resourceNames": [ - "numBytes", - "data", - "numPackets", - "messageAvailableMobile", - "messageAvailableDevice", - "$mcmProtocolLevel", - "$eapProtocolLevel", - "$eapBuildDate", - "$fileIndexReset", - "$schemaHash", - "$resourceCount", - "$mobileRssi", - "$mcmDisconnect", - "$activeGroup" - ], - "attributes": { - "description": "", - "version": "1.0.0" - }, - "resourceNamesApp": [ - "numBytes", - "data", - "numPackets", - "messageAvailableMobile", - "messageAvailableDevice" - ], - "types": { - "system@emmoco.com.System/ResourceCount": { - "packed": false, - "align": 1, - "type": "S:system@emmoco.com.System/ResourceCount", - "size": 2, - "fields": [ - { - "pad": 0, - "align": 1, - "name": "app", - "type": "u1", - "size": 1 - }, - { - "pad": 0, - "align": 1, - "name": "sys", - "type": "u1", - "size": 1 - } - ] - }, - "std:i2": { - "align": 2, - "size": 2 - }, - "std:i1": { - "align": 1, - "size": 1 - }, - "std:u1": { - "align": 1, - "size": 1 - }, - "system@emmoco.com.System/ParameterGroup": { - "values": [ - "GROUP_A", - "GROUP_B" - ], - "align": 1, - "pack": 1, - "type": "E:system@emmoco.com.System/ParameterGroup", - "size": 1 - }, - "std:u2": { - "align": 2, - "size": 2 - } - }, - "imports": {"@emmoco.com.DUREX": true} -} \ No newline at end of file -- libgit2 0.22.2