diff --git a/apps/ios/cleverrc.xcodeproj/project.pbxproj b/apps/ios/cleverrc.xcodeproj/project.pbxproj index a11354c2..896d5a79 100644 --- a/apps/ios/cleverrc.xcodeproj/project.pbxproj +++ b/apps/ios/cleverrc.xcodeproj/project.pbxproj @@ -139,7 +139,7 @@ isa = PBXProject; attributes = { LastSwiftUpdateCheck = 0920; - LastUpgradeCheck = 0920; + LastUpgradeCheck = 0930; ORGANIZATIONNAME = "Copter Express"; TargetAttributes = { 7C51653C20139237004D1F4D = { @@ -294,6 +294,7 @@ 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; @@ -301,6 +302,7 @@ 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; @@ -351,6 +353,7 @@ 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; @@ -358,6 +361,7 @@ 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; diff --git a/apps/ios/cleverrc.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/apps/ios/cleverrc.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/apps/ios/cleverrc.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/Contents.json b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/Contents.json index dbbe908d..ea0141b6 100644 --- a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/Contents.json +++ b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -1,95 +1,111 @@ { "images" : [ { - "idiom" : "iphone", "size" : "20x20", + "idiom" : "iphone", + "filename" : "cleverrc40.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "20x20", + "idiom" : "iphone", + "filename" : "clever60.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "29x29", + "idiom" : "iphone", + "filename" : "clever58.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "29x29", + "idiom" : "iphone", + "filename" : "clever87.png", "scale" : "3x" }, { - "idiom" : "iphone", "size" : "40x40", + "idiom" : "iphone", + "filename" : "clever80.png", "scale" : "2x" }, { - "idiom" : "iphone", "size" : "40x40", + "idiom" : "iphone", + "filename" : "clever120.png", "scale" : "3x" }, { "size" : "60x60", "idiom" : "iphone", - "filename" : "cleverios180.png", + "filename" : "clever120-1.png", "scale" : "2x" }, { "size" : "60x60", "idiom" : "iphone", - "filename" : "cleverios180-1.png", + "filename" : "clever180-1.png", "scale" : "3x" }, { - "idiom" : "ipad", "size" : "20x20", + "idiom" : "ipad", + "filename" : "clever20.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "20x20", + "idiom" : "ipad", + "filename" : "clever40.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "29x29", + "idiom" : "ipad", + "filename" : "clever29.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "29x29", + "idiom" : "ipad", + "filename" : "clever58-1.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "40x40", + "idiom" : "ipad", + "filename" : "clever40-1.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "40x40", + "idiom" : "ipad", + "filename" : "clever80-1.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "76x76", + "idiom" : "ipad", + "filename" : "clever76.png", "scale" : "1x" }, { - "idiom" : "ipad", "size" : "76x76", + "idiom" : "ipad", + "filename" : "clever152.png", "scale" : "2x" }, { - "idiom" : "ipad", "size" : "83.5x83.5", + "idiom" : "ipad", + "filename" : "clever167.png", "scale" : "2x" }, { - "idiom" : "ios-marketing", "size" : "1024x1024", + "idiom" : "ios-marketing", + "filename" : "clever1024.png", "scale" : "1x" } ], diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever1024.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever1024.png new file mode 100644 index 00000000..18e6ddae Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever1024.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever120-1.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever120-1.png new file mode 100644 index 00000000..df88d16e Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever120-1.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever120.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever120.png new file mode 100644 index 00000000..df88d16e Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever120.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever152.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever152.png new file mode 100644 index 00000000..ac26ada9 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever152.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever167.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever167.png new file mode 100644 index 00000000..092ae2c0 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever167.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever180-1.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever180-1.png new file mode 100644 index 00000000..ede5637d Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever180-1.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever20.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever20.png new file mode 100644 index 00000000..a6efdbf2 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever20.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever29.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever29.png new file mode 100644 index 00000000..76a04760 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever29.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever40-1.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever40-1.png new file mode 100644 index 00000000..43736655 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever40-1.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever40.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever40.png new file mode 100644 index 00000000..43736655 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever40.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever58-1.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever58-1.png new file mode 100644 index 00000000..f5ef15a8 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever58-1.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever58.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever58.png new file mode 100644 index 00000000..f5ef15a8 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever58.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever60.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever60.png new file mode 100644 index 00000000..273f23c5 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever60.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever76.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever76.png new file mode 100644 index 00000000..1267cf82 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever76.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever80-1.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever80-1.png new file mode 100644 index 00000000..9cb96a3f Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever80-1.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever80.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever80.png new file mode 100644 index 00000000..9cb96a3f Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever80.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever87.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever87.png new file mode 100644 index 00000000..6510f9f1 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/clever87.png differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/cleverios180-1.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/cleverios180-1.png deleted file mode 100644 index ae590b79..00000000 Binary files a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/cleverios180-1.png and /dev/null differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/cleverios180.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/cleverios180.png deleted file mode 100644 index ae590b79..00000000 Binary files a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/cleverios180.png and /dev/null differ diff --git a/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/cleverrc40.png b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/cleverrc40.png new file mode 100644 index 00000000..43736655 Binary files /dev/null and b/apps/ios/cleverrc/Assets.xcassets/AppIcon.appiconset/cleverrc40.png differ diff --git a/apps/ios/cleverrc/Info.plist b/apps/ios/cleverrc/Info.plist index 561d6a61..690ce469 100644 --- a/apps/ios/cleverrc/Info.plist +++ b/apps/ios/cleverrc/Info.plist @@ -5,7 +5,7 @@ CFBundleDevelopmentRegion $(DEVELOPMENT_LANGUAGE) CFBundleDisplayName - Clever RC + CLEVER RC CFBundleExecutable $(EXECUTABLE_NAME) CFBundleIdentifier @@ -19,7 +19,7 @@ CFBundleShortVersionString 1.0 CFBundleVersion - 1 + 2 LSRequiresIPhoneOS UILaunchStoryboardName diff --git a/apps/ios/cleverrc/ViewController.swift b/apps/ios/cleverrc/ViewController.swift index 20329783..99e97ec5 100644 --- a/apps/ios/cleverrc/ViewController.swift +++ b/apps/ios/cleverrc/ViewController.swift @@ -24,6 +24,7 @@ class ViewController: UIViewController, WKScriptMessageHandler { UIApplication.shared.isIdleTimerDisabled = true // Setup webview event handlers + webView.scrollView.bounces = false; webView.configuration.userContentController.add(self, name: "control") webView.configuration.userContentController.add(self, name: "controlStart") webView.configuration.userContentController.add(self, name: "lowBattery") diff --git a/apps/ios/cleverrc/main.css b/apps/ios/cleverrc/main.css index c9a6dc11..3f3f944d 100644 --- a/apps/ios/cleverrc/main.css +++ b/apps/ios/cleverrc/main.css @@ -7,6 +7,10 @@ html, body { color: rgba(255, 255, 255, 0.9); } +* { + user-select: none; +} + .stick { border-radius: 50%; width: 5cm; diff --git a/apps/ios/cleverrc/telemetry.js b/apps/ios/cleverrc/telemetry.js index 4370ac13..6b35c585 100644 --- a/apps/ios/cleverrc/telemetry.js +++ b/apps/ios/cleverrc/telemetry.js @@ -65,8 +65,8 @@ new ROSLIB.Topic({ name: '/rosout_agg', messageType: 'rosgraph_msgs/Log' }).subscribe(function(message) { - var BLACKLIST = ['CMD: ', 'PR: ', 'DROPPED']; - if(message.level >= 4) { + var BLACKLIST = ['CMD: ', 'PR: ', 'DROPPED', 'Clock skew detected', 'MANUAL CONTROL LOST']; + if (message.level >= 4) { if (BLACKLIST.some(function(e) { return message.msg.indexOf(e) != -1; })) {