From f7bb8cd7747c5d6f22e53c80c10f21f7f7915bbd Mon Sep 17 00:00:00 2001 From: Piv <18462828+Piv200@users.noreply.github.com> Date: Thu, 23 Apr 2020 22:32:16 +0930 Subject: [PATCH] Add ios project --- .gitignore | 4 +- .../CarController.xcodeproj/project.pbxproj | 425 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 24570 bytes .../contents.xcworkspacedata | 10 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../CarController/AppDelegate.swift | 37 ++ .../AppIcon.appiconset/Contents.json | 98 ++++ .../Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 ++ .../CarController/ContentView.swift | 35 ++ .../CarController/CarController/Info.plist | 60 +++ .../Preview Assets.xcassets/Contents.json | 6 + .../CarController/SceneDelegate.swift | 64 +++ .../CarController/ServerData.swift | 29 ++ .../CarController/SimpleControllerView.swift | 28 ++ CarControlleriOS/CarController/Podfile | 12 + 18 files changed, 861 insertions(+), 1 deletion(-) create mode 100644 CarControlleriOS/CarController/CarController.xcodeproj/project.pbxproj create mode 100644 CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/xcuserdata/piv.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 CarControlleriOS/CarController/CarController.xcworkspace/contents.xcworkspacedata create mode 100644 CarControlleriOS/CarController/CarController.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 CarControlleriOS/CarController/CarController/AppDelegate.swift create mode 100644 CarControlleriOS/CarController/CarController/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 CarControlleriOS/CarController/CarController/Assets.xcassets/Contents.json create mode 100644 CarControlleriOS/CarController/CarController/Base.lproj/LaunchScreen.storyboard create mode 100644 CarControlleriOS/CarController/CarController/ContentView.swift create mode 100644 CarControlleriOS/CarController/CarController/Info.plist create mode 100644 CarControlleriOS/CarController/CarController/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 CarControlleriOS/CarController/CarController/SceneDelegate.swift create mode 100644 CarControlleriOS/CarController/CarController/ServerData.swift create mode 100644 CarControlleriOS/CarController/CarController/SimpleControllerView.swift create mode 100644 CarControlleriOS/CarController/Podfile diff --git a/.gitignore b/.gitignore index 1599b8d..bb68930 100644 --- a/.gitignore +++ b/.gitignore @@ -17,4 +17,6 @@ **.egg-info* **/dist/* build -__pycache__ \ No newline at end of file +__pycache__ + +Pods \ No newline at end of file diff --git a/CarControlleriOS/CarController/CarController.xcodeproj/project.pbxproj b/CarControlleriOS/CarController/CarController.xcodeproj/project.pbxproj new file mode 100644 index 0000000..412dde7 --- /dev/null +++ b/CarControlleriOS/CarController/CarController.xcodeproj/project.pbxproj @@ -0,0 +1,425 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 51; + objects = { + +/* Begin PBXBuildFile section */ + 5A9C27132443F52500DBDF12 /* SimpleControllerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A9C27122443F52500DBDF12 /* SimpleControllerView.swift */; }; + 5A9C27152443F5B500DBDF12 /* ServerData.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A9C27142443F5B500DBDF12 /* ServerData.swift */; }; + 5A9EB27A240100960053D3CF /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A9EB279240100960053D3CF /* AppDelegate.swift */; }; + 5A9EB27C240100960053D3CF /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A9EB27B240100960053D3CF /* SceneDelegate.swift */; }; + 5A9EB27E240100960053D3CF /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5A9EB27D240100960053D3CF /* ContentView.swift */; }; + 5A9EB280240100970053D3CF /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5A9EB27F240100970053D3CF /* Assets.xcassets */; }; + 5A9EB283240100970053D3CF /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 5A9EB282240100970053D3CF /* Preview Assets.xcassets */; }; + 5A9EB286240100970053D3CF /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5A9EB284240100970053D3CF /* LaunchScreen.storyboard */; }; + 5BEA7A8C24AF155FC02A6C58 /* Pods_CarController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 03FB25F696A1B33332234B4F /* Pods_CarController.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + 03FB25F696A1B33332234B4F /* Pods_CarController.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_CarController.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + 460C6595E5C32777EF7F2A4E /* Pods-CarController.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CarController.release.xcconfig"; path = "Target Support Files/Pods-CarController/Pods-CarController.release.xcconfig"; sourceTree = ""; }; + 4C5C85A33DD98E3CA9FCEF6B /* Pods-CarController.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-CarController.debug.xcconfig"; path = "Target Support Files/Pods-CarController/Pods-CarController.debug.xcconfig"; sourceTree = ""; }; + 5A9C27122443F52500DBDF12 /* SimpleControllerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SimpleControllerView.swift; sourceTree = ""; }; + 5A9C27142443F5B500DBDF12 /* ServerData.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServerData.swift; sourceTree = ""; }; + 5A9EB276240100960053D3CF /* CarController.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = CarController.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 5A9EB279240100960053D3CF /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + 5A9EB27B240100960053D3CF /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + 5A9EB27D240100960053D3CF /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 5A9EB27F240100970053D3CF /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 5A9EB282240100970053D3CF /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + 5A9EB285240100970053D3CF /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + 5A9EB287240100970053D3CF /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + 5A9EB273240100960053D3CF /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + 5BEA7A8C24AF155FC02A6C58 /* Pods_CarController.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + 49C2CFB75CF1768D7363A9DB /* Frameworks */ = { + isa = PBXGroup; + children = ( + 03FB25F696A1B33332234B4F /* Pods_CarController.framework */, + ); + name = Frameworks; + sourceTree = ""; + }; + 5A9EB26D240100950053D3CF = { + isa = PBXGroup; + children = ( + 5A9EB278240100960053D3CF /* CarController */, + 5A9EB277240100960053D3CF /* Products */, + A595BD070E838AFD9A774908 /* Pods */, + 49C2CFB75CF1768D7363A9DB /* Frameworks */, + ); + sourceTree = ""; + }; + 5A9EB277240100960053D3CF /* Products */ = { + isa = PBXGroup; + children = ( + 5A9EB276240100960053D3CF /* CarController.app */, + ); + name = Products; + sourceTree = ""; + }; + 5A9EB278240100960053D3CF /* CarController */ = { + isa = PBXGroup; + children = ( + 5A9EB279240100960053D3CF /* AppDelegate.swift */, + 5A9EB27B240100960053D3CF /* SceneDelegate.swift */, + 5A9EB27D240100960053D3CF /* ContentView.swift */, + 5A9EB27F240100970053D3CF /* Assets.xcassets */, + 5A9EB284240100970053D3CF /* LaunchScreen.storyboard */, + 5A9EB287240100970053D3CF /* Info.plist */, + 5A9EB281240100970053D3CF /* Preview Content */, + 5A9C27122443F52500DBDF12 /* SimpleControllerView.swift */, + 5A9C27142443F5B500DBDF12 /* ServerData.swift */, + ); + path = CarController; + sourceTree = ""; + }; + 5A9EB281240100970053D3CF /* Preview Content */ = { + isa = PBXGroup; + children = ( + 5A9EB282240100970053D3CF /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + A595BD070E838AFD9A774908 /* Pods */ = { + isa = PBXGroup; + children = ( + 4C5C85A33DD98E3CA9FCEF6B /* Pods-CarController.debug.xcconfig */, + 460C6595E5C32777EF7F2A4E /* Pods-CarController.release.xcconfig */, + ); + path = Pods; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + 5A9EB275240100960053D3CF /* CarController */ = { + isa = PBXNativeTarget; + buildConfigurationList = 5A9EB28A240100970053D3CF /* Build configuration list for PBXNativeTarget "CarController" */; + buildPhases = ( + DF3C92ECA29980008D9A0ED0 /* [CP] Check Pods Manifest.lock */, + 5A9EB272240100960053D3CF /* Sources */, + 5A9EB273240100960053D3CF /* Frameworks */, + 5A9EB274240100960053D3CF /* Resources */, + E0B3D65287999242E7AD3ABB /* [CP] Embed Pods Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = CarController; + productName = CarController; + productReference = 5A9EB276240100960053D3CF /* CarController.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + 5A9EB26E240100950053D3CF /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1130; + LastUpgradeCheck = 1130; + ORGANIZATIONNAME = "Michael Pivato"; + TargetAttributes = { + 5A9EB275240100960053D3CF = { + CreatedOnToolsVersion = 11.3.1; + }; + }; + }; + buildConfigurationList = 5A9EB271240100950053D3CF /* Build configuration list for PBXProject "CarController" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = 5A9EB26D240100950053D3CF; + productRefGroup = 5A9EB277240100960053D3CF /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + 5A9EB275240100960053D3CF /* CarController */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + 5A9EB274240100960053D3CF /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5A9EB286240100970053D3CF /* LaunchScreen.storyboard in Resources */, + 5A9EB283240100970053D3CF /* Preview Assets.xcassets in Resources */, + 5A9EB280240100970053D3CF /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXShellScriptBuildPhase section */ + DF3C92ECA29980008D9A0ED0 /* [CP] Check Pods Manifest.lock */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + ); + inputPaths = ( + "${PODS_PODFILE_DIR_PATH}/Podfile.lock", + "${PODS_ROOT}/Manifest.lock", + ); + name = "[CP] Check Pods Manifest.lock"; + outputFileListPaths = ( + ); + outputPaths = ( + "$(DERIVED_FILE_DIR)/Pods-CarController-checkManifestLockResult.txt", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n"; + showEnvVarsInLog = 0; + }; + E0B3D65287999242E7AD3ABB /* [CP] Embed Pods Frameworks */ = { + isa = PBXShellScriptBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + inputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-CarController/Pods-CarController-frameworks-${CONFIGURATION}-input-files.xcfilelist", + ); + name = "[CP] Embed Pods Frameworks"; + outputFileListPaths = ( + "${PODS_ROOT}/Target Support Files/Pods-CarController/Pods-CarController-frameworks-${CONFIGURATION}-output-files.xcfilelist", + ); + runOnlyForDeploymentPostprocessing = 0; + shellPath = /bin/sh; + shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-CarController/Pods-CarController-frameworks.sh\"\n"; + showEnvVarsInLog = 0; + }; +/* End PBXShellScriptBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + 5A9EB272240100960053D3CF /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 5A9C27152443F5B500DBDF12 /* ServerData.swift in Sources */, + 5A9EB27A240100960053D3CF /* AppDelegate.swift in Sources */, + 5A9EB27C240100960053D3CF /* SceneDelegate.swift in Sources */, + 5A9C27132443F52500DBDF12 /* SimpleControllerView.swift in Sources */, + 5A9EB27E240100960053D3CF /* ContentView.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXVariantGroup section */ + 5A9EB284240100970053D3CF /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + 5A9EB285240100970053D3CF /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + 5A9EB288240100970053D3CF /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + 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_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.2; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + 5A9EB289240100970053D3CF /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + 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_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.2; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + 5A9EB28B240100970053D3CF /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 4C5C85A33DD98E3CA9FCEF6B /* Pods-CarController.debug.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"CarController/Preview Content\""; + DEVELOPMENT_TEAM = KZ66DBVG63; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = CarController/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.Vato.CarController; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + 5A9EB28C240100970053D3CF /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 460C6595E5C32777EF7F2A4E /* Pods-CarController.release.xcconfig */; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "\"CarController/Preview Content\""; + DEVELOPMENT_TEAM = KZ66DBVG63; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = CarController/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.Vato.CarController; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + 5A9EB271240100950053D3CF /* Build configuration list for PBXProject "CarController" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5A9EB288240100970053D3CF /* Debug */, + 5A9EB289240100970053D3CF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 5A9EB28A240100970053D3CF /* Build configuration list for PBXNativeTarget "CarController" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 5A9EB28B240100970053D3CF /* Debug */, + 5A9EB28C240100970053D3CF /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = 5A9EB26E240100950053D3CF /* Project object */; +} diff --git a/CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..4a8720b --- /dev/null +++ b/CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/xcuserdata/piv.xcuserdatad/UserInterfaceState.xcuserstate b/CarControlleriOS/CarController/CarController.xcodeproj/project.xcworkspace/xcuserdata/piv.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..48d4abe71ca08d9479a846a728bcdeba92958b0e GIT binary patch literal 24570 zcmeHv30PCd_vp-B*a=~WumuQPAP_Ti*YOS?e*S7B3-PYRLYFk^YU9|en+)G&0_V@q4@BhB{z3+QqWHRfSGiT16ZDw?1 zo!MqrtIr{fC`2O$vB(KIBe%hd@g}RyY-t#xFj^~X&G4;EVYf66R#--lF;&`aJ_yfT zT_N@AU)sks$yAloTIn=$L9XSccB9?I;qBh|4djkIP#_9I!6*?WAr(qSDM*b{kp`t9 zEz+YNs2B}ECCGqEQ5h;nHe^RlXgr#LCZb7bGMa*>qG@P4dIE81CYpujp(W@=v=qIB zmZ9Zn1zLqRq0MLu+KygBucJ56n`kfEj}D@f=mT^feTqIqm(e%qD*7J%fUcvT(M|Ll zx{ZFvF4z@Iun!KvavX`Ha5Prn7@UArxEs#HMYta>!R2@$9*RfeDqMqWF^73P13!tM z!cXIwcou#J&&G4`bNB_k1iy%v;uUx;UWeD?O?WeY4Zn`xz;EI`_-%X)AIB%~N&Er+ z7=MC4#h>BN@n!ri{tn;3cku7{4~n8_w3}imH_DyzrUI!*DvFAxR8%sRLS<4}R2Qn0 zDx=D&fz%*sFg1i4N)4liQzIxdHHI2X)lv0S1I1B1HG_JRdWw3Qnn}%~=1_B~<ArM7 zx<6e^51>nE13i*9(PnxKJ(jl6Q|PJmH2O(;7X1vpj9yN!pkJm}(yQpzbTi#TZ=_$L zx6`}mx9NB3BlHRSWBL>NQ~ERdYx-OIJNg>^6a6dw2YrvB7@BcnLYXiooQYuMOe7P< zL^BE|hEXxeObV09bYr?RxlA52gc-^VV}>&$n2}5cGm0@XqnT=^o@rvnGZUC67>-%W zyu>VHmNP4umzkB!DrPm)%&cR!GH)<%GH)~cnG4KC<`VNU^9l1Q^BMCw^9A!IbA|bV z`H8v1{LcKrA{MjmtQRX~{aAlCn3b_|Hj<5FRcsooWz*R{Y+tq?+n+6F2e2iqfh}dr z*m8CtJBS_34q=C~Rji4vW@}grJBgjlPGP6A)7a_k6YOku4m+2f$1Y)CWS6opv1{11 z>^gQMyPMs^?q%O%_pt}q_t-=1VfGmN5qp-sz+Ps*DOWT!)zzIvo=AeckQDi%fIP-!H$H+1ig_Ijm2nt1E zC>%u~If~?1&WUs8TsT+GjdS0CqLBi{pjar5M+(k^^W-F)6pB@l(vBp(n;WVu6AG=y zdQ*iowk@N~I6Bv89b~i(G~3Lh>r8{p_S#Z&Lrt9tN-CuB9pMtYsOVp6Fxl)Ds}ZUT zTq)mZH&#fycdQDH^DGT^tEH~aWUa`{(`z-E1zJ@>rY29NP0iG)GV}GRs@#ms46QCb zFC#xMwL%&J9pqHnfiJdUqH{OW;C8Srmb%eKYmo!&3TaS#nJ}deMFCT$sFURCX-V=a zsX9F*Q`M=OY13TJpmbPQ9m*i9S_P9R_GV6vcCc?u(G2V4obw8++>68Q>e%E11mAlB0g#KTCIZ0XWcxSOk2YC34D{{H(Jrp89OKF%pmoYS z+lzB?<$R>b8z0#&^;IROz%r(3)4S&v6!tZgmJJ#zZrBQGxK0aetdXZ`)oOXBMk80l zFIjq$n<1}|hN|UhdNBtm@R4GLT9cEOo}ZJiO3l~7rcKiqsB&_2sjB=;jaHivyIGx@ zGZ1E-m8ON2B9so>b)eZaA=x&;Ty3wA`gGh3t@}pm51Ed=-M%}{>N511UAp}74;q}GPnkyh{0mgLjcA#?D>z&Iw_9d_=;9g#wv_cvPlUAh$G0PjtfR84CAeDiNP$P&)GeIQUiw>i6AoN^8H_!v@4kAq|&c~y1 zJsuBY%PbIC=Hh2TXqk@};DvY*2rn<;#jsVgxs4~N;kz+N%VIhU@rL~p`{f*~jY?PjQEHUS?Z;}kX68bQ1khjyH)15p)HZbO66U^D~`1+)!EBhW}x zfkq)C8jUKsATF4baUonN7siEi5uBWh8+R&zZNs7SjN zQcbR@+F}J(JJDPZn>o)?-)OX&ZI*_9mMT+4xy?ivJ~_HuyMo-I?a2zMywp?&(>GO# znQdq+0(L)ffYDw{)`qNwSPnQNUmUQCn3d<7s*M2S0HVOy2(vSo8m%T9B#dM~*+x3R zs}dxF3TbqsI19(1g1%GLxmAVK-%;GUv_fN8HeUd#bw~ja5sLVK#e^A-G!aErjz#9t zlStW&W^l31=qWBvT!evTZTK&;o9b<61nKS>G`9uKMsv7$PR*q`I(Qa6j{?@9=g@q# zfJ@+%T;dwE5LSILmjo-E%%zOTA6QmY1!yo=n@!f?{3&fE#TjJi9ZSdG>`0>wI@ybW9`P?m;>nO*|IMDilYiq0N> zphNdt(Kg_Tts6bZYBf$;gSMhqP&i&rIjlCnyT$( z7K6E_)-DCf_$=Cqc7ZIl8`Q-;K^=eLg9=(SS!ElGs`{)QdijJY<=mZSmI9&T$Dh09}*}gP{ z(1jZHAosLq!zm?<)qx@SZZ$M7v`Q$Cg-wJ+LRClz*xK3;>!w+)V7* z3xh~TRKiZ1pq(Z=v-cM4O$Pce*BAB-_C<4>u^%^}jS1sG90KeQ2jO5W<4QOKSGop= z;xHV}m2u_VKrUq%*@}J44OO7xbUONcMP}Ozjx39H5*#j-W8rY|a#XJni>0(Uax57+ zjvK_Koxw`vg%fcSNZOT6Rx9xLPCbzhxWU{LmvAyp!D^fewKX^mYtgq@hcmDqXQE5E z3+@W+#X+*2P$p_uk%T0Opj9@h(Ufcx1o+M<1Ym*a?51{3460RwATzacpoi;wcPb_0 zblx-}4tNSC!ZA*)k?qU}_IxE*#SP)60|PR0(>kzO+#UB2*lZ0~!3`C-qE5tGK03Ds z7vMtNlN-hj=SH;iwhnycF&v{c3mXI;G4fF!aTd6O7rGC8U@&&#`f{Tp&rBz!uzy$6+hBaVD;stKn)n zGdG4C%hhr9T*GGEB*=^kJPA+6Q()=}Je{)$(xNA4SMfb0moD)O<#q^mp&*qx0vU}1=OY@MQp@uD~hJ0<$j8kNMP z13SrXO14y2+f1PAk_|2bIKXNePvjjKCZ}m42;m^ciX}pe#|>$>)PSw2DzBEXWf<}? zfOiO^cqMeJ*HRE|)BiCE}J|CT13(DK`?^nd$NdW z2j@;6V5%|Nnr!V$C=&Nhyh}7Uiq%_rBjIQ*csHSTVv2mEOl-RszXdY;!{q{BZNd9U zcehm>paJNN*87a!z!ZU*-x_taW^2p`7p<0IVD++1!k_X4LKOyo-RC6qQqkU~ji$1oq_vt*c$@F{#6pW$Y5v$$ut*=s>!uE7^jJnSzWHwX3{ z=wu-SL6;)p6iDr+2}JR+8H^JI`4lKg*15D*k1DOSGy)aMI~5AeEmk||s+CrABb+zT zKA=+-p?AXS#nt~pSbYb~U*RjDs^G7=dCmA6?%97)Rq!=XRq*%t2ktrU`Sw%tNBqmf zN&@~B#pB<&`7qT5TuK{GqqBLDrX6GdiT{42>3tMWA#NcwUBsodqZry=6ZS)ETZ*Ne z0dC5PThfeb0Ix*P1wqhe5lns{Z;>T(RQ8}Gj!9Bp+)_>}V1n{NbJtM5lpp2Ky~M5H zR<%uv3Zg0~q2jp|PIpt7kPDwoOw zQ&0g_$gSbla_hMD+y-tVw~5=#ZQ-_Vrg~9DRBx&e)tBl=^{0xd0aOXMjeDJYn>)fC z<<4@y@tEeZD-R+Opggn_BWOcMvanykZu}3$rIYGMTk2pJ{6l$POAS!5x5I$Y)^CM0 z@gG{`g6=uC(PD0}g9VwGc3^A$^Y}$JTN7dW|1^Ff$aMc)S_XnSY{P$mq)ip8kgD6N zIGCZ}nJ6zxZkv&y!Uc+s^IaUR?|NQ9M-*=AHsr z|JOw04skySjF8x8z%oK4D}jxOo(Zz|iyP`D8JZdzV3=G`J;vIITc*`^V*m>c;E8n7 zTC)gj%FvIf-w5_)V9o803{6HVm_pOjr%iJJYoR89mxyWv1?6AbZ49li@QJ_@DxSS8;E_XCH7w!9o>H#usR!4KW0qHuaXwK=ji*rdBU7 zfEdAL4K>J~EST761RFpVIay$dBOl*&9`QApY+}c<4t45Hps@o68XR`*$93Rf$O6bP zh@wLWt#(BMKT%9UO$W7$j3e?Ku=lLy(grw?H;-BbmQCte>N#pYwSan_TFC9^-r){# z?{WvZ_tql?^#U9p3NY2a1gJU$A5ZQu_deNsau^ggN*l&!AasI``@@XapH((Ai|6a48fp8$GN2D6C z6Nrc)BuNHxz`T#zj{=&hx493Ssdu=K90oN}49MwJ^*!p4DE>VLYaMsvQR;YGmnXP0 zT#93?52=qj$&b_->Pw{D3a0;aVEn%T=Ko97$J8g(r_^WE=ai8<$DQXca2L5t+{fG} z+^5`U+~?dE+>Wi(W$G*VTn3_q4;=LGlN5EG`;z+#K3@WY$wvhO6-nI^PUenC0Av#0 zOC&Z2@Y9f~9%CUlXNZ_2L(3U%ifF?rQngJ}97;V5_({W&7bBVTI>QCyg z)!b!4q^0gre}k@9YO=Rb_fU6{<{y9|fJWTcU~J-KhW6oa|SV4qY{)4J-kA061SA{|5rbJw`<38ndTviS%| zEOEI0>2Nx-Q@bcSn!C>Z+D1;`AyOjc8aj@SrxUmv+>hK(Yv@EeiB@qxb2qtPIBl67 z5HzeBytw_~R073sh^=X~SvYvhg~1>iKtSpQ2tSZFSnTp@OH)IYe1N6OR?!JG5gF+M zLntvnhW-iHa7;Lh?h2wF-G#f|On2k%5b6sa*JQFz8US{yzJfME?pAvjU& z1xDMXGD{Iy-OZq>mXL9UlV+Fz0tqr8I<$}QtrVO?z)VDovA7>{jrPh~B76`Fn$Wte z8ophiOX)JYoE}II0;(8H4?$_zi5^am7-DRw1l<#086tF9X0p}~sVAM}ftg__@tjr( zP!1J}1yFd5x%)00;xYWA&OwJ2^eEa$kH${ub!sXA0*3}z9nAK8v#qht2<9s?z+k{! zJ)!wBJHW<00K3ILfs*NJ8oa+`H@87ALJsv?=vs$z_GsZljoPQ&U}*qV1uQOf9bFGj z^+&qygt->FfsFAVYB|WGk!~U@J&v}*NnzwM!($dsiXB8rQ_vIXN#uOsu@jG71kxeQ zpt9CfPvQsw105L!8L`j^%nVk`X16_D!7<`=nsYE@n&+`|`xbhNe)_+{(&^ds^B`b> z4|Xm+kA9YZj-F31;ISKz-FfW6V*ppeV=o>{H_!`V5{reYyhtzQu{W8Ek2s|O9tVjL zIUP=GAX_rSynf`^ZhB-6;_>C+yn;j}o|8l<5*esN?SFXsqIo8N640QzlI%DTBLrRu zAwO+gId>88(8W2ZwPd*5g>j9rWu+*+NZ4H$Z6Z2?=T{B=&JyM}^(=-nKE`;&EX682jmWI-R@p zLHbZz)x$gvZm)WjKGwPFNw5$r*U=wPM*1Ua3w@f$A>0lghjPbw9JUU8@#pCC;E%t^ z<8U6!c^t{(C>|>aAo>Q6quaaqnZDT>AGhe+ZB_5^IHtYopY&gytNu+tAWM6n$8pUJ zaJqPcl*lF^H!v1fo4~eSl?N=k2JG|g7U_KPpk^51tZAJi87^$XvsuGdd=N$6a{bm&e0lXSZAK znXbf2&tv`n5pP;fV`Dxjln{*qz8Dh4)p6t;apbHDsi_*a?f}v>C5!vaaSI9<8gN$_uz3hk8^mO%i}yA=Wk+)9Xxc<|GJhk?hv$rAs+;$nEzRq=ntZ@^T7-+-y&abc_DfT;n;0pM8p1-y#C z;N2JGS*C#*N9_44nMQ6rk9&bZpRsWhd0fP$Jme7YW}kO7n#fEcjkYqAxhXvE^Dm7Y zEqG=g*cO=?%#+Mh%+t(FY+;^ZW;1h`xjY6+>CfY09uMGg2{(qv1|FC4xQxf;o0(@F zgn}nCiv&_x!sCGsQsL}89xM{e(Em>?)?^zfoc|3c6VpP7Wetx9If!NbW4%m{Rouqx z5Q$|wA(kN>ygv`oilf0!W{*fHy9uET`_B#DVU80zIl#Qj9Aw^O4gsCK&m3WnG9bo` z;PFTvSMYcgkBx**fX`O)7--$JnE`tz5oYlu<`i>Upp$bvu6ED~k862s773;9{}al8 zpHMCnLivivH4Z}g=3lwWb>>DV8H@Ru`BkKxUkK%l0YYGYBWz~uqin|Ql!JQyWbTR7 zbC*yLIRE~!QELm9Vx8c;W@(mTSsq(>JdVeaj4XdiN)WGSPo0|qP)ahxe0(D-dN~_W5z-54Zh_}v5*XQP^Wu)e%Wpp@ySzoau z&`}=hNS~2bs8(yzRqD)itxBuUQLFSijarqTnxC4JmX@m4s&hJa6eM;8^3_8f)V-1tU(U{v0LAtQsV379`rq%`8Z?Q$%kSQ5!^iz+?3!R>x+e zfK6-$t7kLWEVc{VmF>oMXF*h$#^dQceuBpwk9oLz#p5S={1lI$-o)mRUC!pS1#BVP zlZ9Ab9?v9uoX4|x{0xt0^LP%A=R#J>5Qx00G1*J=`wTVP3hK-?B>ohPGGcZw|o`4Gere>%! zbJBGB44|+GWPy_| z;PF--FDG=O293J2sNbpJ}#ZNN>XR5y4c) z)}p!VSTj3@9n03S^*nx_$6$s6ylb_24;t)N&NSUxnRdFH9-`!82Fv=@3qA-1Y3M`wu|W6 ztwiz|3dtW&{2cq#hI>3{zosf%lw)nc*3B~odWyN9n|c!XS;n9`+dx9%}L^7{1c*T1-Y$k1UUE2|qP zOq}{e>+Lu3`Vw3PXk7>K1_%Tz=h(p@Il9SivcavlNRA#-+EiI-GJ(tQtbc$cP!{%> z8!atC!5qV}Eg_+BqbHQ}hl>V9$ki1Xx4N*-SYsp6 z(QTm>P)Imnbat$WfA43=RX1lYWN30}VgFK9E=0?mktC^-LBlC8A|tf7?Etonb0wgv z)3er+i$t7oO@{MaOD^OH7f=GpEdX%eiBJ-F+FFC(4}dNseHWU*W@j~l4}myqZI7!` zUQ|v@@5K;$Wi>-^lmm5O2y*n&TBWV%On@Xiw>bwc@dXed^LvK16bRQXT6z_UH!i?4 z4gfd?Co%pOYrBgNyftm5#9rK90s-4jX9koQN*{M0q;nLyp{(r=2(%bD=;0vpfrHB& z5#(Tj5Ya)9FU%HLw3t&+-&kw30rtdv=xO)}0jrLiCvBH<)(kh4L2<<>I5HkyxHZPn zWsk{*EOB|-ml%4eGPROcOI6wVnp*Q1$=JI31`7Z?sMZXJ0U@}0xba39tndY>uaw-q zgu@2Pnjm1bULZ*!GgpoB;O>}|hPxp0bK|TwiM^@c_%euD&j;sGQC=SOE1W=5S8`XR z*xS1nA@5paV`Ci!6j~4A20aZqLk15SDtG=2t{DYFU}G}!GFI9ea|R6PONf{l+eKpT z`2U>?2$Sz;Riv+uCI5vqTLl{i>K%a3q$*owJwmuELeAGJ8?APPTosTXJ;B~c(!C(< zH@3`>2kGGmxp=g;g=`ej6U-A`#4N6M>uj zM8LfgN?X%Ej5iPL59w@#sHjGJt^v}$Aw9ZjYF$ueRNK^xq_qgq0h4RX20=O;(!Co-_b-NY7Nlz{ZFxf>9S`Z2T2m2O zC%_qf+-xr@gEWjs|75ioNPQ(jOxG$?eu0?JRFAdvAuvQi{u{ROr6gZ~d2($YffL4J zE{rku9sp@zV$5%*x}Kyy^ux*;?E^@k@SV+XsOwM0&4%<6lTDZ}d}lA%Ys<)*X%KRX zvRlhYTY$|8{8WWSkS>Ju#9C`Fk`MEB+TU0w&>7&w>7KR8K;{l}bS^YCloK2hy5Nk~ zf}W5DTsiMU1F;bQnYJ`2DyIo&f;AgB}R(3FVmKe>3DdC_tpFN+E}=MIHQ-b$Jxd_B9jxd8h|W3*!=+ z%@KMb6jl!(va%)tr#)eOBdmw`YDP8WHozMj9ie=fqM)}UQ}+cS`Gt80jv@J0>7Jv) zD1_4F=b7EZ&w3o0THUZf*4Q|5{nWdr#`aRO4yIZC@AOAAlGHoYH`Hs@Th+JJU$oay zUsV67KCfI%PvSBczP#q@yE z?%-|E6F$~)2GF~RFT&9t4}Hg-VRFiHigPM(iWB-4X6Kae)XS+5$(>S3zEg@*Z%Aj7 zS|ox2&Ks0xX`EywR|)0dgQ+vgiyA7EljIt>-H#BFnMfUkZj}hK5DqvAS8~RSc?|i( zA~%qy{NOd5a1;%vwF+jHfx5t%SpYIXF}#2?1a9_L!fMt7#wNhqH$0k&=As4Y1-RV3 z3NBY}f?H^>!3D;B=v}x`cmkagUb(pp=ht<3+vX0s3ztxwu_yM0D@YM={W}qE`{?0H zOabnT4R{FLE2)8-A5C~Fyks*Mu7EGY&G2H)tMF3IyYN!YX?UaND+t*B75_!iln2B) zhf%Tc3XLA3fcwB3G$W`Qh}oPBugp9L@r5lAIJXmCkvRd;U=Yql-G&b?)iC`Bhf>%>&*a@H*FJafSZ^G**=h>_59VaKJ09c<4Shpcg zW1OZq&2xI$X}i+_r_)YXoNhZiI|n-_I(Ks}b~ZZOoo70~xfZ)txlVGO@4D7?uj@yyS6%PAdAr5A zb#p6o8{@{iEp>av?XcTtZnxas-J{$y-Amlf?wtEl_Z{v>-M@1G)5FI@>5=C#+@s0k zIgbq<2RuIZxaH~T8S9ztIn>kc`JCq_&-XmP@ccvKD@m3VNvb4INR~@>O3p}r@^bZx z@yhWU={4DFiP!61A9>x7x=LfEc~YZvx^%g8kMyGSwzsc$s&}z>z4tut&EChnulYFp z#QGHYRQWvRv&QE=pDVt!Z?tcoZ>8^(zH5CC`(E{P@{98;@*Cqf*KeEOhkiHxef+il z1N|rZFZX}j|8f8w5F1bwP!}*i;I)7Y0e=OC1?B{r0%r%l5_l%?_n?rV>>yLnoS^MN z=Y#$VmIoIEj}3l4cvtY}GDfD9mB=Q@R>}^`ZiM)SbP1^pnG^C_$S0vxs4~X z=*iIAVc}st!y3b03VSc?MtDGYcKDd^#o_zIzmM>Z=pJE?SRC)>?zG}R}ycj}DPy{W%yl$uJ-a?QCk&$Pm{C(?GO{i03OnzSpmm(qRH z`=!rHKbZcvE<N2*=<}TN|#&tDyUEB3ax2SH$Zq3~;cb9h`)qQpM%RM4{7<;tz_&Pf}yDEEq_IEi6 zIb(9R=KPea&b8*gnfrTQR^GI{1Nn4*&-^+09~Sr&lou>3_@XeXu%>WJ;mw}uJ*V_M z(2MQWr`PknE*6CqRTgb3y4gFU_q5)J`grsy?X#@U*L{_Jt$p|Qqx$vkx2WG|{bTw! z^xsvCii?UD6@NY;Zos$!ZAjY>0Wt?xD^@2M%37^!BiVVJ{53Iy`;&%;6VC z#EqCZ;@C*p$hwhlS9nzzD_$SPjv6#-^Qe2qVq=T(_UNL~D@Na}%&UB{@_JQv)#9q} zP2EfjP2W{_t6o@rt)^SeqMGk(d(Y`g7#pkSVCif?+l>8tVG z$1flM$Ap0sUZ3bav0>uLNy`NPjOFOdAjG*TV_gTT4!FI)n(SIXP9Tq z&wMyLZT3sE@6V~4b9}CP?vlCp=2gx+{%q>AOP_u4T=jDw&ezRfxxi^b!-5OX_jrEe zLhpr>7hYM^Z_&=h^2Ku&|Mo(~3&)mdm#lix?Zu`SFE8!8boWb&mlnKqZ&~fK^UHIW zZ(k9*V)lyPU#@!j%*yPQudE7NHFwottIew~HTP`Z*%I5bWR26B@oT>+{;d*Y&Tz@#o9NgPw@0)KW zzqMgszzWG7=2XB6;`*7z+86WLFm3eCK>8_{u zpXqVt-Lv^;-#=G$?!@{2=TBcKzi{c|@Qar(Rb9IFaoxwid@}x%yAX)Xem3WG>E}zn z2>qhv%Y-ktU)EiI`>Xt~PJUhb^`}=VuU!Ae_RYPkPkrn8?UL^zzT0$7b8X-Eh2Nk0 zVb~8>uQy)5dt>I0-aoGRDgLK7e$M{+ZUx`k@SFCxgSQ9V{^Cyk zox8u!`6Kv`jeqL@Jo49|zrMRW;hyuorGF>bOgLBmqB-j7~8%O z#A>7);N7^HAVbW9K*k01OYm;oT6!x;6FcbF{KNgD{nh?y{@MNo{{8$1_?P>S@dxV> z`Ju4*7hcxr^y5E+^KzKaH?eR9U_Ce#wy;}S8~X~oU2rR`<1vK&fdPF3k2kJooACSW z>+BnF@$Y@`GH{T;iN{+YTzxU|HIS$K-ys=*TgXpArAA-%1H<-{JkB+d%*^}T6Bzev32Rz>1dQFZ!)mBq%c}|Fq z6Vn&bxeY8_IS1b?&9Y#40AJy2B%%s@wBV@)zfL9zvFhE?6?#QlJ4e+~P7>tHCJxKO64U8ih)3Op1Y4J?bEytqJVo-NXno$1SZYQ{UEtWWfXp*sLlg zky*msC<0ilO}HYhB6i4b|0iEoh;2no)!1(J#!8EAVyZehHN7=gbVPQWsMl5Kw1TD9 zq!MZgm4JH$gB>slrGmw+2XKyoXgC^4AE!^zpVL?AoAmGWJ^DU_7#1QN-5{(n4T8J| zG1W{hGlr>y7@|hT%Ge>c=V@jZMD@&No@M4U&ohgd7Ul$V2YkFkz*V<^-NbH&?ev!0 ze7EP_mbtA1NqV2#dv3?w&bnQ8`_b)Zw_n_Dx!rdA-R)0zCwCWjc$dyy;x2Xfb@z9V zcGtO^+$XxvbzkYe#r=JdwU4`>bpO!(l=~U?bM6=1FS&o>{+at1?w8%~y8rF|zyo{G z9;}D6hpPuXZs+0U;qBq;;qMXXk?7Ii<4KUrU-fv$>&^GVMIo{KzR z@LcM-%yWh34$nQF`#leM9`roqdD`=m=O><@fy{o@^E=P)J+FKI=y_M-A_1G8*Lhv66a;MKVrelRPbXPV%B;y=0r@P04=AImxGzo04B8zj`HlUIwoUuTfq`uS&0pUUR*cd2RDL=5@mB1JD3Yd!3cCQi(KJ8X^so zMo1&2(b5>HM%oRuf&ytzX_2(QbdYqsbc%GDbc1x0bc=Kw=n3yjk4leAPf9OKzn109JG(07Dyg|89xj4{4-z74*OzEo?MGs^0>?6@GjD_WAAiJK%TF z?~vd7eniQ;E(+!{!-9a{QM(<)5rM7f##y~ z*ZXJr_X1u&$bX3cF#jt5$^K9Hzu@2EzuAAM|8D=i{`>q7`=9VX<^Qe!tpJw*w*Zd- zNq{uKC%`WtARs6}77!Yc8ju!{9*_}`8PFx5TR@M1oPfN5f`Fa@RRK>1YzR0O@N=Ln zuxsF`z$XG%25t!49Jm#Q*#9&o$N^oj$R&dwg?!no?xxx9t{en%wjlq+HX9X_^UKqSMcuDZm z;O5{p!RvxI1aAu75_~N9TbZjYN|q=~k|oQ!$hyn2WqGm!Sx?z8S(VHz8!M}qS!7dX zPs*N_&63TQEs!mgEtV~jEtNIPHp_O&_R9{)4$2P6PRKrxeIz?AJ1hHK_O0xe?2haY z*AtfP$LxzS74;dL^3aJS(hl~xW z58*;)hb#$sIb>BxbI6*I%^_PuUJ2O&TH%3^V<8tpJ`edaB`GX2`Fh zY^WqOBvc)$3Dt(`LiM3pp3atqp6IvhI7-|iD zKJ?Ylk3z46d55Kj6^GS_Edbr}RM^L1pN4%N_GQ>tVLyc32>U7QX4tP`zlD2+E5kFx zhlDqVPYa(H{#^Ki@P(j%E(u>6zASuG_?GZ(;oHMs4SzlS&G22}d&0krz!82C`iSy~ zNfE0fHbrcX*c!1dVsFHeh+`2aB0h-tDB^U)*@(*#Uq^fs@omJlh#w+uMEoT8mdDBS zW+Kc{}EO z%qKCoV*ZYGj`fZW1&v=Bn-r^xO^MaSrpFe>j*P8|t&44lZH%?XPKjL!{^W#>;t%_@oTN}3_Zd2UO zxLt9(PBjL4#HxqUz>`ge5a5Ujq!ij`S30D%nO}LhD zJ>kcMn+bOl?klm9Q93K#lpe}xWp`!0a27d0q0xOV$4BK($OAp^j85)Uja6(W?v8z14ly#p*KkK=lyyF!dPq1ob@ieDy;0 z3+kon(!go`_=EN-%}q}A5kAupHP3OKBYbbo{o#^-%@>3Gg617K9Sm- zdN}nP4XyFecxikzewr{%tR^0;LrLI(R%^Oxay9vyo|?Xz{+aDSYLO8+JOR{Cw7 zw=P^4sZ;3UbP2jdonF^P*Ik#R%hMI;47zgNVBIj?NZlx1gKnyBwr+)Pm99m%PPb9F z1*~JQ>fX@p(jC`*p!-O7T6a!&QTK`NbKPa#*Sc?XKk5F=@X3hD=$cWIQJpb8K$t9Q}6>wWb8`XGIXJ`C(@WA#tzpVcqbFW0ZsH|y8xH|RI% zck18PAJD(2e_#KB{*?Z#{(}BeCeBRB9F|#?IW}`r=FH4zGZ$no%3PB9a^~vHHJR%( zH)g(?`FiGCnMX4}$~=>KKJ!xMmziH@Ud_Cg`9tQd%sW|3mUmWAR!CNOR%BLuR$^9i zR%%vSR@bb&tiA*O81Pq#bBSL`V2P|GtVCWCT@qW8R-!A>mvkxVUXopsTasU5E_tqG zcgfc!*Gq1d+$(uta4~op{0wo11cSzqZpbiX8VU_XhCYV=28e<&3^!C5jD|`>ouS@f vF-$bfGR!f|Gt4(EG`wI~YFKV~*|6EL)$oepRZ-!kDDf|QwUYvj%B24b+`MPN literal 0 HcmV?d00001 diff --git a/CarControlleriOS/CarController/CarController.xcworkspace/contents.xcworkspacedata b/CarControlleriOS/CarController/CarController.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..4ffc8d6 --- /dev/null +++ b/CarControlleriOS/CarController/CarController.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,10 @@ + + + + + + + diff --git a/CarControlleriOS/CarController/CarController.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/CarControlleriOS/CarController/CarController.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/CarControlleriOS/CarController/CarController.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/CarControlleriOS/CarController/CarController/AppDelegate.swift b/CarControlleriOS/CarController/CarController/AppDelegate.swift new file mode 100644 index 0000000..fd47dc0 --- /dev/null +++ b/CarControlleriOS/CarController/CarController/AppDelegate.swift @@ -0,0 +1,37 @@ +// +// AppDelegate.swift +// CarController +// +// Created by Michael Pivato on 22/2/20. +// Copyright © 2020 Michael Pivato. All rights reserved. +// + +import UIKit + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + + + + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + // Override point for customization after application launch. + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + // Called when a new scene session is being created. + // Use this method to select a configuration to create the new scene with. + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + // Called when the user discards a scene session. + // If any sessions were discarded while the application was not running, this will be called shortly after application:didFinishLaunchingWithOptions. + // Use this method to release any resources that were specific to the discarded scenes, as they will not return. + } + + +} + diff --git a/CarControlleriOS/CarController/CarController/Assets.xcassets/AppIcon.appiconset/Contents.json b/CarControlleriOS/CarController/CarController/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..d8db8d6 --- /dev/null +++ b/CarControlleriOS/CarController/CarController/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/CarControlleriOS/CarController/CarController/Assets.xcassets/Contents.json b/CarControlleriOS/CarController/CarController/Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/CarControlleriOS/CarController/CarController/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/CarControlleriOS/CarController/CarController/Base.lproj/LaunchScreen.storyboard b/CarControlleriOS/CarController/CarController/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 0000000..865e932 --- /dev/null +++ b/CarControlleriOS/CarController/CarController/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/CarControlleriOS/CarController/CarController/ContentView.swift b/CarControlleriOS/CarController/CarController/ContentView.swift new file mode 100644 index 0000000..5f8de90 --- /dev/null +++ b/CarControlleriOS/CarController/CarController/ContentView.swift @@ -0,0 +1,35 @@ +// +// ContentView.swift +// CarController +// +// Created by Michael Pivato on 22/2/20. +// Copyright © 2020 Michael Pivato. All rights reserved. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + NavigationView{ + List{ + NavigationLink(destination: SimpleControllerView()){ + Text("Simple Controller") + } + + // TODO: Change these when other functionality is implemented + NavigationLink(destination: SimpleControllerView()){ + Text("SLAM Controller") + } + NavigationLink(destination: SimpleControllerView()){ + Text("Tracking Controller") + } + } + } + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/CarControlleriOS/CarController/CarController/Info.plist b/CarControlleriOS/CarController/CarController/Info.plist new file mode 100644 index 0000000..9742bf0 --- /dev/null +++ b/CarControlleriOS/CarController/CarController/Info.plist @@ -0,0 +1,60 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/CarControlleriOS/CarController/CarController/Preview Content/Preview Assets.xcassets/Contents.json b/CarControlleriOS/CarController/CarController/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..da4a164 --- /dev/null +++ b/CarControlleriOS/CarController/CarController/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/CarControlleriOS/CarController/CarController/SceneDelegate.swift b/CarControlleriOS/CarController/CarController/SceneDelegate.swift new file mode 100644 index 0000000..33efa61 --- /dev/null +++ b/CarControlleriOS/CarController/CarController/SceneDelegate.swift @@ -0,0 +1,64 @@ +// +// SceneDelegate.swift +// CarController +// +// Created by Michael Pivato on 22/2/20. +// Copyright © 2020 Michael Pivato. All rights reserved. +// + +import UIKit +import SwiftUI + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + + var window: UIWindow? + + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + // Use this method to optionally configure and attach the UIWindow `window` to the provided UIWindowScene `scene`. + // If using a storyboard, the `window` property will automatically be initialized and attached to the scene. + // This delegate does not imply the connecting scene or session are new (see `application:configurationForConnectingSceneSession` instead). + + // Create the SwiftUI view that provides the window contents. + let contentView = ContentView() + + // Use a UIHostingController as window root view controller. + if let windowScene = scene as? UIWindowScene { + let window = UIWindow(windowScene: windowScene) + window.rootViewController = UIHostingController(rootView: contentView.environmentObject(ServerData())) + self.window = window + window.makeKeyAndVisible() + } + } + + func sceneDidDisconnect(_ scene: UIScene) { + // Called as the scene is being released by the system. + // This occurs shortly after the scene enters the background, or when its session is discarded. + // Release any resources associated with this scene that can be re-created the next time the scene connects. + // The scene may re-connect later, as its session was not neccessarily discarded (see `application:didDiscardSceneSessions` instead). + } + + func sceneDidBecomeActive(_ scene: UIScene) { + // Called when the scene has moved from an inactive state to an active state. + // Use this method to restart any tasks that were paused (or not yet started) when the scene was inactive. + } + + func sceneWillResignActive(_ scene: UIScene) { + // Called when the scene will move from an active state to an inactive state. + // This may occur due to temporary interruptions (ex. an incoming phone call). + } + + func sceneWillEnterForeground(_ scene: UIScene) { + // Called as the scene transitions from the background to the foreground. + // Use this method to undo the changes made on entering the background. + } + + func sceneDidEnterBackground(_ scene: UIScene) { + // Called as the scene transitions from the foreground to the background. + // Use this method to save data, release shared resources, and store enough scene-specific state information + // to restore the scene back to its current state. + } + + +} + diff --git a/CarControlleriOS/CarController/CarController/ServerData.swift b/CarControlleriOS/CarController/CarController/ServerData.swift new file mode 100644 index 0000000..816144a --- /dev/null +++ b/CarControlleriOS/CarController/CarController/ServerData.swift @@ -0,0 +1,29 @@ +// +// ServerData.swift +// CarController +// +// Created by Michael Pivato on 13/4/20. +// Copyright © 2020 Michael Pivato. All rights reserved. +// + +import Foundation + +final class ServerData: ObservableObject{ + + // TODO: Find a way to save/represent this stuff in iOS settings (user can access via settings app). + // Then load the below values ar runtime, from settings. + + + @Published var port: Int = 50051 + @Published var grpcPort: Int = 50050 + @Published var host: String = "10.0.0.53" + + func load(){ + // Load the server values from settings, if they had been + // previously saved. + } + + func save(){ + // Save the current state to be remembered for next time. + } +} diff --git a/CarControlleriOS/CarController/CarController/SimpleControllerView.swift b/CarControlleriOS/CarController/CarController/SimpleControllerView.swift new file mode 100644 index 0000000..ddddf3c --- /dev/null +++ b/CarControlleriOS/CarController/CarController/SimpleControllerView.swift @@ -0,0 +1,28 @@ +// +// SimpleControllerView.swift +// CarController +// +// Created by Michael Pivato on 13/4/20. +// Copyright © 2020 Michael Pivato. All rights reserved. +// + +import SwiftUI + +struct SimpleControllerView: View { + @EnvironmentObject var server: ServerData + @State var throttle: Float = 0 + + var body: some View { + HStack{ + Text("Opened Simple Controller!") + Slider(value: $throttle) + } + } +} + +struct SimpleControllerView_Previews: PreviewProvider { + static var previews: some View { + SimpleControllerView() + .environmentObject(ServerData()) + } +} diff --git a/CarControlleriOS/CarController/Podfile b/CarControlleriOS/CarController/Podfile new file mode 100644 index 0000000..a14c476 --- /dev/null +++ b/CarControlleriOS/CarController/Podfile @@ -0,0 +1,12 @@ +# Uncomment the next line to define a global platform for your project +# platform :ios, '9.0' + +target 'CarController' do + # Comment the next line if you don't want to use dynamic frameworks + use_frameworks! + + # Pods for CarController + pod 'SwiftGRPC' + pod 'SwiftyZeroMQ5' + pod 'SwiftProtobuf', '~> 1.0' +end