Neopixels: Fixed the number of bytes sent for animations. It was hardcoded and now depends on the board.
Updated for Swift 5.2 and fixed new warnings about tuples
This commit is contained in:
parent
5125b08706
commit
c089e932da
9 changed files with 178 additions and 148 deletions
|
|
@ -75,6 +75,7 @@
|
|||
A94AC1462363A59B0062AB11 /* TemperatureViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A94AC1452363A59B0062AB11 /* TemperatureViewController.swift */; };
|
||||
A94AC1482363A7BD0062AB11 /* TemperaturePanelViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A94AC1472363A7BD0062AB11 /* TemperaturePanelViewController.swift */; };
|
||||
A94AC14E2364A82B0062AB11 /* AdafruitBoard.swift in Sources */ = {isa = PBXBuildFile; fileRef = A94AC14D2364A82A0062AB11 /* AdafruitBoard.swift */; };
|
||||
A9573B372464891D00E15D28 /* AdafruitBoard+FlashNeopixels.swift in Sources */ = {isa = PBXBuildFile; fileRef = A9573B362464891D00E15D28 /* AdafruitBoard+FlashNeopixels.swift */; };
|
||||
A958E77C238AFA4E006A225A /* BlePeripheral+AdafruitNeoPixels.swift in Sources */ = {isa = PBXBuildFile; fileRef = A958E77B238AFA4E006A225A /* BlePeripheral+AdafruitNeoPixels.swift */; };
|
||||
A958E77E238B7457006A225A /* NormalBrightnessSliderControl.swift in Sources */ = {isa = PBXBuildFile; fileRef = A958E77D238B7457006A225A /* NormalBrightnessSliderControl.swift */; };
|
||||
A958E780238B75D9006A225A /* NormalBrightnessColorPickerController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A958E77F238B75D9006A225A /* NormalBrightnessColorPickerController.swift */; };
|
||||
|
|
@ -339,6 +340,7 @@
|
|||
A94AC1452363A59B0062AB11 /* TemperatureViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemperatureViewController.swift; sourceTree = "<group>"; };
|
||||
A94AC1472363A7BD0062AB11 /* TemperaturePanelViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TemperaturePanelViewController.swift; sourceTree = "<group>"; };
|
||||
A94AC14D2364A82A0062AB11 /* AdafruitBoard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdafruitBoard.swift; sourceTree = "<group>"; };
|
||||
A9573B362464891D00E15D28 /* AdafruitBoard+FlashNeopixels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "AdafruitBoard+FlashNeopixels.swift"; sourceTree = "<group>"; };
|
||||
A958E77923821EF8006A225A /* BlePeripheral+AdafruitToneGenerator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BlePeripheral+AdafruitToneGenerator.swift"; sourceTree = "<group>"; };
|
||||
A958E77B238AFA4E006A225A /* BlePeripheral+AdafruitNeoPixels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "BlePeripheral+AdafruitNeoPixels.swift"; sourceTree = "<group>"; };
|
||||
A958E77D238B7457006A225A /* NormalBrightnessSliderControl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NormalBrightnessSliderControl.swift; sourceTree = "<group>"; };
|
||||
|
|
@ -545,6 +547,7 @@
|
|||
children = (
|
||||
A92256942411D01100B8AB57 /* AdafruitBoardsManager.swift */,
|
||||
A94AC14D2364A82A0062AB11 /* AdafruitBoard.swift */,
|
||||
A9573B362464891D00E15D28 /* AdafruitBoard+FlashNeopixels.swift */,
|
||||
A901EC4C237C47D800687BE6 /* SensorDataSeries.swift */,
|
||||
A9A08B2223A2841200498069 /* LightSequence.swift */,
|
||||
A9A08B2423A2CBCF00498069 /* LightSequenceAnimation.swift */,
|
||||
|
|
@ -1206,6 +1209,7 @@
|
|||
A9EAA19523514B2800FA615E /* CornerShadowButton.swift in Sources */,
|
||||
A96AA5D523635A89004A06BA /* NSLayoutConstraint+ChangeMultiplier.swift in Sources */,
|
||||
A93159DD241A5B6000218092 /* ActiveLabelUtils.swift in Sources */,
|
||||
A9573B372464891D00E15D28 /* AdafruitBoard+FlashNeopixels.swift in Sources */,
|
||||
A96AA5C823633EB3004A06BA /* UIButton+BackgroundColorForState.swift in Sources */,
|
||||
A92256912411CEEA00B8AB57 /* BlePeripheral+AdafruitToneGenerator.swift in Sources */,
|
||||
A9A08B2523A2CBCF00498069 /* LightSequenceAnimation.swift in Sources */,
|
||||
|
|
@ -1603,7 +1607,7 @@
|
|||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 21;
|
||||
CURRENT_PROJECT_VERSION = 22;
|
||||
DEVELOPMENT_TEAM = 2X94RM7457;
|
||||
INFOPLIST_FILE = BluefruitPlayground/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
|
|
@ -1628,7 +1632,7 @@
|
|||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 21;
|
||||
CURRENT_PROJECT_VERSION = 22;
|
||||
DEVELOPMENT_TEAM = 2X94RM7457;
|
||||
INFOPLIST_FILE = BluefruitPlayground/Info.plist;
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
|
|
@ -1692,7 +1696,7 @@
|
|||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 21;
|
||||
CURRENT_PROJECT_VERSION = 22;
|
||||
DEVELOPMENT_TEAM = 2X94RM7457;
|
||||
INFOPLIST_FILE = "BluefruitPlayground-SimulatedBluetooth-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
|
|
@ -1718,7 +1722,7 @@
|
|||
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
|
||||
CLANG_ENABLE_MODULES = YES;
|
||||
CODE_SIGN_STYLE = Automatic;
|
||||
CURRENT_PROJECT_VERSION = 21;
|
||||
CURRENT_PROJECT_VERSION = 22;
|
||||
DEVELOPMENT_TEAM = 2X94RM7457;
|
||||
INFOPLIST_FILE = "BluefruitPlayground-SimulatedBluetooth-Info.plist";
|
||||
IPHONEOS_DEPLOYMENT_TARGET = 12.0;
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
|
||||
<device id="retina6_5" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
|
||||
<capability name="Named colors" minToolsVersion="9.0"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
|
|
@ -402,19 +402,19 @@
|
|||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="scanning_background" translatesAutoresizingMaskIntoConstraints="NO" id="8C3-rm-MeC">
|
||||
<rect key="frame" x="-126" y="124" width="666" height="666"/>
|
||||
<rect key="frame" x="40.333333333333343" y="290.33333333333337" width="333.33333333333326" height="333.33333333333337"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="8C3-rm-MeC" secondAttribute="height" multiplier="1:1" id="Om7-9I-uA7"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="scanning_background" translatesAutoresizingMaskIntoConstraints="NO" id="CWZ-b3-xqm">
|
||||
<rect key="frame" x="-126" y="124" width="666" height="666"/>
|
||||
<rect key="frame" x="40.333333333333343" y="290.33333333333337" width="333.33333333333326" height="333.33333333333337"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="CWZ-b3-xqm" secondAttribute="height" multiplier="1:1" id="1kq-aH-pC6"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="scanning_background" translatesAutoresizingMaskIntoConstraints="NO" id="8Ft-ej-FAg">
|
||||
<rect key="frame" x="-126" y="124" width="666" height="666"/>
|
||||
<rect key="frame" x="40.333333333333343" y="290.33333333333337" width="333.33333333333326" height="333.33333333333337"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="8Ft-ej-FAg" secondAttribute="height" multiplier="1:1" id="b0q-mr-GjX"/>
|
||||
</constraints>
|
||||
|
|
@ -597,7 +597,7 @@
|
|||
<objects>
|
||||
<viewController id="MlQ-3l-TbI" customClass="ScanProblemsViewController" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target" sceneMemberID="viewController">
|
||||
<view key="view" contentMode="scaleToFill" id="1Lx-el-2sO" customClass="GradientView" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="756"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<tableView clipsSubviews="YES" contentMode="scaleToFill" alwaysBounceVertical="YES" dataMode="prototypes" style="plain" separatorStyle="default" rowHeight="-1" estimatedRowHeight="-1" sectionHeaderHeight="28" sectionFooterHeight="28" translatesAutoresizingMaskIntoConstraints="NO" id="7ms-q4-Fd9">
|
||||
|
|
@ -605,14 +605,14 @@
|
|||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<prototypes>
|
||||
<tableViewCell clipsSubviews="YES" contentMode="scaleToFill" insetsLayoutMarginsFromSafeArea="NO" selectionStyle="none" hidesAccessoryWhenEditing="NO" indentationLevel="1" indentationWidth="0.0" reuseIdentifier="HelpCell" id="U5T-Rn-JoM" customClass="HelpTableViewCell" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="28" width="414" height="217"/>
|
||||
<rect key="frame" x="0.0" y="28" width="414" height="216.66667175292969"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<tableViewCellContentView key="contentView" opaque="NO" clipsSubviews="YES" multipleTouchEnabled="YES" contentMode="center" insetsLayoutMarginsFromSafeArea="NO" tableViewCell="U5T-Rn-JoM" id="luQ-sf-H0h">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="217"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="216.66667175292969"/>
|
||||
<autoresizingMask key="autoresizingMask"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="W6j-6k-zao">
|
||||
<rect key="frame" x="20" y="19" width="374" height="187"/>
|
||||
<rect key="frame" x="20" y="19" width="374" height="186.66666666666666"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" spacing="10" translatesAutoresizingMaskIntoConstraints="NO" id="NeJ-ep-YDO">
|
||||
<rect key="frame" x="0.0" y="0.0" width="374" height="40.666666666666664"/>
|
||||
|
|
@ -662,10 +662,10 @@
|
|||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" verticalHuggingPriority="1000" verticalCompressionResistancePriority="1000" translatesAutoresizingMaskIntoConstraints="NO" id="lX3-kv-DYx">
|
||||
<rect key="frame" x="0.0" y="101.33333333333331" width="374" height="85.666666666666686"/>
|
||||
<rect key="frame" x="0.0" y="101.33333333333334" width="374" height="85.333333333333343"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="bottom" horizontalHuggingPriority="251" verticalHuggingPriority="1000" verticalCompressionResistancePriority="1000" image="scanproblems_powerup" translatesAutoresizingMaskIntoConstraints="NO" id="UAb-G3-y7N">
|
||||
<rect key="frame" x="0.0" y="10.000000000000014" width="374" height="75.666666666666671"/>
|
||||
<rect key="frame" x="12" y="10.000000000000014" width="350" height="75.333333333333329"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" name="cell_light"/>
|
||||
|
|
@ -856,19 +856,19 @@
|
|||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="1000" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="Sed-sJ-Bks">
|
||||
<rect key="frame" x="38" y="8.0000000000000018" width="292" height="21.666666666666671"/>
|
||||
<rect key="frame" x="38" y="8.0000000000000018" width="304" height="21.666666666666671"/>
|
||||
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
|
||||
<color key="textColor" name="text_default"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="Subtitle subtitle subtitle subtitle subtitle subtitle" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="onF-zN-PM3">
|
||||
<rect key="frame" x="38" y="31.666666666666661" width="292" height="38.333333333333343"/>
|
||||
<rect key="frame" x="38" y="31.666666666666661" width="304" height="38.333333333333343"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="16"/>
|
||||
<color key="textColor" name="text_default"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="disclosure" translatesAutoresizingMaskIntoConstraints="NO" id="fdq-Op-BkP">
|
||||
<rect key="frame" x="338" y="19" width="24" height="40"/>
|
||||
<rect key="frame" x="350" y="29" width="12" height="20"/>
|
||||
<color key="tintColor" white="0.80000000000000004" alpha="0.80330230496453903" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
|
|
@ -922,19 +922,19 @@
|
|||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="1000" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="jjJ-q6-e8z">
|
||||
<rect key="frame" x="38" y="8.0000000000000018" width="292" height="21.666666666666671"/>
|
||||
<rect key="frame" x="38" y="8.0000000000000018" width="304" height="21.666666666666671"/>
|
||||
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
|
||||
<color key="textColor" name="text_default"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="Subtitle subtitle subtitle subtitle subtitle subtitle" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="rOY-0f-W7p">
|
||||
<rect key="frame" x="38" y="31.666666666666668" width="292" height="40.666666666666657"/>
|
||||
<rect key="frame" x="38" y="31.666666666666668" width="304" height="40.666666666666657"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" name="text_default"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView hidden="YES" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="disclosure" translatesAutoresizingMaskIntoConstraints="NO" id="fTM-eg-YMl">
|
||||
<rect key="frame" x="338" y="20.333333333333329" width="24" height="40"/>
|
||||
<rect key="frame" x="350" y="30.333333333333336" width="12" height="20"/>
|
||||
<color key="tintColor" white="0.80000000000000004" alpha="0.80330230499999999" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
|
|
@ -1064,19 +1064,19 @@
|
|||
</constraints>
|
||||
</imageView>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" verticalCompressionResistancePriority="1000" text="Title" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="fTD-3i-zkW">
|
||||
<rect key="frame" x="46" y="8.0000000000000018" width="284" height="21.666666666666671"/>
|
||||
<rect key="frame" x="46" y="8.0000000000000018" width="296" height="21.666666666666671"/>
|
||||
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="18"/>
|
||||
<color key="textColor" name="text_default"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" text="Subtitle subtitle subtitle subtitle subtitle subtitle" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="sQJ-U4-6NT">
|
||||
<rect key="frame" x="46" y="29.666666666666668" width="284" height="40.666666666666657"/>
|
||||
<rect key="frame" x="46" y="29.666666666666668" width="296" height="40.666666666666657"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" name="text_default"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="disclosure" translatesAutoresizingMaskIntoConstraints="NO" id="t4j-Bn-dSU">
|
||||
<rect key="frame" x="338" y="19.333333333333329" width="24" height="40"/>
|
||||
<rect key="frame" x="350" y="29.333333333333336" width="12" height="20"/>
|
||||
<color key="tintColor" white="0.80000000000000004" alpha="0.80330230499999999" colorSpace="custom" customColorSpace="calibratedWhite"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
|
|
@ -1204,19 +1204,19 @@
|
|||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="1EM-zG-od1">
|
||||
<rect key="frame" x="27" y="-78" width="360" height="800"/>
|
||||
<rect key="frame" x="27" y="122" width="360" height="400"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="mCj-Gb-k6T">
|
||||
<rect key="frame" x="0.0" y="0.0" width="360" height="800"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="360" height="400"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tip_datacable" translatesAutoresizingMaskIntoConstraints="NO" id="eyT-6W-nB8">
|
||||
<rect key="frame" x="138" y="50.333333333333343" width="84" height="248.33333333333337"/>
|
||||
<rect key="frame" x="159" y="-87.333333333333343" width="42" height="124"/>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tip_powercable" translatesAutoresizingMaskIntoConstraints="NO" id="5s4-fh-H68">
|
||||
<rect key="frame" x="126" y="446.66666666666674" width="108" height="350"/>
|
||||
<rect key="frame" x="153" y="334" width="54" height="175"/>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="board_cpb" translatesAutoresizingMaskIntoConstraints="NO" id="i3T-Db-EAx">
|
||||
<rect key="frame" x="0.0" y="0.0" width="360" height="800"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="360" height="400"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="360" id="twB-P9-kif"/>
|
||||
</constraints>
|
||||
|
|
@ -1570,24 +1570,24 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="414" height="896"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="tQU-ml-Eiz">
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="356"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="414" height="251"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" verticalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="BN3-jQ-GBi" userLabel="titleView">
|
||||
<rect key="frame" x="8" y="20" width="398" height="252"/>
|
||||
<rect key="frame" x="67" y="20" width="280" height="147"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" alpha="0.80000001192092896" contentMode="scaleAspectFit" verticalHuggingPriority="1000" image="info_adafruit_logo" translatesAutoresizingMaskIntoConstraints="NO" id="v29-ih-FFw">
|
||||
<rect key="frame" x="0.0" y="0.0" width="398" height="210"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="280" height="105"/>
|
||||
<color key="tintColor" name="text_default"/>
|
||||
</imageView>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" verticalHuggingPriority="251" text="App Name" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="izk-pv-hGR">
|
||||
<rect key="frame" x="75" y="214" width="323" height="19"/>
|
||||
<rect key="frame" x="75" y="109" width="205" height="19"/>
|
||||
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
|
||||
<color key="textColor" name="text_default"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<color key="shadowColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</label>
|
||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="left" text="v.2.0" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="NGh-Xb-KmR" userLabel="versionLabel">
|
||||
<rect key="frame" x="75" y="233" width="323" height="19"/>
|
||||
<rect key="frame" x="75" y="128" width="205" height="19"/>
|
||||
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="15"/>
|
||||
<color key="textColor" name="text_default"/>
|
||||
<color key="highlightedColor" red="1" green="1" blue="1" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
|
|
@ -1609,7 +1609,7 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" text="Details details details details details details details details details details details details" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="gM0-9c-k2j" customClass="ActiveLabel" customModule="ActiveLabel">
|
||||
<rect key="frame" x="8" y="312" width="398" height="36"/>
|
||||
<rect key="frame" x="8" y="207" width="398" height="36"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" name="text_default"/>
|
||||
<nil key="highlightedColor"/>
|
||||
|
|
@ -1709,13 +1709,13 @@
|
|||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="20" translatesAutoresizingMaskIntoConstraints="NO" id="aDl-bl-Snv">
|
||||
<rect key="frame" x="20" y="200.66666666666666" width="374" height="464.66666666666674"/>
|
||||
<rect key="frame" x="20" y="268.33333333333326" width="374" height="329.66666666666674"/>
|
||||
<subviews>
|
||||
<imageView userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="bluetooth_status" translatesAutoresizingMaskIntoConstraints="NO" id="Yms-Ya-hqI">
|
||||
<rect key="frame" x="0.0" y="0.0" width="374" height="270"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="374" height="135"/>
|
||||
</imageView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" alignment="center" spacing="6" translatesAutoresizingMaskIntoConstraints="NO" id="Dph-8N-wNh">
|
||||
<rect key="frame" x="0.0" y="290" width="374" height="70.666666666666686"/>
|
||||
<rect key="frame" x="0.0" y="155" width="374" height="70.666666666666686"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Enable Bluetooth" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="ppt-z7-z9u">
|
||||
<rect key="frame" x="106.66666666666667" y="0.0" width="160.66666666666663" height="24"/>
|
||||
|
|
@ -1724,7 +1724,7 @@
|
|||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="251" text="Bluetooth permission should be granted to connect to the Circuit Playground Device" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="hCn-Cu-eSJ">
|
||||
<rect key="frame" x="22.333333333333343" y="29.99999999999994" width="329.66666666666663" height="40.666666666666657"/>
|
||||
<rect key="frame" x="22.333333333333343" y="29.999999999999996" width="329.66666666666663" height="40.666666666666657"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" white="1" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
<nil key="highlightedColor"/>
|
||||
|
|
@ -1732,7 +1732,7 @@
|
|||
</subviews>
|
||||
</stackView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9ix-t9-34H">
|
||||
<rect key="frame" x="0.0" y="380.66666666666674" width="374" height="84"/>
|
||||
<rect key="frame" x="0.0" y="245.66666666666669" width="374" height="84"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" verticalCompressionResistancePriority="1000" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="HMY-4d-aqM" customClass="CornerShadowButton" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
|
||||
<rect key="frame" x="20" y="20" width="334" height="44"/>
|
||||
|
|
@ -1794,6 +1794,10 @@
|
|||
<point key="canvasLocation" x="1048" y="-515"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<inferredMetricsTieBreakers>
|
||||
<segue reference="KoA-I2-yK2"/>
|
||||
</inferredMetricsTieBreakers>
|
||||
<color key="tintColor" name="text_default"/>
|
||||
<resources>
|
||||
<image name="bluetooth_status" width="101" height="135"/>
|
||||
<image name="board_clue_front" width="400" height="400"/>
|
||||
|
|
@ -1829,8 +1833,4 @@
|
|||
<color red="0.88899999856948853" green="0.40000000596046448" blue="0.36000001430511475" alpha="0.80000001192092896" colorSpace="custom" customColorSpace="displayP3"/>
|
||||
</namedColor>
|
||||
</resources>
|
||||
<inferredMetricsTieBreakers>
|
||||
<segue reference="KoA-I2-yK2"/>
|
||||
</inferredMetricsTieBreakers>
|
||||
<color key="tintColor" name="text_default"/>
|
||||
</document>
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="15705" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="3.0" toolsVersion="16096" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES">
|
||||
<device id="retina6_1" orientation="portrait" appearance="light"/>
|
||||
<dependencies>
|
||||
<deployment identifier="iOS"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="15706"/>
|
||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="16087"/>
|
||||
<capability name="Named colors" minToolsVersion="9.0"/>
|
||||
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
|
||||
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
|
||||
|
|
@ -24,10 +24,10 @@
|
|||
<rect key="frame" x="20" y="0.0" width="374" height="423"/>
|
||||
</containerView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="xKj-ea-39A">
|
||||
<rect key="frame" x="8" y="263" width="76" height="152"/>
|
||||
<rect key="frame" x="8" y="327" width="44" height="88"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="ga4-d9-1lz">
|
||||
<rect key="frame" x="0.0" y="0.0" width="76" height="76"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="44" height="44"/>
|
||||
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
|
||||
<state key="normal" image="circuit_all"/>
|
||||
<connections>
|
||||
|
|
@ -35,7 +35,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="xLL-a0-gwf">
|
||||
<rect key="frame" x="0.0" y="76" width="76" height="76"/>
|
||||
<rect key="frame" x="0.0" y="44" width="44" height="44"/>
|
||||
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
|
||||
<state key="normal" image="circuit_clear"/>
|
||||
<connections>
|
||||
|
|
@ -45,7 +45,7 @@
|
|||
</subviews>
|
||||
</stackView>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="12T-bB-WIy">
|
||||
<rect key="frame" x="330" y="339" width="76" height="76"/>
|
||||
<rect key="frame" x="362" y="371" width="44" height="44"/>
|
||||
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
|
||||
<state key="normal" image="circuit_reset"/>
|
||||
<connections>
|
||||
|
|
@ -615,10 +615,10 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" spacing="30" translatesAutoresizingMaskIntoConstraints="NO" id="FYu-kC-2q0">
|
||||
<rect key="frame" x="70" y="730" width="274" height="44"/>
|
||||
<rect key="frame" x="74" y="730" width="266" height="44"/>
|
||||
<subviews>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="nxH-er-ZBM" customClass="CornerShadowButton" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
|
||||
<rect key="frame" x="0.0" y="0.0" width="46" height="44"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="44" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="44" id="LHV-xq-UoT"/>
|
||||
<constraint firstAttribute="height" constant="44" id="YUR-JQ-XXD"/>
|
||||
|
|
@ -632,7 +632,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="jLv-tG-qa5" customClass="CornerShadowButton" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
|
||||
<rect key="frame" x="76" y="0.0" width="46" height="44"/>
|
||||
<rect key="frame" x="74" y="0.0" width="44" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="44" id="Eay-1g-IGd"/>
|
||||
<constraint firstAttribute="height" constant="44" id="hqq-CF-25R"/>
|
||||
|
|
@ -646,7 +646,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Ta7-LK-awK" customClass="CornerShadowButton" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
|
||||
<rect key="frame" x="152" y="0.0" width="46" height="44"/>
|
||||
<rect key="frame" x="148" y="0.0" width="44" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="44" id="ccz-yG-CgQ"/>
|
||||
<constraint firstAttribute="height" constant="44" id="gLO-Cf-PUP"/>
|
||||
|
|
@ -660,7 +660,7 @@
|
|||
</connections>
|
||||
</button>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="0uY-jB-1Ht" customClass="CornerShadowButton" customModule="BluefruitPlayground_SimulateBluetooth" customModuleProvider="target">
|
||||
<rect key="frame" x="228" y="0.0" width="46" height="44"/>
|
||||
<rect key="frame" x="222" y="0.0" width="44" height="44"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="height" constant="44" id="CWM-0O-ns9"/>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="44" id="o2R-dn-3uf"/>
|
||||
|
|
@ -718,7 +718,7 @@
|
|||
<rect key="frame" x="0.0" y="12" width="414" height="510"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="750" verticalHuggingPriority="750" image="temperature_gauge" translatesAutoresizingMaskIntoConstraints="NO" id="eYC-Gt-apS">
|
||||
<rect key="frame" x="20" y="67" width="374" height="376"/>
|
||||
<rect key="frame" x="97" y="144.5" width="220" height="221"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="eYC-Gt-apS" secondAttribute="height" multiplier="220:221" id="Tur-P3-pES"/>
|
||||
</constraints>
|
||||
|
|
@ -730,7 +730,7 @@
|
|||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="OKs-DM-Ka8">
|
||||
<rect key="frame" x="342" y="438" width="64" height="64"/>
|
||||
<rect key="frame" x="374" y="470" width="32" height="32"/>
|
||||
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="14"/>
|
||||
<inset key="contentEdgeInsets" minX="6" minY="6" maxX="6" maxY="6"/>
|
||||
<state key="normal" title="ºC" backgroundImage="temperature_swap">
|
||||
|
|
@ -846,27 +846,27 @@
|
|||
<rect key="frame" x="0.0" y="12" width="414" height="510"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" horizontalHuggingPriority="249" verticalHuggingPriority="249" horizontalCompressionResistancePriority="249" verticalCompressionResistancePriority="249" translatesAutoresizingMaskIntoConstraints="NO" id="zLf-Fi-H66">
|
||||
<rect key="frame" x="20" y="51" width="374" height="408"/>
|
||||
<rect key="frame" x="87" y="124" width="240" height="262"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" translatesAutoresizingMaskIntoConstraints="NO" id="Xxj-ol-hAb">
|
||||
<rect key="frame" x="0.0" y="0.0" width="374" height="408"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="240" height="262"/>
|
||||
<subviews>
|
||||
<view alpha="0.0" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="jZX-SK-33o">
|
||||
<rect key="frame" x="0.0" y="0.0" width="374" height="81.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="240" height="52.5"/>
|
||||
<color key="backgroundColor" systemColor="systemRedColor" red="1" green="0.23137254900000001" blue="0.18823529410000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</view>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="PqL-CE-oDP">
|
||||
<rect key="frame" x="0.0" y="81.5" width="374" height="322.5"/>
|
||||
<rect key="frame" x="0.0" y="52.5" width="240" height="207"/>
|
||||
<subviews>
|
||||
<view alpha="0.0" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="EJt-MV-fsH">
|
||||
<rect key="frame" x="0.0" y="0.0" width="138.5" height="322.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="89" height="207"/>
|
||||
<color key="backgroundColor" systemColor="systemGreenColor" red="0.20392156859999999" green="0.78039215689999997" blue="0.34901960780000002" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="dvq-By-eaI">
|
||||
<rect key="frame" x="138.5" y="0.0" width="228" height="322.5"/>
|
||||
<rect key="frame" x="89" y="0.0" width="146" height="207"/>
|
||||
<subviews>
|
||||
<imageView opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="249" verticalHuggingPriority="249" horizontalCompressionResistancePriority="249" verticalCompressionResistancePriority="249" image="humidity_fill" translatesAutoresizingMaskIntoConstraints="NO" id="B9g-ei-Fcg">
|
||||
<rect key="frame" x="0.0" y="0.0" width="228" height="322.5"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="146" height="207"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
|
|
@ -878,13 +878,13 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<view alpha="0.0" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="d1M-64-lqP">
|
||||
<rect key="frame" x="366.5" y="0.0" width="7.5" height="322.5"/>
|
||||
<rect key="frame" x="235" y="0.0" width="5" height="207"/>
|
||||
<color key="backgroundColor" systemColor="systemOrangeColor" red="1" green="0.58431372550000005" blue="0.0" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</view>
|
||||
</subviews>
|
||||
</stackView>
|
||||
<view alpha="0.0" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="V1f-go-Uqz">
|
||||
<rect key="frame" x="0.0" y="404" width="374" height="4"/>
|
||||
<rect key="frame" x="0.0" y="259.5" width="240" height="2.5"/>
|
||||
<color key="backgroundColor" systemColor="systemPurpleColor" red="0.68627450980000004" green="0.32156862749999998" blue="0.87058823529999996" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</view>
|
||||
</subviews>
|
||||
|
|
@ -903,16 +903,16 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" image="humidity_outline" translatesAutoresizingMaskIntoConstraints="NO" id="g1O-iQ-qQu">
|
||||
<rect key="frame" x="20" y="51" width="374" height="408"/>
|
||||
<rect key="frame" x="87" y="124" width="240" height="262"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="g1O-iQ-qQu" secondAttribute="height" multiplier="120:131" id="nSg-Im-mfj"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JhQ-aW-u6h">
|
||||
<rect key="frame" x="154.5" y="194" width="239.5" height="265"/>
|
||||
<rect key="frame" x="173.5" y="215.5" width="153.5" height="170.5"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" alignment="bottom" translatesAutoresizingMaskIntoConstraints="NO" id="DQU-f5-FTT">
|
||||
<rect key="frame" x="93" y="107" width="53.5" height="50.5"/>
|
||||
<rect key="frame" x="50" y="60" width="53.5" height="50.5"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" text="0" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="BCi-JJ-WJB">
|
||||
<rect key="frame" x="0.0" y="0.0" width="27.5" height="50.5"/>
|
||||
|
|
@ -1056,19 +1056,19 @@
|
|||
<rect key="frame" x="0.0" y="12" width="414" height="510"/>
|
||||
<subviews>
|
||||
<imageView opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="249" verticalHuggingPriority="249" horizontalCompressionResistancePriority="249" verticalCompressionResistancePriority="249" image="pressure_hand" translatesAutoresizingMaskIntoConstraints="NO" id="Pys-h6-hWK">
|
||||
<rect key="frame" x="193.5" y="72.5" width="27" height="365"/>
|
||||
<rect key="frame" x="197.5" y="128" width="19" height="254"/>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" image="pressure_outline" translatesAutoresizingMaskIntoConstraints="NO" id="qar-Qw-2fa">
|
||||
<rect key="frame" x="20" y="72.5" width="374" height="365"/>
|
||||
<rect key="frame" x="77" y="128" width="260" height="254"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" secondItem="qar-Qw-2fa" secondAttribute="height" multiplier="130:127" id="fut-ab-EWu"/>
|
||||
</constraints>
|
||||
</imageView>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="JYL-Re-hQN">
|
||||
<rect key="frame" x="95" y="412.5" width="224" height="50.5"/>
|
||||
<rect key="frame" x="129" y="357" width="156" height="50.5"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" alignment="bottom" translatesAutoresizingMaskIntoConstraints="NO" id="TuZ-t8-AxA">
|
||||
<rect key="frame" x="35" y="0.0" width="154.5" height="50.5"/>
|
||||
<rect key="frame" x="1" y="0.0" width="154.5" height="50.5"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" text="990" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="3fc-lA-gKu">
|
||||
<rect key="frame" x="0.0" y="0.0" width="103" height="50.5"/>
|
||||
|
|
@ -1110,13 +1110,13 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" verticalCompressionResistancePriority="1000" text="max" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="mQS-JG-YLL">
|
||||
<rect key="frame" x="339" y="428.5" width="28.5" height="18"/>
|
||||
<rect key="frame" x="305" y="373" width="28.5" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="1" green="0.99998790029999995" blue="0.9999920726" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" verticalCompressionResistancePriority="1000" text="min" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="6zY-bT-18t">
|
||||
<rect key="frame" x="50" y="428.5" width="25" height="18"/>
|
||||
<rect key="frame" x="84" y="373" width="25" height="18"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="15"/>
|
||||
<color key="textColor" red="1" green="0.99998790029999995" blue="0.9999920726" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
|
||||
<nil key="highlightedColor"/>
|
||||
|
|
@ -1239,16 +1239,16 @@
|
|||
<rect key="frame" x="20" y="0.0" width="374" height="510"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="PZf-yf-AWg">
|
||||
<rect key="frame" x="40" y="0.0" width="334" height="510"/>
|
||||
<rect key="frame" x="75" y="115" width="264" height="280"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ljR-bi-cvW">
|
||||
<rect key="frame" x="0.0" y="0.0" width="176" height="510"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="106" height="280"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" image="sound_level_dimmed" translatesAutoresizingMaskIntoConstraints="NO" id="LlW-Yf-hDl">
|
||||
<rect key="frame" x="0.0" y="0.0" width="176" height="510"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="106" height="280"/>
|
||||
</imageView>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="249" verticalHuggingPriority="249" horizontalCompressionResistancePriority="249" verticalCompressionResistancePriority="249" image="sound_level" translatesAutoresizingMaskIntoConstraints="NO" id="xqN-Wx-HD5">
|
||||
<rect key="frame" x="0.0" y="0.0" width="176" height="510"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="106" height="280"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
|
|
@ -1264,19 +1264,19 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" horizontalHuggingPriority="750" translatesAutoresizingMaskIntoConstraints="NO" id="yug-x0-ADE">
|
||||
<rect key="frame" x="184" y="0.0" width="150" height="510"/>
|
||||
<rect key="frame" x="114" y="0.0" width="150" height="280"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" alignment="bottom" translatesAutoresizingMaskIntoConstraints="NO" id="qoc-mM-xcg">
|
||||
<rect key="frame" x="0.0" y="0.0" width="150" height="510"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="150" height="280"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="750" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" text="-120" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="Knc-sL-2af">
|
||||
<rect key="frame" x="0.0" y="459.5" width="87" height="50.5"/>
|
||||
<rect key="frame" x="0.0" y="229.5" width="87" height="50.5"/>
|
||||
<fontDescription key="fontDescription" type="system" weight="semibold" pointSize="42"/>
|
||||
<color key="textColor" red="1" green="0.99998790029999995" blue="0.9999920726" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="KJ5-tm-SpG">
|
||||
<rect key="frame" x="87" y="460" width="63" height="50"/>
|
||||
<rect key="frame" x="87" y="230" width="63" height="50"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="1000" verticalHuggingPriority="1000" horizontalCompressionResistancePriority="751" verticalCompressionResistancePriority="1000" text="dBFS" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" minimumScaleFactor="0.5" translatesAutoresizingMaskIntoConstraints="NO" id="Q4H-RL-ETg">
|
||||
<rect key="frame" x="0.0" y="14.5" width="63" height="31.5"/>
|
||||
|
|
@ -1413,11 +1413,11 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="414" height="808"/>
|
||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="9cd-cz-wWH">
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="9cd-cz-wWH">
|
||||
<rect key="frame" x="0.0" y="12" width="414" height="350"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" ambiguous="YES" image="tonegenerator_speaker" translatesAutoresizingMaskIntoConstraints="NO" id="Y70-SD-9rD">
|
||||
<rect key="frame" x="28" y="85" width="358" height="180"/>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" image="tonegenerator_speaker" translatesAutoresizingMaskIntoConstraints="NO" id="Y70-SD-9rD">
|
||||
<rect key="frame" x="77" y="85" width="260" height="180"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
<color key="backgroundColor" white="0.0" alpha="0.0" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
|
|
@ -1430,7 +1430,7 @@
|
|||
<constraint firstAttribute="trailingMargin" relation="greaterThanOrEqual" secondItem="Y70-SD-9rD" secondAttribute="trailing" constant="20" id="z0e-dB-Eew"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<view contentMode="scaleToFill" verticalHuggingPriority="751" ambiguous="YES" translatesAutoresizingMaskIntoConstraints="NO" id="bWw-lC-Emh">
|
||||
<view contentMode="scaleToFill" verticalHuggingPriority="751" translatesAutoresizingMaskIntoConstraints="NO" id="bWw-lC-Emh">
|
||||
<rect key="frame" x="0.0" y="374" width="414" height="400"/>
|
||||
<subviews>
|
||||
<view clipsSubviews="YES" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Gc2-PQ-UgW">
|
||||
|
|
@ -2022,11 +2022,11 @@
|
|||
<rect key="frame" x="0.0" y="0.0" width="345" height="345"/>
|
||||
<subviews>
|
||||
<view alpha="0.89999997615814209" contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="ISA-9V-YpI">
|
||||
<rect key="frame" x="147.5" y="147.5" width="50" height="50"/>
|
||||
<rect key="frame" x="20" y="20" width="305" height="305"/>
|
||||
<color key="backgroundColor" systemColor="systemRedColor" red="1" green="0.23137254900000001" blue="0.18823529410000001" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" relation="greaterThanOrEqual" constant="50" id="cTY-fJ-AX3"/>
|
||||
<constraint firstAttribute="width" secondItem="ISA-9V-YpI" secondAttribute="height" multiplier="1:1" id="u3F-8A-u56"/>
|
||||
<constraint firstAttribute="width" constant="50" id="xKZ-w7-8xf"/>
|
||||
</constraints>
|
||||
</view>
|
||||
<button opaque="NO" contentMode="scaleToFill" contentHorizontalAlignment="center" contentVerticalAlignment="center" buttonType="roundedRect" lineBreakMode="middleTruncation" translatesAutoresizingMaskIntoConstraints="NO" id="Mrg-ds-FvJ">
|
||||
|
|
@ -2041,11 +2041,15 @@
|
|||
<constraint firstItem="ISA-9V-YpI" firstAttribute="centerY" secondItem="efQ-XI-Enl" secondAttribute="centerY" id="4f0-Dx-K62"/>
|
||||
<constraint firstItem="Mrg-ds-FvJ" firstAttribute="bottom" secondItem="efQ-XI-Enl" secondAttribute="bottom" id="PP7-en-T4h"/>
|
||||
<constraint firstItem="Mrg-ds-FvJ" firstAttribute="leading" secondItem="efQ-XI-Enl" secondAttribute="leading" id="Wmk-Sc-eA9"/>
|
||||
<constraint firstAttribute="bottom" secondItem="ISA-9V-YpI" secondAttribute="bottom" constant="20" id="XIh-Ri-ygO"/>
|
||||
<constraint firstItem="ISA-9V-YpI" firstAttribute="leading" secondItem="efQ-XI-Enl" secondAttribute="leading" constant="20" id="aWA-fc-Ap2"/>
|
||||
<constraint firstAttribute="width" constant="345" id="fSD-H6-Mta"/>
|
||||
<constraint firstAttribute="width" secondItem="efQ-XI-Enl" secondAttribute="height" multiplier="1:1" id="fYl-ir-S8T"/>
|
||||
<constraint firstItem="Mrg-ds-FvJ" firstAttribute="trailing" secondItem="efQ-XI-Enl" secondAttribute="trailing" id="hkg-2h-Q7l"/>
|
||||
<constraint firstItem="Mrg-ds-FvJ" firstAttribute="top" secondItem="efQ-XI-Enl" secondAttribute="top" id="lit-8n-qEv"/>
|
||||
<constraint firstItem="ISA-9V-YpI" firstAttribute="centerX" secondItem="efQ-XI-Enl" secondAttribute="centerX" id="ptU-93-Hhv"/>
|
||||
<constraint firstAttribute="trailing" secondItem="ISA-9V-YpI" secondAttribute="trailing" constant="20" id="sg0-YV-ffD"/>
|
||||
<constraint firstItem="ISA-9V-YpI" firstAttribute="top" secondItem="efQ-XI-Enl" secondAttribute="top" constant="20" id="z3g-kE-YdS"/>
|
||||
</constraints>
|
||||
</view>
|
||||
</subviews>
|
||||
|
|
@ -2058,7 +2062,7 @@
|
|||
</view>
|
||||
<size key="freeformSize" width="345" height="345"/>
|
||||
<connections>
|
||||
<outlet property="neopixelViewWidthConstraint" destination="xKZ-w7-8xf" id="ebt-Hb-8bt"/>
|
||||
<outlet property="neopixelViewWidthConstraint" destination="cTY-fJ-AX3" id="6fg-4b-BSf"/>
|
||||
<outlet property="neopixelsContainerView" destination="efQ-XI-Enl" id="bEq-vx-4PY"/>
|
||||
<outlet property="neopixelsContainerWidthConstraint" destination="fSD-H6-Mta" id="UfV-Ip-7QC"/>
|
||||
</connections>
|
||||
|
|
@ -2128,7 +2132,7 @@
|
|||
<rect key="frame" x="0.0" y="71" width="348" height="60.5"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="lightsensor_min" translatesAutoresizingMaskIntoConstraints="NO" id="xIf-cH-XwT">
|
||||
<rect key="frame" x="0.0" y="0.0" width="32" height="60.5"/>
|
||||
<rect key="frame" x="0.0" y="14" width="32" height="32"/>
|
||||
<color key="tintColor" name="panel_text"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="32" id="Cnh-ct-KRE"/>
|
||||
|
|
@ -2166,7 +2170,7 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="1000" verticalHuggingPriority="251" image="lightsensor_max" translatesAutoresizingMaskIntoConstraints="NO" id="Syp-9X-v8i">
|
||||
<rect key="frame" x="316" y="0.0" width="32" height="60.5"/>
|
||||
<rect key="frame" x="316" y="14" width="32" height="32"/>
|
||||
<color key="tintColor" name="panel_text"/>
|
||||
<constraints>
|
||||
<constraint firstAttribute="width" constant="32" id="ph4-zE-oZL"/>
|
||||
|
|
@ -2250,25 +2254,25 @@
|
|||
<rect key="frame" x="20" y="0.0" width="319" height="224"/>
|
||||
<subviews>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="251" verticalHuggingPriority="750" verticalCompressionResistancePriority="1000" text="Title" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="2w2-fb-yU1">
|
||||
<rect key="frame" x="0.0" y="16" width="319" height="0.0"/>
|
||||
<rect key="frame" x="0.0" y="16" width="319" height="26.5"/>
|
||||
<fontDescription key="fontDescription" type="system" weight="medium" pointSize="22"/>
|
||||
<color key="textColor" name="panel_text"/>
|
||||
<nil key="highlightedColor"/>
|
||||
</label>
|
||||
<view contentMode="scaleToFill" verticalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="LE8-Xm-MyC">
|
||||
<rect key="frame" x="8" y="36" width="303" height="158"/>
|
||||
<rect key="frame" x="8" y="62.5" width="303" height="131.5"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" distribution="fillEqually" alignment="center" spacing="40" translatesAutoresizingMaskIntoConstraints="NO" id="aGX-eE-4cQ">
|
||||
<rect key="frame" x="0.0" y="0.0" width="303" height="158"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="303" height="131.5"/>
|
||||
<subviews>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="a9L-nV-v5t">
|
||||
<rect key="frame" x="0.0" y="0.0" width="74.5" height="158"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="74.5" height="131.5"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="CJ1-3n-P8S">
|
||||
<rect key="frame" x="0.0" y="0.0" width="74.5" height="150"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="74.5" height="103"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" image="status_left" translatesAutoresizingMaskIntoConstraints="NO" id="YGm-Cb-2wM">
|
||||
<rect key="frame" x="0.0" y="0.0" width="74.5" height="150"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="74.5" height="103"/>
|
||||
<color key="tintColor" red="1" green="0.4073752891886665" blue="0.12012620532416363" alpha="1" colorSpace="custom" customColorSpace="displayP3"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
|
|
@ -2281,7 +2285,7 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="751" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="XXXSlide Switch" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="lva-OC-wlT">
|
||||
<rect key="frame" x="0.0" y="158" width="74.5" height="0.0"/>
|
||||
<rect key="frame" x="0.0" y="111" width="74.5" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" name="panel_text"/>
|
||||
<nil key="highlightedColor"/>
|
||||
|
|
@ -2289,13 +2293,13 @@
|
|||
</subviews>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="thZ-V9-9zx">
|
||||
<rect key="frame" x="114.5" y="0.0" width="74" height="158"/>
|
||||
<rect key="frame" x="114.5" y="0.0" width="74" height="131.5"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="Jzv-K5-VcG">
|
||||
<rect key="frame" x="0.0" y="0.0" width="74" height="150"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="74" height="103"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" image="status_a" translatesAutoresizingMaskIntoConstraints="NO" id="Di5-wa-clX">
|
||||
<rect key="frame" x="0.0" y="0.0" width="74" height="150"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="74" height="103"/>
|
||||
<color key="tintColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
|
|
@ -2308,7 +2312,7 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="751" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="XXXButton A" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="4sg-ww-Cfh">
|
||||
<rect key="frame" x="0.0" y="158" width="74" height="0.0"/>
|
||||
<rect key="frame" x="0.0" y="111" width="74" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" name="panel_text"/>
|
||||
<nil key="highlightedColor"/>
|
||||
|
|
@ -2316,13 +2320,13 @@
|
|||
</subviews>
|
||||
</stackView>
|
||||
<stackView opaque="NO" contentMode="scaleToFill" axis="vertical" spacing="8" translatesAutoresizingMaskIntoConstraints="NO" id="WS9-eS-UNJ">
|
||||
<rect key="frame" x="228.5" y="0.0" width="74.5" height="158"/>
|
||||
<rect key="frame" x="228.5" y="0.0" width="74.5" height="131.5"/>
|
||||
<subviews>
|
||||
<view contentMode="scaleToFill" translatesAutoresizingMaskIntoConstraints="NO" id="fXs-km-nko">
|
||||
<rect key="frame" x="0.0" y="0.0" width="74.5" height="150"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="74.5" height="103"/>
|
||||
<subviews>
|
||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="scaleAspectFit" horizontalHuggingPriority="251" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" verticalCompressionResistancePriority="1000" image="status_b" translatesAutoresizingMaskIntoConstraints="NO" id="eoc-2h-ygp">
|
||||
<rect key="frame" x="0.0" y="0.0" width="74.5" height="150"/>
|
||||
<rect key="frame" x="0.0" y="0.0" width="74.5" height="103"/>
|
||||
<color key="tintColor" white="0.33333333329999998" alpha="1" colorSpace="custom" customColorSpace="genericGamma22GrayColorSpace"/>
|
||||
</imageView>
|
||||
</subviews>
|
||||
|
|
@ -2335,7 +2339,7 @@
|
|||
</constraints>
|
||||
</view>
|
||||
<label opaque="NO" userInteractionEnabled="NO" contentMode="left" horizontalHuggingPriority="751" verticalHuggingPriority="251" horizontalCompressionResistancePriority="1000" text="XXXButtonB" textAlignment="center" lineBreakMode="tailTruncation" baselineAdjustment="alignBaselines" adjustsFontSizeToFit="NO" translatesAutoresizingMaskIntoConstraints="NO" id="Xf1-zu-lRO">
|
||||
<rect key="frame" x="0.0" y="158" width="74.5" height="0.0"/>
|
||||
<rect key="frame" x="0.0" y="111" width="74.5" height="20.5"/>
|
||||
<fontDescription key="fontDescription" type="system" pointSize="17"/>
|
||||
<color key="textColor" name="panel_text"/>
|
||||
<nil key="highlightedColor"/>
|
||||
|
|
@ -3961,6 +3965,7 @@
|
|||
<point key="canvasLocation" x="2550" y="3271"/>
|
||||
</scene>
|
||||
</scenes>
|
||||
<color key="tintColor" name="text_default"/>
|
||||
<resources>
|
||||
<image name="board_clue_back" width="400" height="400"/>
|
||||
<image name="board_clue_front" width="400" height="400"/>
|
||||
|
|
@ -4011,5 +4016,4 @@
|
|||
<color red="0.94900000095367432" green="0.96100002527236938" blue="0.96100002527236938" alpha="1" colorSpace="custom" customColorSpace="sRGB"/>
|
||||
</namedColor>
|
||||
</resources>
|
||||
<color key="tintColor" name="text_default"/>
|
||||
</document>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,18 @@
|
|||
//
|
||||
// AdafruitBoard+FlashNeopixels.swift
|
||||
// BluefruitPlayground
|
||||
//
|
||||
// Created by Antonio García on 07/05/2020.
|
||||
// Copyright © 2020 Adafruit. All rights reserved.
|
||||
//
|
||||
|
||||
import UIKit
|
||||
|
||||
extension AdafruitBoard {
|
||||
|
||||
// MARK: - Utils
|
||||
func neopixelFlashLightSequence(color: UIColor) {
|
||||
guard let neopixelPixelsCount = neopixelPixelsCount, neopixelPixelsCount > 0 else { return }
|
||||
neopixelStartLightSequence(FlashLightSequence(baseColor: color, numPixels: neopixelPixelsCount), speed: 1, repeating: false, sendLightSequenceNotifications: false)
|
||||
}
|
||||
}
|
||||
|
|
@ -371,6 +371,10 @@ class AdafruitBoard {
|
|||
}
|
||||
|
||||
// MARK: - Read Data
|
||||
var neopixelPixelsCount: Int? {
|
||||
return blePeripheral?.adafruitNeoPixelsCount
|
||||
}
|
||||
|
||||
func lightLastValue() -> Float? {
|
||||
return blePeripheral?.adafruitLightLastValue()
|
||||
}
|
||||
|
|
@ -423,7 +427,7 @@ class AdafruitBoard {
|
|||
// MARK: - Receive Data
|
||||
private func receiveLightData(response: Result<(Float, UUID), Error>) {
|
||||
switch response {
|
||||
case let .success(light, uuid):
|
||||
case let .success((light, uuid)):
|
||||
|
||||
if isLightDataSeriesEnabled {
|
||||
// Save value
|
||||
|
|
@ -452,7 +456,7 @@ class AdafruitBoard {
|
|||
|
||||
private func receiveButtonsData(response: Result<(BlePeripheral.ButtonsState, UUID), Error>) {
|
||||
switch response {
|
||||
case let .success(buttonsState, uuid):
|
||||
case let .success((buttonsState, uuid)):
|
||||
//DLog("Buttons: \(buttonsState.slideSwitch == .left ? "⬅️":"➡️") \(buttonsState.buttonA == .pressed ? "🔳":"🔲") \(buttonsState.buttonB == .pressed ? "🔳":"🔲") ")
|
||||
|
||||
// Send to delegate
|
||||
|
|
@ -475,7 +479,7 @@ class AdafruitBoard {
|
|||
|
||||
private func receiveAccelerometerData(response: Result<(BlePeripheral.AccelerometerValue, UUID), Error>) {
|
||||
switch response {
|
||||
case let .success(value, uuid):
|
||||
case let .success((value, uuid)):
|
||||
var adjustedAcceleration = value
|
||||
|
||||
if accelerometerAutoAdjustOrientation {
|
||||
|
|
@ -512,7 +516,7 @@ class AdafruitBoard {
|
|||
|
||||
private func receiveTemperatureData(response: Result<(Float, UUID), Error>) {
|
||||
switch response {
|
||||
case let .success(value, uuid):
|
||||
case let .success((value, uuid)):
|
||||
|
||||
if isTemperatureDataSeriesEnabled {
|
||||
// Save value
|
||||
|
|
@ -541,7 +545,7 @@ class AdafruitBoard {
|
|||
|
||||
private func receiveHumidityData(response: Result<(Float, UUID), Error>) {
|
||||
switch response {
|
||||
case let .success(value, uuid):
|
||||
case let .success((value, uuid)):
|
||||
|
||||
if isHumidityDataSeriesEnabled {
|
||||
// Save value
|
||||
|
|
@ -570,7 +574,7 @@ class AdafruitBoard {
|
|||
|
||||
private func receiveBarometricPressureData(response: Result<(Float, UUID), Error>) {
|
||||
switch response {
|
||||
case let .success(value, uuid):
|
||||
case let .success((value, uuid)):
|
||||
|
||||
if isBarometricPressureDataSeriesEnabled {
|
||||
// Save value
|
||||
|
|
@ -599,7 +603,7 @@ class AdafruitBoard {
|
|||
|
||||
private func receiveSoundData(response: Result<([Double], UUID), Error>) {
|
||||
switch response {
|
||||
case let .success(amplitudesPerChannel, uuid):
|
||||
case let .success((amplitudesPerChannel, uuid)):
|
||||
|
||||
if isSoundAmplitudePressureDataSeriesEnabled {
|
||||
// Save value
|
||||
|
|
@ -630,7 +634,7 @@ class AdafruitBoard {
|
|||
|
||||
private func receiveGyroscopeData(response: Result<(BlePeripheral.GyroscopeValue, UUID), Error>) {
|
||||
switch response {
|
||||
case let .success(value, uuid):
|
||||
case let .success((value, uuid)):
|
||||
|
||||
if isGyroscopeDataSeriesEnabled {
|
||||
// Save value
|
||||
|
|
@ -659,7 +663,7 @@ class AdafruitBoard {
|
|||
|
||||
private func receiveQuaternionData(response: Result<(BlePeripheral.QuaternionValue, UUID), Error>) {
|
||||
switch response {
|
||||
case let .success(value, uuid):
|
||||
case let .success((value, uuid)):
|
||||
var adjustedQuaternion = value
|
||||
if quaternionAutoAdjustOrientation {
|
||||
if model == .clue_nRF52840 { // Clue has the quaternion sensor in the back
|
||||
|
|
|
|||
|
|
@ -10,22 +10,21 @@ import UIKit
|
|||
|
||||
protocol LightSequenceGenerator {
|
||||
var numFrames: Int { get }
|
||||
var numPixels: Int { get }
|
||||
var isCyclic: Bool { get }
|
||||
func colorsForFrame(_ frame: Int) -> [[UInt8]]
|
||||
}
|
||||
|
||||
// MARK: - Helper Base class for all LightSequences
|
||||
class LightSequence {
|
||||
// Constants
|
||||
static let kNumPixels = 10
|
||||
|
||||
var numPixels: Int {
|
||||
return LightSequence.kNumPixels
|
||||
}
|
||||
|
||||
var numPixels: Int
|
||||
|
||||
var isCyclic: Bool {
|
||||
return true
|
||||
}
|
||||
|
||||
init(numPixels: Int) {
|
||||
self.numPixels = numPixels
|
||||
}
|
||||
|
||||
// Utils
|
||||
static func preprocessColorPalette(colors: [UIColor]) -> [[UInt8]] {
|
||||
|
|
@ -49,9 +48,9 @@ class RotateLightSequence: LightSequence, LightSequenceGenerator {
|
|||
private var colorsBytes: [[UInt8]] // in byte format with brightness premultiplied
|
||||
|
||||
// MARK: -
|
||||
override init() {
|
||||
override init(numPixels: Int) {
|
||||
colorsBytes = LightSequence.preprocessColorPalette(colors: RotateLightSequence.kColors)
|
||||
super.init()
|
||||
super.init(numPixels: numPixels)
|
||||
}
|
||||
|
||||
var numFrames: Int {
|
||||
|
|
@ -86,9 +85,9 @@ class PulseLightSequence: LightSequence, LightSequenceGenerator {
|
|||
private var reverse = false
|
||||
|
||||
// MARK: -
|
||||
override init() {
|
||||
override init(numPixels: Int) {
|
||||
colorsBytes = LightSequence.preprocessColorPalette(colors: PulseLightSequence.kColors)
|
||||
super.init()
|
||||
super.init(numPixels: numPixels)
|
||||
}
|
||||
|
||||
var numFrames: Int {
|
||||
|
|
@ -126,9 +125,9 @@ class SizzleLightSequence: LightSequence, LightSequenceGenerator {
|
|||
private var reverse = false
|
||||
|
||||
// MARK: -
|
||||
override init() {
|
||||
override init(numPixels: Int) {
|
||||
colorsBytes = LightSequence.preprocessColorPalette(colors: SizzleLightSequence.kColors)
|
||||
super.init()
|
||||
super.init(numPixels: numPixels)
|
||||
}
|
||||
|
||||
var numFrames: Int {
|
||||
|
|
@ -167,9 +166,9 @@ class SweepLightSequence: LightSequence, LightSequenceGenerator {
|
|||
private var colorsBytes: [[UInt8]] // in byte format with brightness premultiplied
|
||||
|
||||
// MARK: -
|
||||
override init() {
|
||||
override init(numPixels: Int) {
|
||||
colorsBytes = LightSequence.preprocessColorPalette(colors: SweepLightSequence.kColors)
|
||||
super.init()
|
||||
super.init(numPixels: numPixels)
|
||||
}
|
||||
|
||||
var numFrames: Int {
|
||||
|
|
@ -202,9 +201,9 @@ class FlashLightSequence: LightSequence, LightSequenceGenerator {
|
|||
private var baseColor: UIColor
|
||||
|
||||
// MARK: -
|
||||
init(baseColor: UIColor) {
|
||||
init(baseColor: UIColor, numPixels: Int) {
|
||||
self.baseColor = baseColor
|
||||
super.init()
|
||||
super.init(numPixels: numPixels)
|
||||
}
|
||||
|
||||
var numFrames: Int {
|
||||
|
|
|
|||
|
|
@ -293,8 +293,8 @@ extension HomeViewController: UITableViewDelegate {
|
|||
self.show(viewController, sender: self)
|
||||
CATransaction.setCompletionBlock({
|
||||
// Flash neopixels with the module color
|
||||
let board = AdafruitBoardsManager.shared.currentBoard
|
||||
board?.neopixelStartLightSequence(FlashLightSequence(baseColor: module.color), speed: 1, repeating: false, sendLightSequenceNotifications: false)
|
||||
guard let board = AdafruitBoardsManager.shared.currentBoard else { return }
|
||||
board.neopixelFlashLightSequence(color: module.color)
|
||||
})
|
||||
CATransaction.commit()
|
||||
|
||||
|
|
|
|||
|
|
@ -98,13 +98,15 @@ class PixelsPreviewViewController: UIViewController {
|
|||
|
||||
// TODO: make this class more general, and add a parameter for the lightSequence
|
||||
private func lightSequenceGeneratorForTag(_ tag: Int) -> LightSequenceGenerator? {
|
||||
guard let numPixels = AdafruitBoardsManager.shared.currentBoard?.neopixelPixelsCount else { return nil }
|
||||
|
||||
let id = tag - PixelsPreviewViewController.kButtonStartTag
|
||||
let lightSequence: LightSequenceGenerator?
|
||||
switch id {
|
||||
case 0: lightSequence = RotateLightSequence()
|
||||
case 1: lightSequence = PulseLightSequence()
|
||||
case 2: lightSequence = SizzleLightSequence()
|
||||
case 3: lightSequence = SweepLightSequence()
|
||||
case 0: lightSequence = RotateLightSequence(numPixels: numPixels)
|
||||
case 1: lightSequence = PulseLightSequence(numPixels: numPixels)
|
||||
case 2: lightSequence = SizzleLightSequence(numPixels: numPixels)
|
||||
case 3: lightSequence = SweepLightSequence(numPixels: numPixels)
|
||||
default: lightSequence = nil
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -56,9 +56,9 @@ struct ScreenFlowManager {
|
|||
let rootNavigationViewController = mainStoryboard.instantiateViewController(withIdentifier: HomeViewController.kNavigationControllerIdentifier)
|
||||
|
||||
changeRootViewController(rootViewController: rootNavigationViewController) {
|
||||
|
||||
let board = AdafruitBoardsManager.shared.currentBoard
|
||||
board?.neopixelStartLightSequence(FlashLightSequence(baseColor: .lightGray), speed: 1, repeating: false, sendLightSequenceNotifications: false)
|
||||
// Flash neopixels
|
||||
guard let board = AdafruitBoardsManager.shared.currentBoard else { return }
|
||||
board.neopixelFlashLightSequence(color: .lightGray)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -68,10 +68,9 @@ struct ScreenFlowManager {
|
|||
|
||||
let rootNavigationViewController = mainStoryboard.instantiateViewController(withIdentifier: HomeViewController.kNavigationControllerIdentifier)
|
||||
changeRootViewController(rootViewController: rootNavigationViewController) {
|
||||
|
||||
|
||||
let board = AdafruitBoardsManager.shared.currentBoard
|
||||
board?.neopixelStartLightSequence(FlashLightSequence(baseColor: .white), speed: 1, repeating: false, sendLightSequenceNotifications: false)
|
||||
// Flash neopixels
|
||||
guard let board = AdafruitBoardsManager.shared.currentBoard else { return }
|
||||
board.neopixelFlashLightSequence(color: .white)
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue